private boolean addToPipeline()

in ctakes-core/src/main/java/org/apache/ctakes/core/pipeline/PiperFileReader.java [154:283]


   private boolean addToPipeline( final String command, final String parameter ) throws UIMAException {
      final Collection<String> viewSpecs = getViewSpecs( parameter );
      final Collection<String> views = getViews( viewSpecs );
      final String info = removeViewSpecs( parameter, viewSpecs );
      return switch ( command ) {
         case "load" -> loadPipelineFile( info );
         case "package" -> {
            PipeBitLocator.getInstance()
                          .addUserPackage( info );
            yield true;
         }
         case "set" -> {
            _builder.set( splitParameters( info ) );
            yield true;
         }
         case "cli" -> {
            _builder.setIfEmpty( getCliParameters( info ) );
            yield true;
         }
         case "env" -> {
            _builder.env( splitParameters( info ) );
            yield true;
         }
         case "reader" -> {
            if ( hasParameters( info ) ) {
               final String[] component_parameters = splitFromParameters( info );
               final String component = component_parameters[ 0 ];
               final Object[] parameters = splitParameters( component_parameters[ 1 ] );
               _builder.reader( PipeBitLocator.getInstance()
                                              .getReaderClass( component ), parameters );
            }
            else {
               _builder.reader( PipeBitLocator.getInstance()
                                              .getReaderClass( info ) );
            }
            yield true;
         }
         case "readFiles" -> {
            if ( info.isEmpty() ) {
               _builder.readFiles();
            }
            else {
               _builder.readFiles( info );
            }
            yield true;
         }
         case "add" -> {
            if ( hasParameters( info ) ) {
               final String[] component_parameters = splitFromParameters( info );
               final String component = component_parameters[ 0 ];
               final Object[] parameters = splitParameters( component_parameters[ 1 ] );
               _builder.add( PipeBitLocator.getInstance().getComponentClass( component ), views, parameters );
            }
            else {
               _builder.add( PipeBitLocator.getInstance().getComponentClass( info ), views );
            }
            yield true;
         }
         case "addLogged" -> {
            if ( hasParameters( info ) ) {
               final String[] component_parameters = splitFromParameters( info );
               final String component = component_parameters[ 0 ];
               final Object[] parameters = splitParameters( component_parameters[ 1 ] );
               _builder.addLogged( PipeBitLocator.getInstance().getComponentClass( component ), views, parameters );
            }
            else {
               _builder.addLogged( PipeBitLocator.getInstance().getComponentClass( info ), views );
            }
            yield true;
         }
         case "addDescription" -> {
            if ( hasParameters( info ) ) {
               final String[] descriptor_parameters = splitFromParameters( info );
               final String component = descriptor_parameters[ 0 ];
               final Object[] values = splitDescriptorValues( descriptor_parameters[ 1 ] );
               final AnalysisEngineDescription description =
                     PipeBitLocator.getInstance().createDescription( component, values );
               _builder.addDescription( description, views );
            }
            else {
               final AnalysisEngineDescription description = PipeBitLocator.getInstance().createDescription( info );
               _builder.addDescription( description, views );
            }
            yield true;
         }
         case "addLast" -> {
            if ( hasParameters( info ) ) {
               final String[] component_parameters = splitFromParameters( info );
               final String component = component_parameters[ 0 ];
               final Object[] parameters = splitParameters( component_parameters[ 1 ] );
               _builder.addLast( PipeBitLocator.getInstance().getComponentClass( component ), views, parameters );
            }
            else {
               _builder.addLast( PipeBitLocator.getInstance().getComponentClass( info ), views );
            }
            yield true;
         }
         case "threads" -> setThreadCount( info );
         case "collectCuis" -> {
            _builder.collectCuis();
            yield true;
         }
         case "collectEntities" -> {
            _builder.collectEntities();
            yield true;
         }
         case "writeXmis" -> {
            if ( info.isEmpty() ) {
               _builder.writeXMIs();
            }
            else {
               _builder.writeXMIs( info );
            }
            yield true;
         }
         case "writeHtml" -> {
            if ( info.isEmpty() ) {
               _builder.writeHtml();
            }
            else {
               _builder.writeHtml( info );
            }
            yield true;
         }
         default -> {
            LOGGER.error( "Unknown Piper Command: {}", command );
            yield false;
         }
      };
   }