Author: seanfinan
Date: Sun Apr 23 19:48:17 2017
New Revision: 1792386
URL: http://svn.apache.org/viewvc?rev=1792386&view=rev
Log:
ctakes - 424 : load secondary pipers with user packages
Modified:
ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/pipeline/PiperFileReader.java
ctakes/trunk/ctakes-gui/src/main/java/org/apache/ctakes/gui/pipeline/PiperRunnerPanel.java
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=1792386&r1=1792385&r2=1792386&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
Sun Apr 23 19:48:17 2017
@@ -133,6 +133,14 @@ final public class PiperFileReader {
}
/**
+ * Add some user package or directory to the known path
+ * @param packagePath user package or directory
+ */
+ public void addUserPackage( final String packagePath ) {
+ _userPackages.add( packagePath );
+ }
+
+ /**
* Load a file with command parameter pairs for building a pipeline
*
* @param filePath path to the pipeline command file
@@ -182,7 +190,7 @@ final public class PiperFileReader {
case "load":
return loadPipelineFile( parameter );
case "package":
- _userPackages.add( parameter );
+ addUserPackage( parameter );
return true;
case "set":
_builder.set( splitParameters( parameter ) );
@@ -325,7 +333,7 @@ final public class PiperFileReader {
* @param filePath fully-specified or simple path of a piper file
* @return discovered path for the piper file
*/
- private String getPiperPath( final String filePath ) throws
FileNotFoundException {
+ public String getPiperPath( final String filePath ) throws
FileNotFoundException {
String fullPath = FileLocator.getFullPathQuiet( filePath );
if ( fullPath != null && !fullPath.isEmpty() ) {
return fullPath;
Modified:
ctakes/trunk/ctakes-gui/src/main/java/org/apache/ctakes/gui/pipeline/PiperRunnerPanel.java
URL:
http://svn.apache.org/viewvc/ctakes/trunk/ctakes-gui/src/main/java/org/apache/ctakes/gui/pipeline/PiperRunnerPanel.java?rev=1792386&r1=1792385&r2=1792386&view=diff
==============================================================================
---
ctakes/trunk/ctakes-gui/src/main/java/org/apache/ctakes/gui/pipeline/PiperRunnerPanel.java
(original)
+++
ctakes/trunk/ctakes-gui/src/main/java/org/apache/ctakes/gui/pipeline/PiperRunnerPanel.java
Sun Apr 23 19:48:17 2017
@@ -1,6 +1,7 @@
package org.apache.ctakes.gui.pipeline;
+import org.apache.ctakes.core.pipeline.PiperFileReader;
import org.apache.ctakes.core.pipeline.PiperFileRunner;
import org.apache.ctakes.gui.component.*;
import org.apache.ctakes.gui.pipeline.bit.parameter.ParameterCellRenderer;
@@ -254,8 +255,9 @@ public class PiperRunnerPanel extends JP
if ( option != JFileChooser.APPROVE_OPTION ) {
return;
}
+ final PiperFileReader reader = new PiperFileReader();
final File file = _piperChooser.getSelectedFile();
- String text = loadPiperText( file.getPath() );
+ String text = loadPiperText( reader, file.getPath() );
try {
_piperDocument.remove( 0, _piperDocument.getLength() );
_piperDocument.insertString( 0, text, null );
@@ -265,7 +267,7 @@ public class PiperRunnerPanel extends JP
_cliNames.clear();
_cliChars.clear();
_cliValues.clear();
- if ( !loadPiperCli( text ) ) {
+ if ( !loadPiperCli( reader, text ) ) {
error( "Could not load Piper File: " + file.getPath() );
return;
}
@@ -274,40 +276,44 @@ public class PiperRunnerPanel extends JP
_cliTable.revalidate();
_cliTable.repaint();
}
- private String loadPiperText( final String filePath ) {
+ private String loadPiperText( final PiperFileReader reader, final String
filePath ) {
LOGGER.info( "Loading Piper File: " + filePath);
try {
- return Files.lines( Paths.get( filePath ) ).collect(
Collectors.joining( "\n" ) );
+ final String loadPath = reader.getPiperPath( filePath );
+ return Files.lines( Paths.get( loadPath ) ).collect(
Collectors.joining( "\n" ) );
} catch ( IOException ioE ) {
error( ioE.getMessage() );
return "";
}
}
- private boolean loadPiperCli( final String text ) {
+ private boolean loadPiperCli( final PiperFileReader reader, final String
text ) {
for ( String line : text.split( "\\n" ) ) {
if ( line.startsWith( "cli " ) && line.length() > 5 ) {
final String[] allValues = line.substring( 4 ).split( "\\s+" );
for ( String allValue : allValues ) {
final String[] values = allValue.split( "=" );
- if ( values.length != 2 || values[1].length() != 1 ) {
+ if ( values.length != 2 || values[ 1 ].length() != 1 ) {
error( "Illegal cli values: " + line );
return false;
}
- final String name = values[ 0 ] + " (-" + values[1] + ")";
- if ( _cliChars.put( name, values[1].charAt( 0 ) ) != null ) {
+ final String name = values[ 0 ] + " (-" + values[ 1 ] + ")";
+ if ( _cliChars.put( name, values[ 1 ].charAt( 0 ) ) != null
) {
error( "Repeated cli value: " + line );
return false;
}
_cliNames.add( name );
}
+ } else if ( line.startsWith( "package " ) && line.length() > 9 ) {
+ final String packagePath = line.substring( 8 );
+ reader.addUserPackage( packagePath );
} else if ( line.startsWith( "load " ) && line.length() > 6 ) {
- final String filePath = line.substring( 6 ).trim();
- final String subText = loadPiperText( filePath );
+ final String filePath = line.substring( 5 ).trim();
+ final String subText = loadPiperText( reader, filePath );
if ( subText.isEmpty() ) {
error( "Piper File not found: " + filePath );
return false;
}
- if ( !loadPiperCli( subText ) ) {
+ if ( !loadPiperCli( reader, subText ) ) {
error( "Could not load Piper File: " + filePath );
return false;
}