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;
}
};
}