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 2019/02/26 20:09:51 UTC
svn commit: r1854417 -
/ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/pipeline/PiperFileReader.java
Author: seanfinan
Date: Tue Feb 26 20:09:50 2019
New Revision: 1854417
URL: http://svn.apache.org/viewvc?rev=1854417&view=rev
Log:
Handle '=' within quoted parameter values
Modified:
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/PiperFileReader.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/pipeline/PiperFileReader.java?rev=1854417&r1=1854416&r2=1854417&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 Tue Feb 26 20:09:50 2019
@@ -55,11 +55,12 @@ final public class PiperFileReader {
static private final Pattern SPACE_PATTERN = Pattern.compile( "\\s+" );
static private final Pattern KEY_VALUE_PATTERN = Pattern.compile( "=" );
+ static private final Pattern KEY_VALUE_PATTERN_2 = Pattern.compile( "[^\"=]+|(?:\"[^\"]*\")" );
static private final Pattern COMMA_ARRAY_PATTERN = Pattern.compile( "," );
static private final Pattern QUOTE_PATTERN = Pattern.compile( "\"" );
- static private final Pattern QUOTE_VALUE_PATTERN = Pattern.compile( "(?:[^\"=\\s]+)|(?:\"[^\"=\\r\\n]+\")" );
+ static private final Pattern QUOTE_VALUE_PATTERN = Pattern.compile( "(?:[^\"=\\s]+)|(?:\"[^\"\\r\\n]+\")" );
static private final Pattern NAME_VALUE_PATTERN = Pattern
- .compile( "[^\"\\s=]+=(?:(?:[^\"=\\s]+)|(?:\"[^\"=\\r\\n]+\"))" );
+ .compile( "[^\"=\\s]+=(?:(?:[^\"=\\s]+)|(?:\"[^\"\\r\\n]+\"))" );
static private final Pattern VIEWS_PATTERN = Pattern.compile( AE_VIEW_NAMES + "=[^\\s]+" );
private PipelineBuilder _builder;
@@ -367,7 +368,13 @@ final public class PiperFileReader {
final Object[] keysAndValues = new Object[ pairs.length * 2 ];
int i = 0;
for ( String pair : pairs ) {
- final String[] keyAndValue = KEY_VALUE_PATTERN.split( pair );
+// final String[] keyAndValue = KEY_VALUE_PATTERN.split( pair );
+ final Matcher kv_matcher = KEY_VALUE_PATTERN_2.matcher( pair );
+ final List<String> kvList = new ArrayList<>();
+ while ( kv_matcher.find() ) {
+ kvList.add( pair.substring( kv_matcher.start(), kv_matcher.end() ) );
+ }
+ final String[] keyAndValue = kvList.toArray( new String[ kvList.size() ] );
keysAndValues[ i ] = keyAndValue[ 0 ];
if ( keyAndValue.length == 1 ) {
keysAndValues[ i + 1 ] = "";
@@ -403,7 +410,13 @@ final public class PiperFileReader {
final Object[] keysAndValues = new Object[ pairs.length * 2 ];
int i = 0;
for ( String pair : pairs ) {
- final String[] keyAndValue = KEY_VALUE_PATTERN.split( pair );
+// final String[] keyAndValue = KEY_VALUE_PATTERN.split( pair );
+ final Matcher kv_matcher = KEY_VALUE_PATTERN_2.matcher( pair );
+ final List<String> kvList = new ArrayList<>();
+ while ( kv_matcher.find() ) {
+ kvList.add( pair.substring( kv_matcher.start(), kv_matcher.end() ) );
+ }
+ final String[] keyAndValue = kvList.toArray( new String[ kvList.size() ] );
keysAndValues[ i ] = keyAndValue[ 0 ];
if ( keyAndValue.length == 1 ) {
keysAndValues[ i + 1 ] = "";