You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by pk...@apache.org on 2016/01/12 16:34:07 UTC
svn commit: r1724261 - in /uima/ruta/trunk/ruta-core/src:
main/antlr3/org/apache/uima/ruta/parser/ main/java/org/apache/uima/ruta/
main/java/org/apache/uima/ruta/condition/
main/java/org/apache/uima/ruta/expression/bool/
main/java/org/apache/uima/ruta/...
Author: pkluegl
Date: Tue Jan 12 15:34:07 2016
New Revision: 1724261
URL: http://svn.apache.org/viewvc?rev=1724261&view=rev
Log:
UIMA-4734
- list expression for generic feature expressions
Added:
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/utils/RutaListUtils.java (with props)
Modified:
uima/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaStream.java
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/UIMAConstants.java
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/ConditionFactory.java
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/ContainsCondition.java
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/BooleanListFeatureExpression.java
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/feature/GenericFeatureExpression.java
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/feature/SimpleFeatureExpression.java
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/NumberListFeatureExpression.java
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/AbstractStringListExpression.java
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/StringListFeatureExpression.java
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/annotation/AnnotationFeatureExpressionTest.java
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/annotation/AnnotationLabelExpressionTest.java
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ActionVerbalizerTest.java
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ConditionVerbalizerTest.java
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ExpressionVerbalizerTest.java
Modified: uima/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g?rev=1724261&r1=1724260&r2=1724261&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g (original)
+++ uima/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g Tue Jan 12 15:34:07 2016
@@ -1398,14 +1398,25 @@ conditionAnd returns [AbstractRutaCondit
;
conditionContains returns [AbstractRutaCondition cond = null]
- options {
+options {
backtrack = true;
}
+@init {
+List<IRutaExpression> args = new ArrayList<>();
+}
:
- CONTAINS LPAREN (type = typeExpression | list = plainListExpression COMMA a = argument)
- (COMMA min = numberExpression COMMA max = numberExpression (COMMA percent = booleanExpression)?)? RPAREN
- {if(type != null) {cond = ConditionFactory.createConditionContains(type, min, max, percent,$blockDeclaration::env);}
- else {cond = ConditionFactory.createConditionContains(list,a, min, max, percent, $blockDeclaration::env);};}
+ CONTAINS LPAREN
+ a = argument {args.add(a);}
+ (COMMA a = argument{args.add(a);})*
+ RPAREN
+
+ //(type = typeExpression | list = plainListExpression COMMA a = argument)
+ //(COMMA min = numberExpression COMMA max = numberExpression (COMMA percent = booleanExpression)?)? RPAREN
+ {
+ cond = ConditionFactory.createConditionContains(args, $blockDeclaration::env);
+ //if(type != null) {cond = ConditionFactory.createConditionContains(type, min, max, percent,$blockDeclaration::env);}
+ //else if(list != null) {cond = ConditionFactory.createConditionContains(list, a, min, max, percent, $blockDeclaration::env);}
+ }
;
conditionContextCount returns [AbstractRutaCondition cond = null]
:
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaStream.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaStream.java?rev=1724261&r1=1724260&r2=1724261&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaStream.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaStream.java Tue Jan 12 15:34:07 2016
@@ -32,17 +32,23 @@ import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
+import org.apache.uima.cas.BooleanArrayFS;
import org.apache.uima.cas.CAS;
import org.apache.uima.cas.CASException;
import org.apache.uima.cas.ConstraintFactory;
+import org.apache.uima.cas.DoubleArrayFS;
import org.apache.uima.cas.FSIterator;
import org.apache.uima.cas.FSMatchConstraint;
import org.apache.uima.cas.Feature;
import org.apache.uima.cas.FeatureStructure;
+import org.apache.uima.cas.FloatArrayFS;
+import org.apache.uima.cas.IntArrayFS;
+import org.apache.uima.cas.StringArrayFS;
import org.apache.uima.cas.Type;
import org.apache.uima.cas.impl.FSIteratorImplBase;
import org.apache.uima.cas.text.AnnotationFS;
import org.apache.uima.cas.text.AnnotationIndex;
+import org.apache.uima.fit.util.FSCollectionFactory;
import org.apache.uima.jcas.JCas;
import org.apache.uima.jcas.tcas.Annotation;
import org.apache.uima.ruta.engine.RutaEngine;
@@ -51,11 +57,14 @@ import org.apache.uima.ruta.expression.I
import org.apache.uima.ruta.expression.annotation.IAnnotationExpression;
import org.apache.uima.ruta.expression.annotation.IAnnotationListExpression;
import org.apache.uima.ruta.expression.bool.IBooleanExpression;
+import org.apache.uima.ruta.expression.bool.IBooleanListExpression;
import org.apache.uima.ruta.expression.feature.FeatureExpression;
import org.apache.uima.ruta.expression.feature.GenericFeatureExpression;
import org.apache.uima.ruta.expression.feature.SimpleFeatureExpression;
import org.apache.uima.ruta.expression.number.INumberExpression;
+import org.apache.uima.ruta.expression.number.INumberListExpression;
import org.apache.uima.ruta.expression.string.IStringExpression;
+import org.apache.uima.ruta.expression.string.IStringListExpression;
import org.apache.uima.ruta.expression.type.ITypeExpression;
import org.apache.uima.ruta.rule.AbstractRule;
import org.apache.uima.ruta.rule.AbstractRuleMatch;
@@ -63,6 +72,7 @@ import org.apache.uima.ruta.rule.MatchCo
import org.apache.uima.ruta.rule.RuleElement;
import org.apache.uima.ruta.type.RutaAnnotation;
import org.apache.uima.ruta.type.RutaBasic;
+import org.apache.uima.ruta.utils.RutaListUtils;
import org.apache.uima.ruta.utils.UIMAUtils;
import org.apache.uima.ruta.visitor.InferenceCrowd;
@@ -927,6 +937,7 @@ public class RutaStream extends FSIterat
if (feature == null) {
throw new IllegalArgumentException("Not able to assign feature value (e.g., coveredText).");
}
+ CAS cas = annotation.getCAS();
String range = feature.getRange().getName();
if (range.equals(UIMAConstants.TYPE_STRING)) {
if (value instanceof IStringExpression) {
@@ -934,29 +945,96 @@ public class RutaStream extends FSIterat
String string = stringExpr.getStringValue(context, this);
annotation.setStringValue(feature, string);
}
- } else if (value instanceof INumberExpression
- && (range.equals(UIMAConstants.TYPE_INTEGER) || range.equals(UIMAConstants.TYPE_LONG)
- || range.equals(UIMAConstants.TYPE_SHORT) || range
- .equals(UIMAConstants.TYPE_BYTE))) {
- INumberExpression numberExpr = (INumberExpression) value;
- int v = numberExpr.getIntegerValue(context, this);
- annotation.setIntValue(feature, v);
- } else if (value instanceof INumberExpression && (range.equals(UIMAConstants.TYPE_DOUBLE))) {
- INumberExpression numberExpr = (INumberExpression) value;
- double v = numberExpr.getDoubleValue(context, this);
- annotation.setDoubleValue(feature, v);
- } else if (value instanceof INumberExpression && (range.equals(UIMAConstants.TYPE_FLOAT))) {
- INumberExpression numberExpr = (INumberExpression) value;
- float v = numberExpr.getFloatValue(context, this);
- annotation.setFloatValue(feature, v);
- } else if (value instanceof IBooleanExpression && (range.equals(UIMAConstants.TYPE_BOOLEAN))) {
- IBooleanExpression booleanExpr = (IBooleanExpression) value;
- boolean v = booleanExpr.getBooleanValue(context, this);
- annotation.setBooleanValue(feature, v);
- } else if (value instanceof IBooleanExpression && (range.equals(UIMAConstants.TYPE_BOOLEAN))) {
- IBooleanExpression booleanExpr = (IBooleanExpression) value;
- boolean v = booleanExpr.getBooleanValue(context, this);
- annotation.setBooleanValue(feature, v);
+ } else if (range.equals(UIMAConstants.TYPE_STRINGARRAY)) {
+ if (value instanceof IStringListExpression) {
+ IStringListExpression stringListExpr = (IStringListExpression) value;
+ List<String> stringList = stringListExpr.getStringList(context, this);
+ StringArrayFS stringArray = FSCollectionFactory.createStringArray(cas, stringList);
+ annotation.setFeatureValue(feature, stringArray);
+ } else if (value instanceof IStringExpression) {
+ IStringExpression stringExpr = (IStringExpression) value;
+ String string = stringExpr.getStringValue(context, this);
+ StringArrayFS array = FSCollectionFactory.createStringArray(cas,
+ new String[] { string });
+ annotation.setFeatureValue(feature, array);
+ }
+ } else if (range.equals(UIMAConstants.TYPE_INTEGER) || range.equals(UIMAConstants.TYPE_LONG)
+ || range.equals(UIMAConstants.TYPE_SHORT) || range.equals(UIMAConstants.TYPE_BYTE)) {
+ if (value instanceof INumberExpression) {
+ INumberExpression numberExpr = (INumberExpression) value;
+ int v = numberExpr.getIntegerValue(context, this);
+ annotation.setIntValue(feature, v);
+ }
+ } else if (range.equals(UIMAConstants.TYPE_INTARRAY)) {
+ if (value instanceof INumberExpression) {
+ INumberExpression numberExpr = (INumberExpression) value;
+ int v = numberExpr.getIntegerValue(context, this);
+ IntArrayFS array = FSCollectionFactory.createIntArray(cas,
+ new int[] { v });
+ annotation.setFeatureValue(feature, array);
+ } else if(value instanceof INumberListExpression) {
+ INumberListExpression expr = (INumberListExpression) value;
+ List<Number> list = expr.getNumberList(context, this);
+ IntArrayFS array = FSCollectionFactory.createIntArray(cas,RutaListUtils.toIntArray(list));
+ annotation.setFeatureValue(feature, array);
+ }
+ } else if (range.equals(UIMAConstants.TYPE_DOUBLE)) {
+ if (value instanceof INumberExpression) {
+ INumberExpression numberExpr = (INumberExpression) value;
+ double v = numberExpr.getDoubleValue(context, this);
+ annotation.setDoubleValue(feature, v);
+ }
+ } else if (range.equals(UIMAConstants.TYPE_DOUBLEARRAY)) {
+ if (value instanceof INumberExpression) {
+ INumberExpression numberExpr = (INumberExpression) value;
+ double v = numberExpr.getDoubleValue(context, this);
+ DoubleArrayFS array = FSCollectionFactory.createDoubleArray(cas,
+ new double[] { v });
+ annotation.setFeatureValue(feature, array);
+ } else if(value instanceof INumberListExpression) {
+ INumberListExpression expr = (INumberListExpression) value;
+ List<Number> list = expr.getNumberList(context, this);
+ DoubleArrayFS array = FSCollectionFactory.createDoubleArray(cas,RutaListUtils.toDoubleArray(list));
+ annotation.setFeatureValue(feature, array);
+ }
+ } else if (range.equals(UIMAConstants.TYPE_FLOAT)) {
+ if (value instanceof INumberExpression) {
+ INumberExpression numberExpr = (INumberExpression) value;
+ float v = numberExpr.getFloatValue(context, this);
+ annotation.setFloatValue(feature, v);
+ }
+ } else if (range.equals(UIMAConstants.TYPE_FLOATARRAY)) {
+ if (value instanceof INumberExpression) {
+ INumberExpression numberExpr = (INumberExpression) value;
+ float v = numberExpr.getFloatValue(context, this);
+ FloatArrayFS array = FSCollectionFactory.createFloatArray(cas,
+ new float[] { v });
+ annotation.setFeatureValue(feature, array);
+ } else if(value instanceof INumberListExpression) {
+ INumberListExpression expr = (INumberListExpression) value;
+ List<Number> list = expr.getNumberList(context, this);
+ FloatArrayFS array = FSCollectionFactory.createFloatArray(cas,RutaListUtils.toFloatArray(list));
+ annotation.setFeatureValue(feature, array);
+ }
+ } else if (range.equals(UIMAConstants.TYPE_BOOLEAN)) {
+ if (value instanceof IBooleanExpression) {
+ IBooleanExpression expr = (IBooleanExpression) value;
+ Boolean v = expr.getBooleanValue(context, this);
+ annotation.setBooleanValue(feature, v);
+ }
+ } else if (range.equals(UIMAConstants.TYPE_BOOLEANARRAY)) {
+ if (value instanceof IBooleanListExpression) {
+ IBooleanListExpression expr = (IBooleanListExpression) value;
+ List<Boolean> list = expr.getBooleanList(context, this);
+ BooleanArrayFS array = FSCollectionFactory.createBooleanArray(cas, list);
+ annotation.setFeatureValue(feature, array);
+ } else if (value instanceof IBooleanExpression) {
+ IBooleanExpression expr = (IBooleanExpression) value;
+ Boolean v = expr.getBooleanValue(context, this);
+ BooleanArrayFS array = FSCollectionFactory.createBooleanArray(cas,
+ new boolean[] { v });
+ annotation.setFeatureValue(feature, array);
+ }
} else if (value instanceof AnnotationTypeExpression && !feature.getRange().isPrimitive()) {
AnnotationTypeExpression ate = (AnnotationTypeExpression) value;
if (feature.getRange().isArray()) {
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/UIMAConstants.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/UIMAConstants.java?rev=1724261&r1=1724260&r2=1724261&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/UIMAConstants.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/UIMAConstants.java Tue Jan 12 15:34:07 2016
@@ -41,6 +41,16 @@ public class UIMAConstants {
public static final String TYPE_FSARRAY = "uima.cas.FSArray";
+ public static final String TYPE_STRINGARRAY = "uima.cas.StringArray";
+
+ public static final String TYPE_BOOLEANARRAY = "uima.cas.BooleanArray";
+
+ public static final String TYPE_INTARRAY = "uima.cas.IntArray";
+
+ public static final String TYPE_DOUBLEARRAY = "uima.cas.DoubleArray";
+
+ public static final String TYPE_FLOATARRAY = "uima.cas.FloatArray";
+
public static final String FEATURE_COVERED_TEXT = "coveredText";
public static final String FEATURE_COVERED_TEXT_SHORT = "ct";
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/ConditionFactory.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/ConditionFactory.java?rev=1724261&r1=1724260&r2=1724261&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/ConditionFactory.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/ConditionFactory.java Tue Jan 12 15:34:07 2016
@@ -53,11 +53,67 @@ public class ConditionFactory {
return new NotCondition(cond);
}
+ @SuppressWarnings("rawtypes")
+ public static AbstractRutaCondition createConditionContains(List<IRutaExpression> args,
+ RutaBlock parent) {
+ if (args.size() == 1) {
+ IRutaExpression arg = args.get(0);
+ if (arg instanceof ITypeExpression) {
+ return createConditionContains((ITypeExpression) arg, null, null, null, parent);
+ }
+ } else if (args.size() == 2) {
+ IRutaExpression arg1 = args.get(0);
+ IRutaExpression arg2 = args.get(1);
+ if (arg1 instanceof ListExpression) {
+ return createConditionContains((ListExpression) arg1, arg2, null, null, null, parent);
+ }
+ } else if (args.size() == 3) {
+ IRutaExpression arg1 = args.get(0);
+ IRutaExpression arg2 = args.get(1);
+ IRutaExpression arg3 = args.get(2);
+ if (arg1 instanceof ITypeExpression && arg2 instanceof INumberExpression
+ && arg3 instanceof INumberExpression) {
+ return createConditionContains((ITypeExpression) arg1, (INumberExpression) arg2,
+ (INumberExpression) arg3, null, parent);
+ }
+ } else if (args.size() == 4) {
+ IRutaExpression arg1 = args.get(0);
+ IRutaExpression arg2 = args.get(1);
+ IRutaExpression arg3 = args.get(2);
+ IRutaExpression arg4 = args.get(3);
+ if (arg1 instanceof ITypeExpression && arg2 instanceof INumberExpression
+ && arg3 instanceof INumberExpression && arg4 instanceof IBooleanExpression) {
+ return createConditionContains((ITypeExpression) arg1, (INumberExpression) arg2,
+ (INumberExpression) arg3, (IBooleanExpression) arg4, parent);
+ }
+ } else if (args.size() == 5) {
+ IRutaExpression arg1 = args.get(0);
+ IRutaExpression arg2 = args.get(1);
+ IRutaExpression arg3 = args.get(2);
+ IRutaExpression arg4 = args.get(3);
+ IRutaExpression arg5 = args.get(3);
+ if (arg1 instanceof ListExpression && arg3 instanceof INumberExpression
+ && arg4 instanceof INumberExpression && arg5 instanceof IBooleanExpression) {
+ return createConditionContains((ListExpression) arg1, arg2, (INumberExpression) arg3,
+ (INumberExpression) arg4, (IBooleanExpression) arg5, parent);
+ }
+ }
+
+ return null;
+ }
+
public static AbstractRutaCondition createConditionContains(ITypeExpression typeExpr,
INumberExpression min, INumberExpression max, IBooleanExpression percent, RutaBlock parent) {
return new ContainsCondition(typeExpr, min, max, percent);
}
+ @SuppressWarnings("rawtypes")
+ public static AbstractRutaCondition createConditionContains(ListExpression list,
+ IRutaExpression a, INumberExpression min, INumberExpression max,
+ IBooleanExpression percent, RutaBlock env) {
+ return new ContainsCondition(list, a, min, max, percent);
+ }
+
public static AbstractRutaCondition createConditionContextCount(ITypeExpression typeExpr,
INumberExpression min, INumberExpression max, Token var, RutaBlock parent) {
String varString = null;
@@ -247,13 +303,6 @@ public class ConditionFactory {
return new CountCondition(type, a, min, max, var == null ? null : var.getText());
}
- @SuppressWarnings("rawtypes")
- public static AbstractRutaCondition createConditionContains(ListExpression list,
- IRutaExpression a, INumberExpression min, INumberExpression max,
- IBooleanExpression percent, RutaBlock env) {
- return new ContainsCondition(list, a, min, max, percent);
- }
-
public static AbstractRutaCondition createImplicitCondition(IRutaExpression expr) {
return new ImplicitCondition(expr);
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/ContainsCondition.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/ContainsCondition.java?rev=1724261&r1=1724260&r2=1724261&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/ContainsCondition.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/condition/ContainsCondition.java Tue Jan 12 15:34:07 2016
@@ -26,17 +26,19 @@ import org.apache.uima.cas.Type;
import org.apache.uima.cas.text.AnnotationFS;
import org.apache.uima.ruta.RutaStream;
import org.apache.uima.ruta.expression.IRutaExpression;
-import org.apache.uima.ruta.expression.bool.AbstractBooleanListExpression;
+import org.apache.uima.ruta.expression.annotation.IAnnotationExpression;
+import org.apache.uima.ruta.expression.annotation.IAnnotationListExpression;
import org.apache.uima.ruta.expression.bool.IBooleanExpression;
+import org.apache.uima.ruta.expression.bool.IBooleanListExpression;
import org.apache.uima.ruta.expression.bool.SimpleBooleanExpression;
import org.apache.uima.ruta.expression.list.ListExpression;
-import org.apache.uima.ruta.expression.number.AbstractNumberListExpression;
import org.apache.uima.ruta.expression.number.INumberExpression;
+import org.apache.uima.ruta.expression.number.INumberListExpression;
import org.apache.uima.ruta.expression.number.SimpleNumberExpression;
-import org.apache.uima.ruta.expression.string.AbstractStringListExpression;
import org.apache.uima.ruta.expression.string.IStringExpression;
-import org.apache.uima.ruta.expression.type.AbstractTypeListExpression;
+import org.apache.uima.ruta.expression.string.IStringListExpression;
import org.apache.uima.ruta.expression.type.ITypeExpression;
+import org.apache.uima.ruta.expression.type.ITypeListExpression;
import org.apache.uima.ruta.rule.EvaluatedCondition;
import org.apache.uima.ruta.rule.MatchContext;
import org.apache.uima.ruta.type.RutaBasic;
@@ -97,36 +99,49 @@ public class ContainsCondition extends T
}
}
} else {
- totalCount = argList.getList(context, stream).size();
- if (arg instanceof IBooleanExpression && argList instanceof AbstractBooleanListExpression) {
+ List<?> list = argList.getList(context, stream);
+ totalCount = list.size();
+ Object sniff = null;
+ if(totalCount >0 ) {
+ sniff = list.get(0);
+ }
+ if (check(sniff, Boolean.class) && arg instanceof IBooleanExpression && argList instanceof IBooleanListExpression) {
IBooleanExpression e = (IBooleanExpression) arg;
- AbstractBooleanListExpression le = (AbstractBooleanListExpression) argList;
+ IBooleanListExpression le = (IBooleanListExpression) argList;
boolean v = e.getBooleanValue(context, stream);
- List<Boolean> l = new ArrayList<Boolean>(le.getList(context, stream));
+ List<Boolean> l = new ArrayList<Boolean>(le.getBooleanList(context, stream));
while (l.remove(v)) {
basicCount++;
}
- } else if (arg instanceof INumberExpression && argList instanceof AbstractNumberListExpression) {
+ } else if (check(sniff, Number.class) &&arg instanceof INumberExpression && argList instanceof INumberListExpression) {
INumberExpression e = (INumberExpression) arg;
- AbstractNumberListExpression le = (AbstractNumberListExpression) argList;
+ INumberListExpression le = (INumberListExpression) argList;
Number v = e.getDoubleValue(context, stream);
- List<Number> l = new ArrayList<Number>(le.getList(context, stream));
+ List<Number> l = new ArrayList<Number>(le.getNumberList(context, stream));
while (l.remove(v)) {
basicCount++;
}
- } else if (arg instanceof IStringExpression && argList instanceof AbstractStringListExpression) {
+ } else if (check(sniff, String.class) &&arg instanceof IStringExpression && argList instanceof IStringListExpression) {
IStringExpression e = (IStringExpression) arg;
- AbstractStringListExpression le = (AbstractStringListExpression) argList;
+ IStringListExpression le = (IStringListExpression) argList;
String v = e.getStringValue(context, stream);
- List<String> l = new ArrayList<String>(le.getList(context, stream));
+ List<String> l = new ArrayList<String>(le.getStringList(context, stream));
while (l.remove(v)) {
basicCount++;
}
- } else if (arg instanceof ITypeExpression && argList instanceof AbstractTypeListExpression) {
+ } else if (check(sniff, Type.class) &&arg instanceof ITypeExpression && argList instanceof ITypeListExpression) {
ITypeExpression e = (ITypeExpression) arg;
- AbstractTypeListExpression le = (AbstractTypeListExpression) argList;
+ ITypeListExpression le = (ITypeListExpression) argList;
Type v = e.getType(context, stream);
- List<Type> l = new ArrayList<Type>(le.getList(context, stream));
+ List<Type> l = new ArrayList<Type>(le.getTypeList(context, stream));
+ while (l.remove(v)) {
+ basicCount++;
+ }
+ } else if (check(sniff, AnnotationFS.class) &&arg instanceof IAnnotationExpression && argList instanceof IAnnotationListExpression) {
+ IAnnotationExpression e = (IAnnotationExpression) arg;
+ IAnnotationListExpression le = (IAnnotationListExpression) argList;
+ AnnotationFS v = e.getAnnotation(context, stream);
+ List<AnnotationFS> l = new ArrayList<AnnotationFS>(le.getAnnotationList(context, stream));
while (l.remove(v)) {
basicCount++;
}
@@ -148,6 +163,15 @@ public class ContainsCondition extends T
}
}
+ private boolean check(Object sniff, Class<?> clazz) {
+ if(sniff == null) {
+ return true;
+ } else if(clazz.isAssignableFrom(sniff.getClass())){
+ return true;
+ }
+ return false;
+ }
+
public INumberExpression getMin() {
return min;
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/BooleanListFeatureExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/BooleanListFeatureExpression.java?rev=1724261&r1=1724260&r2=1724261&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/BooleanListFeatureExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/BooleanListFeatureExpression.java Tue Jan 12 15:34:07 2016
@@ -53,7 +53,7 @@ public class BooleanListFeatureExpressio
AnnotationFS annotation = context.getAnnotation();
Type type = fe.getTypeExpr(context, stream).getType(context, stream);
Feature feature = fe.getFeature(context, stream);
- if(feature == null || !feature.getRange().isArray() || !StringUtils.equals(feature.getRange().getName(), UIMAConstants.TYPE_BOOLEAN)) {
+ if(feature == null || !feature.getRange().isArray() || !StringUtils.equals(feature.getRange().getName(), UIMAConstants.TYPE_BOOLEANARRAY)) {
// throw runtime exception?
return Collections.emptyList();
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/feature/GenericFeatureExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/feature/GenericFeatureExpression.java?rev=1724261&r1=1724260&r2=1724261&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/feature/GenericFeatureExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/feature/GenericFeatureExpression.java Tue Jan 12 15:34:07 2016
@@ -27,7 +27,6 @@ import org.apache.commons.lang3.StringUt
import org.apache.uima.cas.Feature;
import org.apache.uima.cas.Type;
import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.jcas.cas.FSArray;
import org.apache.uima.ruta.RutaStream;
import org.apache.uima.ruta.UIMAConstants;
import org.apache.uima.ruta.expression.ExpressionFactory;
@@ -43,7 +42,8 @@ import org.apache.uima.ruta.expression.s
import org.apache.uima.ruta.rule.MatchContext;
public class GenericFeatureExpression extends ListExpression<Object> implements INumberExpression,
- IBooleanExpression, IStringExpression, IAnnotationExpression, IAnnotationListExpression, IBooleanListExpression, INumberListExpression, IStringListExpression {
+ IBooleanExpression, IStringExpression, IAnnotationExpression, IAnnotationListExpression,
+ IBooleanListExpression, INumberListExpression, IStringListExpression {
private FeatureExpression featureExpression;
@@ -52,7 +52,7 @@ public class GenericFeatureExpression ex
private IStringExpression stringExpression;
private IBooleanExpression booleanExpression;
-
+
private IAnnotationExpression annotationExpression;
private INumberListExpression numberListExpression;
@@ -60,9 +60,9 @@ public class GenericFeatureExpression ex
private IStringListExpression stringListExpression;
private IBooleanListExpression booleanListExpression;
-
+
private IAnnotationListExpression annotationListExpression;
-
+
public GenericFeatureExpression(FeatureExpression fe) {
super();
this.featureExpression = fe;
@@ -143,7 +143,8 @@ public class GenericFeatureExpression ex
@Override
public List<Boolean> getBooleanList(MatchContext context, RutaStream stream) {
if (booleanListExpression == null) {
- booleanListExpression = ExpressionFactory.createBooleanListFeatureExpression(featureExpression);
+ booleanListExpression = ExpressionFactory
+ .createBooleanListFeatureExpression(featureExpression);
}
return booleanListExpression.getBooleanList(context, stream);
}
@@ -151,28 +152,32 @@ public class GenericFeatureExpression ex
@Override
public List<AnnotationFS> getAnnotationList(MatchContext context, RutaStream stream) {
if (annotationListExpression == null) {
- annotationListExpression = ExpressionFactory.createAnnotationListFeatureExpression(featureExpression);
+ annotationListExpression = ExpressionFactory
+ .createAnnotationListFeatureExpression(featureExpression);
}
return annotationListExpression.getAnnotationList(context, stream);
}
-
-
@Override
public List<Object> getList(MatchContext context, RutaStream stream) {
- System.out.println();
Feature feature = featureExpression.getFeature(context, stream);
Type range = feature.getRange();
- if(!range.isArray()) {
+ if (!range.isArray()) {
return Collections.emptyList();
}
List<Object> result = new ArrayList<Object>();
- if(StringUtils.equals(range.getName(), UIMAConstants.TYPE_FSARRAY)) {
+ if (StringUtils.equals(range.getName(), UIMAConstants.TYPE_FSARRAY)) {
result.addAll(getAnnotationList(context, stream));
+ } else if (StringUtils.equals(range.getName(), UIMAConstants.TYPE_BOOLEANARRAY)) {
+ result.addAll(getBooleanList(context, stream));
+ } else if (StringUtils.equals(range.getName(), UIMAConstants.TYPE_STRINGARRAY)) {
+ result.addAll(getStringList(context, stream));
+ } else if (StringUtils.equals(range.getName(), UIMAConstants.TYPE_INTARRAY)
+ || StringUtils.equals(range.getName(), UIMAConstants.TYPE_DOUBLEARRAY)
+ || StringUtils.equals(range.getName(), UIMAConstants.TYPE_FLOATARRAY)) {
+ result.addAll(getNumberList(context, stream));
}
return result;
}
-
-
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/feature/SimpleFeatureExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/feature/SimpleFeatureExpression.java?rev=1724261&r1=1724260&r2=1724261&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/feature/SimpleFeatureExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/feature/SimpleFeatureExpression.java Tue Jan 12 15:34:07 2016
@@ -257,8 +257,10 @@ public class SimpleFeatureExpression ext
}
}
} else if (value != null) {
- throw new IllegalArgumentException(value.getType()
- + " is not supported in a feature match expression (" + mr.getMatch() + ").");
+ result.add(annotation);
+ // primitive? -> return last annotation for further processing
+// throw new IllegalArgumentException(value.getType()
+// + " is not supported in a feature match expression (" + mr.getMatch() + ").");
}
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/NumberListFeatureExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/NumberListFeatureExpression.java?rev=1724261&r1=1724260&r2=1724261&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/NumberListFeatureExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/NumberListFeatureExpression.java Tue Jan 12 15:34:07 2016
@@ -49,13 +49,13 @@ public class NumberListFeatureExpression
super();
this.fe = fe;
}
-
+
@Override
public List<Number> getList(MatchContext context, RutaStream stream) {
AnnotationFS annotation = context.getAnnotation();
Type type = fe.getTypeExpr(context, stream).getType(context, stream);
Feature feature = fe.getFeature(context, stream);
- if(feature == null || !feature.getRange().isArray() || !StringUtils.equals(feature.getRange().getName(), UIMAConstants.TYPE_BOOLEAN)) {
+ if (feature == null || !feature.getRange().isArray() || !validType(feature)) {
// throw runtime exception?
return Collections.emptyList();
}
@@ -66,19 +66,19 @@ public class NumberListFeatureExpression
for (AnnotationFS each : featureAnnotations) {
FeatureStructure featureValue = each.getFeatureValue(feature);
- if(featureValue instanceof IntArrayFS) {
+ if (featureValue instanceof IntArrayFS) {
IntArrayFS array = (IntArrayFS) featureValue;
for (int i = 0; i < array.size(); i++) {
Integer b = array.get(i);
result.add(b);
}
- } else if(featureValue instanceof DoubleArrayFS) {
+ } else if (featureValue instanceof DoubleArrayFS) {
DoubleArrayFS array = (DoubleArrayFS) featureValue;
for (int i = 0; i < array.size(); i++) {
Double b = array.get(i);
result.add(b);
}
- } else if(featureValue instanceof FloatArrayFS) {
+ } else if (featureValue instanceof FloatArrayFS) {
FloatArrayFS array = (FloatArrayFS) featureValue;
for (int i = 0; i < array.size(); i++) {
Float b = array.get(i);
@@ -86,10 +86,17 @@ public class NumberListFeatureExpression
}
}
}
-
+
return result;
}
+ private boolean validType(Feature feature) {
+ String name = feature.getRange().getName();
+ return StringUtils.equals(name, UIMAConstants.TYPE_INTARRAY)
+ || StringUtils.equals(name, UIMAConstants.TYPE_DOUBLEARRAY)
+ || StringUtils.equals(name, UIMAConstants.TYPE_FLOATARRAY);
+ }
+
public FeatureExpression getFeatureExpression() {
return fe;
}
@@ -98,9 +105,4 @@ public class NumberListFeatureExpression
this.fe = fe;
}
-
-
-
-
-
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/AbstractStringListExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/AbstractStringListExpression.java?rev=1724261&r1=1724260&r2=1724261&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/AbstractStringListExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/AbstractStringListExpression.java Tue Jan 12 15:34:07 2016
@@ -29,6 +29,6 @@ public abstract class AbstractStringList
@Override
public List<String> getStringList(MatchContext context, RutaStream stream) {
- return getStringList(context, stream);
+ return getList(context, stream);
}
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/StringListFeatureExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/StringListFeatureExpression.java?rev=1724261&r1=1724260&r2=1724261&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/StringListFeatureExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/StringListFeatureExpression.java Tue Jan 12 15:34:07 2016
@@ -53,7 +53,7 @@ public class StringListFeatureExpression
AnnotationFS annotation = context.getAnnotation();
Type type = fe.getTypeExpr(context, stream).getType(context, stream);
Feature feature = fe.getFeature(context, stream);
- if(feature == null || !feature.getRange().isArray() || !StringUtils.equals(feature.getRange().getName(), UIMAConstants.TYPE_BOOLEAN)) {
+ if(feature == null || !feature.getRange().isArray() || !StringUtils.equals(feature.getRange().getName(), UIMAConstants.TYPE_STRINGARRAY)) {
// throw runtime exception?
return Collections.emptyList();
}
Added: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/utils/RutaListUtils.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/utils/RutaListUtils.java?rev=1724261&view=auto
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/utils/RutaListUtils.java (added)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/utils/RutaListUtils.java Tue Jan 12 15:34:07 2016
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.uima.ruta.utils;
+
+import java.util.List;
+
+public class RutaListUtils {
+
+ public static int[] toIntArray(List<Number> list) {
+ int[] result = new int[list.size()];
+ int index = 0;
+ for (Number number : list) {
+ result[index] = number.intValue();
+ index++;
+ }
+ return result;
+ }
+
+ public static double[] toDoubleArray(List<Number> list) {
+ double[] result = new double[list.size()];
+ int index = 0;
+ for (Number number : list) {
+ result[index] = number.doubleValue();
+ index++;
+ }
+ return result;
+ }
+
+ public static float[] toFloatArray(List<Number> list) {
+ float[] result = new float[list.size()];
+ int index = 0;
+ for (Number number : list) {
+ result[index] = number.floatValue();
+ index++;
+ }
+ return result;
+ }
+
+}
Propchange: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/utils/RutaListUtils.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/annotation/AnnotationFeatureExpressionTest.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/annotation/AnnotationFeatureExpressionTest.java?rev=1724261&r1=1724260&r2=1724261&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/annotation/AnnotationFeatureExpressionTest.java (original)
+++ uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/annotation/AnnotationFeatureExpressionTest.java Tue Jan 12 15:34:07 2016
@@ -115,4 +115,36 @@ public class AnnotationFeatureExpression
RutaTestUtils.assertAnnotationsEquals(cas, 4, 1, "text");
}
+ @Test
+ public void testStringArray() {
+ String document = "Some text.";
+ String script = "";
+ script += "W{-> CREATE(Struct, \"as\"={\"text\"})};\n";
+ script += "Struct{CONTAINS(Struct.as, Struct.ct)-> T1};\n";
+
+
+ Map<String, String> typeMap = new TreeMap<String, String>();
+ String typeName1 = "Struct";
+ typeMap.put(typeName1, "uima.tcas.Annotation");
+
+ Map<String, List<TestFeature>> featureMap = new TreeMap<String, List<TestFeature>>();
+ List<TestFeature> list = new ArrayList<RutaTestUtils.TestFeature>();
+ featureMap.put(typeName1, list);
+ String fn1 = "as";
+ list.add(new TestFeature(fn1, "", "uima.cas.StringArray"));
+ list = new ArrayList<RutaTestUtils.TestFeature>();
+
+
+ CAS cas = null;
+ try {
+ cas = RutaTestUtils.getCAS(document, typeMap, featureMap);
+ Ruta.apply(cas, script);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ RutaTestUtils.assertAnnotationsEquals(cas, 1, 1, "text");
+
+ }
+
}
Modified: uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/annotation/AnnotationLabelExpressionTest.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/annotation/AnnotationLabelExpressionTest.java?rev=1724261&r1=1724260&r2=1724261&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/annotation/AnnotationLabelExpressionTest.java (original)
+++ uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/annotation/AnnotationLabelExpressionTest.java Tue Jan 12 15:34:07 2016
@@ -36,6 +36,7 @@ import org.apache.uima.cas.text.Annotati
import org.apache.uima.ruta.engine.Ruta;
import org.apache.uima.ruta.engine.RutaTestUtils;
import org.apache.uima.ruta.engine.RutaTestUtils.TestFeature;
+import org.junit.Ignore;
import org.junit.Test;
public class AnnotationLabelExpressionTest {
@@ -249,4 +250,35 @@ public class AnnotationLabelExpressionTe
assertEquals("Some", a.getCoveredText());
}
+
+ @Test
+ @Ignore
+ public void testInsideOut() {
+ String document = "Some text.";
+ String script = "(a:W{-PARTOF(Struct) -> CREATE(Struct, \"a\"=a, \"c\"=a)})+;";
+ script += "Struct.a{-> T1};";
+ script += "Struct{SIZE(Struct.c,1,1)-> T3};";
+
+ Map<String, String> typeMap = new TreeMap<String, String>();
+ String typeName = "Struct";
+ typeMap.put(typeName, "uima.tcas.Annotation");
+
+ Map<String, List<TestFeature>> featureMap = new TreeMap<String, List<TestFeature>>();
+ List<TestFeature> list = new ArrayList<RutaTestUtils.TestFeature>();
+ featureMap.put(typeName, list);
+ list.add(new TestFeature("a", "", "uima.tcas.Annotation"));
+ list.add(new TestFeature("c", "", "uima.cas.FSArray"));
+
+ CAS cas = null;
+ try {
+ cas = RutaTestUtils.getCAS(document, typeMap, featureMap);
+ Ruta.apply(cas, script);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ RutaTestUtils.assertAnnotationsEquals(cas, 1, 2, "Some", "text");
+ RutaTestUtils.assertAnnotationsEquals(cas, 3, 2, "Some", "text");
+ }
+
}
Modified: uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ActionVerbalizerTest.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ActionVerbalizerTest.java?rev=1724261&r1=1724260&r2=1724261&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ActionVerbalizerTest.java (original)
+++ uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ActionVerbalizerTest.java Tue Jan 12 15:34:07 2016
@@ -65,10 +65,6 @@ import org.apache.uima.ruta.expression.I
import org.apache.uima.ruta.expression.bool.IBooleanExpression;
import org.apache.uima.ruta.expression.bool.SimpleBooleanExpression;
import org.apache.uima.ruta.expression.list.ListExpression;
-import org.apache.uima.ruta.expression.list.SimpleStringListExpression;
-import org.apache.uima.ruta.expression.list.SimpleTypeListExpression;
-import org.apache.uima.ruta.expression.list.StringListExpression;
-import org.apache.uima.ruta.expression.list.TypeListExpression;
import org.apache.uima.ruta.expression.number.INumberExpression;
import org.apache.uima.ruta.expression.number.NumberVariableExpression;
import org.apache.uima.ruta.expression.number.SimpleNumberExpression;
@@ -77,10 +73,14 @@ import org.apache.uima.ruta.expression.r
import org.apache.uima.ruta.expression.resource.WordListExpression;
import org.apache.uima.ruta.expression.resource.WordTableExpression;
import org.apache.uima.ruta.expression.string.AbstractStringExpression;
+import org.apache.uima.ruta.expression.string.AbstractStringListExpression;
import org.apache.uima.ruta.expression.string.IStringExpression;
import org.apache.uima.ruta.expression.string.SimpleStringExpression;
+import org.apache.uima.ruta.expression.string.SimpleStringListExpression;
+import org.apache.uima.ruta.expression.type.AbstractTypeListExpression;
import org.apache.uima.ruta.expression.type.ITypeExpression;
import org.apache.uima.ruta.expression.type.SimpleTypeExpression;
+import org.apache.uima.ruta.expression.type.SimpleTypeListExpression;
import org.apache.uima.ruta.expression.type.TypeVariableExpression;
import org.apache.uima.ruta.verbalize.RutaVerbalizer;
import org.junit.Test;
@@ -108,8 +108,8 @@ public class ActionVerbalizerTest {
exprList.add(typeExpr1);
WordTableExpression wordTableExpr = new ReferenceWordTableExpression(var);
WordListExpression wordListExpr = new ReferenceWordListExpression(var);
- TypeListExpression typeListExpr = new SimpleTypeListExpression(typeExprList);
- StringListExpression stringListExpr = new SimpleStringListExpression(stringExprList);
+ AbstractTypeListExpression typeListExpr = new SimpleTypeListExpression(typeExprList);
+ AbstractStringListExpression stringListExpr = new SimpleStringListExpression(stringExprList);
Map<IStringExpression, IRutaExpression> stringExprMap = new HashMap<IStringExpression, IRutaExpression>();
Map<IStringExpression, INumberExpression> stringExprNumExprMap = new HashMap<IStringExpression, INumberExpression>();
Map<IStringExpression, IRutaExpression> stringExprTypeExprMap = new HashMap<IStringExpression, IRutaExpression>();
Modified: uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ConditionVerbalizerTest.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ConditionVerbalizerTest.java?rev=1724261&r1=1724260&r2=1724261&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ConditionVerbalizerTest.java (original)
+++ uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ConditionVerbalizerTest.java Tue Jan 12 15:34:07 2016
@@ -54,17 +54,17 @@ import org.apache.uima.ruta.condition.To
import org.apache.uima.ruta.condition.VoteCondition;
import org.apache.uima.ruta.expression.bool.IBooleanExpression;
import org.apache.uima.ruta.expression.bool.SimpleBooleanExpression;
-import org.apache.uima.ruta.expression.list.SimpleStringListExpression;
-import org.apache.uima.ruta.expression.list.SimpleTypeListExpression;
-import org.apache.uima.ruta.expression.list.StringListExpression;
-import org.apache.uima.ruta.expression.list.TypeListExpression;
import org.apache.uima.ruta.expression.number.INumberExpression;
import org.apache.uima.ruta.expression.number.NumberVariableExpression;
import org.apache.uima.ruta.expression.number.SimpleNumberExpression;
+import org.apache.uima.ruta.expression.string.AbstractStringListExpression;
import org.apache.uima.ruta.expression.string.IStringExpression;
import org.apache.uima.ruta.expression.string.SimpleStringExpression;
+import org.apache.uima.ruta.expression.string.SimpleStringListExpression;
+import org.apache.uima.ruta.expression.type.AbstractTypeListExpression;
import org.apache.uima.ruta.expression.type.ITypeExpression;
import org.apache.uima.ruta.expression.type.SimpleTypeExpression;
+import org.apache.uima.ruta.expression.type.SimpleTypeListExpression;
import org.apache.uima.ruta.expression.type.TypeVariableExpression;
import org.apache.uima.ruta.verbalize.RutaVerbalizer;
import org.junit.Test;
@@ -87,8 +87,8 @@ public class ConditionVerbalizerTest {
IBooleanExpression boolExpr1 = new SimpleBooleanExpression(true);
IStringExpression stringExpr = new SimpleStringExpression("string");
stringExprList.add(stringExpr);
- TypeListExpression typeListExpr = new SimpleTypeListExpression(typeExprList);
- StringListExpression stringListExpr = new SimpleStringListExpression(stringExprList);
+ AbstractTypeListExpression typeListExpr = new SimpleTypeListExpression(typeExprList);
+ AbstractStringListExpression stringListExpr = new SimpleStringListExpression(stringExprList);
AbstractRutaCondition c = null;
String s = null;
Modified: uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ExpressionVerbalizerTest.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ExpressionVerbalizerTest.java?rev=1724261&r1=1724260&r2=1724261&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ExpressionVerbalizerTest.java (original)
+++ uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/verbalizer/ExpressionVerbalizerTest.java Tue Jan 12 15:34:07 2016
@@ -24,34 +24,34 @@ import static org.junit.Assert.assertEqu
import java.util.ArrayList;
import java.util.List;
+import org.apache.uima.ruta.expression.bool.AbstractBooleanListExpression;
+import org.apache.uima.ruta.expression.bool.BooleanListVariableExpression;
import org.apache.uima.ruta.expression.bool.BooleanNumberExpression;
import org.apache.uima.ruta.expression.bool.BooleanTypeExpression;
import org.apache.uima.ruta.expression.bool.BooleanVariableExpression;
import org.apache.uima.ruta.expression.bool.IBooleanExpression;
import org.apache.uima.ruta.expression.bool.SimpleBooleanExpression;
-import org.apache.uima.ruta.expression.list.BooleanListExpression;
-import org.apache.uima.ruta.expression.list.BooleanListVariableExpression;
-import org.apache.uima.ruta.expression.list.NumberListExpression;
-import org.apache.uima.ruta.expression.list.NumberListVariableExpression;
-import org.apache.uima.ruta.expression.list.SimpleBooleanListExpression;
-import org.apache.uima.ruta.expression.list.SimpleNumberListExpression;
-import org.apache.uima.ruta.expression.list.SimpleStringListExpression;
-import org.apache.uima.ruta.expression.list.SimpleTypeListExpression;
-import org.apache.uima.ruta.expression.list.StringListExpression;
-import org.apache.uima.ruta.expression.list.StringListVariableExpression;
-import org.apache.uima.ruta.expression.list.TypeListExpression;
-import org.apache.uima.ruta.expression.list.TypeListVariableExpression;
+import org.apache.uima.ruta.expression.bool.SimpleBooleanListExpression;
+import org.apache.uima.ruta.expression.number.AbstractNumberListExpression;
import org.apache.uima.ruta.expression.number.ComposedNumberExpression;
import org.apache.uima.ruta.expression.number.INumberExpression;
+import org.apache.uima.ruta.expression.number.NumberListVariableExpression;
import org.apache.uima.ruta.expression.number.NumberVariableExpression;
import org.apache.uima.ruta.expression.number.SimpleNumberExpression;
+import org.apache.uima.ruta.expression.number.SimpleNumberListExpression;
import org.apache.uima.ruta.expression.string.AbstractStringExpression;
+import org.apache.uima.ruta.expression.string.AbstractStringListExpression;
import org.apache.uima.ruta.expression.string.ComposedStringExpression;
import org.apache.uima.ruta.expression.string.IStringExpression;
import org.apache.uima.ruta.expression.string.SimpleStringExpression;
+import org.apache.uima.ruta.expression.string.SimpleStringListExpression;
+import org.apache.uima.ruta.expression.string.StringListVariableExpression;
import org.apache.uima.ruta.expression.string.StringVariableExpression;
+import org.apache.uima.ruta.expression.type.AbstractTypeListExpression;
import org.apache.uima.ruta.expression.type.ITypeExpression;
import org.apache.uima.ruta.expression.type.SimpleTypeExpression;
+import org.apache.uima.ruta.expression.type.SimpleTypeListExpression;
+import org.apache.uima.ruta.expression.type.TypeListVariableExpression;
import org.apache.uima.ruta.expression.type.TypeVariableExpression;
import org.apache.uima.ruta.verbalize.RutaVerbalizer;
import org.junit.Test;
@@ -179,8 +179,8 @@ public class ExpressionVerbalizerTest {
s = v.verbalize(stringExpr3);
assertEquals("\"string\" + anyVar", s);
- StringListExpression sle1 = new SimpleStringListExpression(stringExprList);
- StringListExpression sle2 = new StringListVariableExpression(var);
+ AbstractStringListExpression sle1 = new SimpleStringListExpression(stringExprList);
+ AbstractStringListExpression sle2 = new StringListVariableExpression(var);
s = v.verbalize(sle1);
assertEquals("{\"string\", anyVar}", s);
s = v.verbalize(sle2);
@@ -189,8 +189,8 @@ public class ExpressionVerbalizerTest {
List<IBooleanExpression> boolExprList = new ArrayList<IBooleanExpression>();
boolExprList.add(boolExpr1);
boolExprList.add(boolExpr3);
- BooleanListExpression ble1 = new SimpleBooleanListExpression(boolExprList);
- BooleanListExpression ble2 = new BooleanListVariableExpression(var);
+ AbstractBooleanListExpression ble1 = new SimpleBooleanListExpression(boolExprList);
+ AbstractBooleanListExpression ble2 = new BooleanListVariableExpression(var);
s = v.verbalize(ble1);
assertEquals("{true, anyVar}", s);
s = v.verbalize(ble2);
@@ -199,8 +199,8 @@ public class ExpressionVerbalizerTest {
List<INumberExpression> numExprList = new ArrayList<INumberExpression>();
numExprList.add(numExpr1);
numExprList.add(numExpr3);
- NumberListExpression nle1 = new SimpleNumberListExpression(numExprList);
- NumberListExpression nle2 = new NumberListVariableExpression(var);
+ AbstractNumberListExpression nle1 = new SimpleNumberListExpression(numExprList);
+ AbstractNumberListExpression nle2 = new NumberListVariableExpression(var);
s = v.verbalize(nle1);
assertEquals("{4, 4.9}", s);
s = v.verbalize(nle2);
@@ -209,8 +209,8 @@ public class ExpressionVerbalizerTest {
List<ITypeExpression> typeExprList = new ArrayList<ITypeExpression>();
typeExprList.add(typeExpr1);
typeExprList.add(typeExpr2);
- TypeListExpression tle1 = new SimpleTypeListExpression(typeExprList);
- TypeListExpression tle2 = new TypeListVariableExpression(var);
+ AbstractTypeListExpression tle1 = new SimpleTypeListExpression(typeExprList);
+ AbstractTypeListExpression tle2 = new TypeListVariableExpression(var);
s = v.verbalize(tle1);
assertEquals("{Type1, typeVar}", s);
s = v.verbalize(tle2);