/** * {@inheritDoc} */ @Override public final boolean invokeTool() throws IllegalStateException { if ( this.toolFutureTask != null ) { throw new IllegalStateException( "Tool is already running!" ); } boolean settingsValid = validateToolSettings(); if ( settingsValid ) { this.toolTask = this.tool.createToolTask( this.context, this.toolProgressListener, this.annotationListener ); prepareToolTask( this.toolTask ); this.toolFutureTask = this.taskExecutionService.execute( this.toolTask ); } return settingsValid; }