You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ctakes.apache.org by se...@apache.org on 2017/01/12 20:30:37 UTC

svn commit: r1778462 - in /ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/pipeline: PipelineBuilder.java PiperFileReader.java

Author: seanfinan
Date: Thu Jan 12 20:30:37 2017
New Revision: 1778462

URL: http://svn.apache.org/viewvc?rev=1778462&view=rev
Log:
Add an ae or cc to the end of a pipeline.  Good for cleanup when a pipeline is meant to be extended.

Modified:
    ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/pipeline/PipelineBuilder.java
    ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/pipeline/PiperFileReader.java

Modified: ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/pipeline/PipelineBuilder.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/pipeline/PipelineBuilder.java?rev=1778462&r1=1778461&r2=1778462&view=diff
==============================================================================
--- ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/pipeline/PipelineBuilder.java (original)
+++ ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/pipeline/PipelineBuilder.java Thu Jan 12 20:30:37 2017
@@ -34,14 +34,17 @@ final public class PipelineBuilder {
 
    static private final Logger LOGGER = Logger.getLogger( "PipelineBuilder" );
 
-
+   private CollectionReader _reader;
    private final List<String> _aeNameList;
    private final List<AnalysisEngineDescription> _descList;
-   private CollectionReader _reader;
+   private final List<String> _aeEndNameList;
+   private final List<AnalysisEngineDescription> _descEndList;
 
    public PipelineBuilder() {
       _aeNameList = new ArrayList<>();
       _descList = new ArrayList<>();
+      _aeEndNameList = new ArrayList<>();
+      _descEndList = new ArrayList<>();
    }
 
    /**
@@ -144,11 +147,28 @@ final public class PipelineBuilder {
    }
 
    /**
+    * Adds an ae or cc component t othe very end of the pipeline.  Use of this method is order-specific.
+    *
+    * @param component  ae or cc component class to add to the end of the pipeline
+    * @param parameters ae or cc parameter name value pairs.  May be empty.
+    * @return this PipelineBuilder
+    * @throws ResourceInitializationException if the component cannot be created
+    */
+   public PipelineBuilder addLast( final Class<? extends AnalysisComponent> component,
+                                   final Object... parameters ) throws ResourceInitializationException {
+      _aeEndNameList.add( component.getName() );
+      _descEndList.add( PropertyAeFactory.getInstance().createDescription( component, parameters ) );
+      return this;
+   }
+
+   /**
     *
     * @return an ordered list of the annotation engines in the pipeline
     */
    public List<String> getAeNames() {
-      return Collections.unmodifiableList( _aeNameList );
+      final List<String> allNames = new ArrayList<>( _aeNameList );
+      allNames.addAll( _aeEndNameList );
+      return Collections.unmodifiableList( allNames );
    }
 
    /**
@@ -214,6 +234,7 @@ final public class PipelineBuilder {
       }
       final AggregateBuilder builder = new AggregateBuilder();
       _descList.forEach( builder::add );
+      _descEndList.forEach( builder::add );
       final AnalysisEngineDescription desc = builder.createAggregateDescription();
       SimplePipeline.runPipeline( _reader, desc );
       return this;
@@ -237,6 +258,7 @@ final public class PipelineBuilder {
       jcas.setDocumentText( text );
       final AggregateBuilder builder = new AggregateBuilder();
       _descList.forEach( builder::add );
+      _descEndList.forEach( builder::add );
       final AnalysisEngineDescription desc = builder.createAggregateDescription();
       SimplePipeline.runPipeline( jcas, desc );
       return this;

Modified: ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/pipeline/PiperFileReader.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/pipeline/PiperFileReader.java?rev=1778462&r1=1778461&r2=1778462&view=diff
==============================================================================
--- ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/pipeline/PiperFileReader.java (original)
+++ ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/pipeline/PiperFileReader.java Thu Jan 12 20:30:37 2017
@@ -229,7 +229,16 @@ final public class PiperFileReader {
                _builder.addDescription( description );
             }
             break;
-
+         case "addLast":
+            if ( hasParameters( parameter ) ) {
+               final String[] component_parameters = splitFromParameters( parameter );
+               final String component = component_parameters[ 0 ];
+               final Object[] parameters = splitParameters( component_parameters[ 1 ] );
+               _builder.addLast( getComponentClass( component ), parameters );
+            } else {
+               _builder.addLast( getComponentClass( parameter ) );
+            }
+            break;
          case "collectCuis":
             _builder.collectCuis();
             break;