Author: seanfinan
Date: Thu Apr 27 18:25:28 2017
New Revision: 1792936
URL: http://svn.apache.org/viewvc?rev=1792936&view=rev
Log:
Favor previously "set" parameters over following cli
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
ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/util/PropertyAeFactory.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=1792936&r1=1792935&r2=1792936&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 Apr 27 18:25:28 2017
@@ -73,6 +73,19 @@ final public class PipelineBuilder {
}
/**
+ * Use of this method is order-specific. If any given parameter is already
set it is ignored.
+ *
+ * @param parameters add ae parameter name value pairs
+ * @return this PipelineBuilder
+ */
+ public PipelineBuilder setIfEmpty( final Object... parameters ) {
+ PropertyAeFactory.getInstance().addIfEmptyParameters( parameters );
+ _pipelineChanged = true;
+ return this;
+ }
+
+
+ /**
* Use of this method is not order-specific
*
* @param description Collection Reader Description to place at the
beginning of the pipeline
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=1792936&r1=1792935&r2=1792936&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 Apr 27 18:25:28 2017
@@ -196,7 +196,7 @@ final public class PiperFileReader {
_builder.set( splitParameters( parameter ) );
return true;
case "cli":
- _builder.set( getCliParameters( parameter ) );
+ _builder.setIfEmpty( getCliParameters( parameter ) );
return true;
case "reader":
if ( hasParameters( parameter ) ) {
Modified:
ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/util/PropertyAeFactory.java
URL:
http://svn.apache.org/viewvc/ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/util/PropertyAeFactory.java?rev=1792936&r1=1792935&r2=1792936&view=diff
==============================================================================
---
ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/util/PropertyAeFactory.java
(original)
+++
ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/util/PropertyAeFactory.java
Thu Apr 27 18:25:28 2017
@@ -58,6 +58,37 @@ public enum PropertyAeFactory {
}
/**
+ * Add key value pairs to the stored properties
+ *
+ * @param parameters ket value pairs
+ */
+ synchronized public void addIfEmptyParameters( final Object... parameters )
{
+ if ( parameters.length == 0 ) {
+ LOGGER.warn( "No parameters specified." );
+ return;
+ }
+ if ( parameters.length % 2 != 0 ) {
+ LOGGER.error( "Odd number of parameters provided. Should be key
value pairs." );
+ return;
+ }
+ for ( int i = 0; i < parameters.length; i += 2 ) {
+ String name;
+ if ( parameters[ i ] instanceof String ) {
+ name = (String) parameters[ i ];
+ } else {
+ LOGGER.warn( "Parameter " + i + " not a String, using " +
parameters[ i ].toString() );
+ name = parameters[ i ].toString();
+ }
+ if ( _properties.containsKey( name ) && parameters[ i + 1
].toString().isEmpty() ) {
+ LOGGER.info( "Parameter " + name + " has value " +
_properties.get( name )
+ + " ; ignoring empty value" );
+ continue;
+ }
+ _properties.put( name, parameters[ i + 1 ] );
+ }
+ }
+
+ /**
* @param parameterMap map of parameter names and values
* @return array of Objects representing name value pairs
*/