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/04 11:33:50 UTC
svn commit: r1722834 [6/9] - in /uima/ruta/trunk: ./
example-projects/ruta-ep-example-extensions/
example-projects/ruta-ep-example-extensions/src/main/java/org/apache/uima/ruta/example/extensions/
ruta-core-ext/src/main/java/org/apache/uima/ruta/block/...
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/NullExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/NullExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/NullExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/NullExpression.java Mon Jan 4 10:33:48 2016
@@ -25,56 +25,47 @@ import java.util.List;
import org.apache.uima.cas.Feature;
import org.apache.uima.cas.Type;
import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.RutaStream;
import org.apache.uima.ruta.expression.feature.FeatureExpression;
import org.apache.uima.ruta.expression.string.IStringExpression;
import org.apache.uima.ruta.expression.type.ITypeExpression;
-import org.apache.uima.ruta.expression.type.TypeExpression;
-import org.apache.uima.ruta.rule.RuleElement;
-import org.apache.uima.ruta.rule.RuleMatch;
+import org.apache.uima.ruta.rule.MatchContext;
-public class NullExpression extends FeatureExpression implements IStringExpression, ITypeExpression{
+public class NullExpression extends FeatureExpression implements IStringExpression, ITypeExpression {
@Override
- public String getStringValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
+ public String getStringValue(MatchContext context, RutaStream stream) {
return null;
}
@Override
- public String getStringValue(RutaBlock parent, RuleMatch match, RuleElement element,
- RutaStream stream) {
- return null;
- }
-
- @Override
- public Feature getFeature(RutaBlock parent) {
+ public Collection<AnnotationFS> getFeatureAnnotations(Collection<AnnotationFS> annotations,
+ RutaStream stream, MatchContext context, boolean checkOnFeatureValue) {
return null;
}
@Override
- public List<Feature> getFeatures(RutaBlock parent) {
+ public Type getType(MatchContext context, RutaStream stream) {
return null;
}
@Override
- public List<String> getFeatureStringList(RutaBlock parent) {
+ public Feature getFeature(MatchContext context, RutaStream stream) {
return null;
}
@Override
- public TypeExpression getTypeExpr(RutaBlock parent) {
+ public List<Feature> getFeatures(MatchContext context, RutaStream stream) {
return null;
}
@Override
- public Collection<AnnotationFS> getFeatureAnnotations(Collection<AnnotationFS> annotations,
- RutaStream stream, RutaBlock parent, boolean checkOnFeatureValue) {
+ public List<String> getFeatureStringList(MatchContext context, RutaStream stream) {
return null;
}
@Override
- public Type getType(RutaBlock parent) {
+ public ITypeExpression getTypeExpr(MatchContext context, RutaStream stream) {
return null;
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/RutaExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/RutaExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/RutaExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/RutaExpression.java Mon Jan 4 10:33:48 2016
@@ -37,23 +37,23 @@ public class RutaExpression extends Ruta
if (annotation == null) {
return Collections.emptyList();
}
-
+
// "autocast" to document annotation when mentioning document.
// This is either the actual document annotation or the current one in a block or inlined rule
AnnotationFS documentAnnotation = stream.getCas().getDocumentAnnotation();
Type docType = documentAnnotation.getType();
- if(docType.equals(type)) {
- List<AnnotationFS> result = new ArrayList<AnnotationFS>(1);
- AnnotationFS windowAnnotation = stream.getFilter().getWindowAnnotation();
- if(windowAnnotation == null) {
- result.add(documentAnnotation);
- return result;
- } else {
- result.add(windowAnnotation);
- return result;
- }
+ if (docType.equals(type)) {
+ List<AnnotationFS> result = new ArrayList<AnnotationFS>(1);
+ AnnotationFS windowAnnotation = stream.getFilter().getWindowAnnotation();
+ if (windowAnnotation == null) {
+ result.add(documentAnnotation);
+ return result;
+ } else {
+ result.add(windowAnnotation);
+ return result;
+ }
}
-
+
if (annotation.getType().equals(type)
|| stream.getCas().getTypeSystem().subsumes(type, annotation.getType())) {
List<AnnotationFS> result = new ArrayList<AnnotationFS>(1);
@@ -62,7 +62,8 @@ public class RutaExpression extends Ruta
} else {
Collection<AnnotationFS> beginAnchors = stream.getBeginAnchor(annotation.getBegin())
.getBeginAnchors(type);
- Collection<AnnotationFS> endAnchors = stream.getEndAnchor(annotation.getEnd()).getEndAnchors(type);
+ Collection<AnnotationFS> endAnchors = stream.getEndAnchor(annotation.getEnd()).getEndAnchors(
+ type);
@SuppressWarnings("unchecked")
Collection<AnnotationFS> intersection = CollectionUtils
.intersection(beginAnchors, endAnchors);
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/annotation/AbstractAnnotationExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/annotation/AbstractAnnotationExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/annotation/AbstractAnnotationExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/annotation/AbstractAnnotationExpression.java Mon Jan 4 10:33:48 2016
@@ -19,39 +19,21 @@
package org.apache.uima.ruta.expression.annotation;
-import java.util.List;
-
import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.RutaStream;
-import org.apache.uima.ruta.rule.RuleElement;
-import org.apache.uima.ruta.rule.RuleMatch;
+import org.apache.uima.ruta.expression.RutaExpression;
+import org.apache.uima.ruta.rule.MatchContext;
-public abstract class AbstractAnnotationExpression implements IAnnotationExpression {
-
- public AnnotationFS getAnnotation(RutaBlock parent, RuleMatch match, RuleElement element,
- RutaStream stream) {
- List<AnnotationFS> matchedAnnotationsOf = match.getMatchedAnnotationsOfElement(element);
- // TODO: do we need to select the correct annotation?
- AnnotationFS annotation = null;
- if (!matchedAnnotationsOf.isEmpty()) {
- annotation = matchedAnnotationsOf.get(0);
- }
- return getAnnotation(parent, annotation, stream);
- }
+public abstract class AbstractAnnotationExpression extends RutaExpression implements IAnnotationExpression {
- public abstract AnnotationFS getAnnotation(RutaBlock parent, AnnotationFS annotation, RutaStream stream);
-
- public List<AnnotationFS> getAnnotations(RutaBlock parent, RuleMatch match, RuleElement element,
- RutaStream stream) {
- List<AnnotationFS> matchedAnnotationsOf = match.getMatchedAnnotationsOfElement(element);
- // TODO: do we need to select the correct annotation?
- AnnotationFS annotation = null;
- if (!matchedAnnotationsOf.isEmpty()) {
- annotation = matchedAnnotationsOf.get(0);
+ @Override
+ public String getStringValue(MatchContext context, RutaStream stream) {
+ AnnotationFS annotation = getAnnotation(context, stream);
+ if(annotation != null) {
+ return annotation.getCoveredText();
+ } else {
+ return "null";
}
- return getAnnotations(parent, annotation, stream);
}
-
- public abstract List<AnnotationFS> getAnnotations(RutaBlock parent, AnnotationFS annotation, RutaStream stream);
+
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/annotation/IAnnotationExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/annotation/IAnnotationExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/annotation/IAnnotationExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/annotation/IAnnotationExpression.java Mon Jan 4 10:33:48 2016
@@ -19,29 +19,18 @@
package org.apache.uima.ruta.expression.annotation;
-import java.util.List;
-
import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.RutaStream;
-import org.apache.uima.ruta.rule.RuleElement;
-import org.apache.uima.ruta.rule.RuleMatch;
+import org.apache.uima.ruta.expression.string.IStringExpression;
+import org.apache.uima.ruta.rule.MatchContext;
/**
* This is a generic interface for all annotation expressions, expressions that refer to explicit
* annotations.
*
*/
-public interface IAnnotationExpression {
-
- AnnotationFS getAnnotation(RutaBlock parent, AnnotationFS annotation, RutaStream stream);
-
- List<AnnotationFS> getAnnotations(RutaBlock parent, AnnotationFS annotation, RutaStream stream);
-
- AnnotationFS getAnnotation(RutaBlock parent, RuleMatch match, RuleElement element,
- RutaStream stream);
+public interface IAnnotationExpression extends IStringExpression {
- List<AnnotationFS> getAnnotations(RutaBlock parent, RuleMatch match, RuleElement element,
- RutaStream stream);
+ AnnotationFS getAnnotation(MatchContext context, RutaStream stream);
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/AbstractBooleanExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/AbstractBooleanExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/AbstractBooleanExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/AbstractBooleanExpression.java Mon Jan 4 10:33:48 2016
@@ -19,29 +19,9 @@
package org.apache.uima.ruta.expression.bool;
-import java.util.List;
-
-import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
-import org.apache.uima.ruta.RutaStream;
import org.apache.uima.ruta.expression.string.AbstractStringExpression;
-import org.apache.uima.ruta.rule.RuleElement;
-import org.apache.uima.ruta.rule.RuleMatch;
-
-public abstract class AbstractBooleanExpression extends AbstractStringExpression implements IBooleanExpression {
-
- public boolean getBooleanValue(RutaBlock parent, RuleMatch match, RuleElement element,
- RutaStream stream) {
- List<AnnotationFS> matchedAnnotationsOf = match.getMatchedAnnotationsOfElement(element);
- // TODO: do we need to select the correct annotation?
- AnnotationFS annotation = null;
- if (!matchedAnnotationsOf.isEmpty()) {
- annotation = matchedAnnotationsOf.get(0);
- }
- return getBooleanValue(parent, annotation, stream);
- }
- public abstract boolean getBooleanValue(RutaBlock parent, AnnotationFS annotation,
- RutaStream stream);
+public abstract class AbstractBooleanExpression extends AbstractStringExpression implements
+ IBooleanExpression {
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/BooleanFeatureExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/BooleanFeatureExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/BooleanFeatureExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/BooleanFeatureExpression.java Mon Jan 4 10:33:48 2016
@@ -25,9 +25,9 @@ import java.util.List;
import org.apache.uima.cas.Feature;
import org.apache.uima.cas.Type;
import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.RutaStream;
import org.apache.uima.ruta.expression.feature.FeatureExpression;
+import org.apache.uima.ruta.rule.MatchContext;
public class BooleanFeatureExpression extends AbstractBooleanExpression {
@@ -39,11 +39,12 @@ public class BooleanFeatureExpression ex
}
@Override
- public boolean getBooleanValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
- Type type = fe.getTypeExpr(parent).getType(parent);
- Feature feature = fe.getFeature(parent);
+ public boolean getBooleanValue(MatchContext context, RutaStream stream) {
+ AnnotationFS annotation = context.getAnnotation();
+ Type type = fe.getTypeExpr(context, stream).getType(context, stream);
+ Feature feature = fe.getFeature(context, stream);
List<AnnotationFS> list = getTargetAnnotation(annotation, type, stream);
- Collection<AnnotationFS> featureAnnotations = fe.getFeatureAnnotations(list, stream, parent,
+ Collection<AnnotationFS> featureAnnotations = fe.getFeatureAnnotations(list, stream, context,
false);
if (!featureAnnotations.isEmpty()) {
AnnotationFS next = featureAnnotations.iterator().next();
@@ -53,8 +54,8 @@ public class BooleanFeatureExpression ex
}
@Override
- public String getStringValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
- return "" + getBooleanValue(parent, annotation, stream);
+ public String getStringValue(MatchContext context, RutaStream stream) {
+ return String.valueOf(getBooleanValue(context, stream));
}
public FeatureExpression getFe() {
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/BooleanNumberExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/BooleanNumberExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/BooleanNumberExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/BooleanNumberExpression.java Mon Jan 4 10:33:48 2016
@@ -19,10 +19,9 @@
package org.apache.uima.ruta.expression.bool;
-import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.RutaStream;
import org.apache.uima.ruta.expression.number.INumberExpression;
+import org.apache.uima.ruta.rule.MatchContext;
public class BooleanNumberExpression extends AbstractBooleanExpression {
@@ -40,9 +39,9 @@ public class BooleanNumberExpression ext
}
@Override
- public boolean getBooleanValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
- double doubleValue1 = getFristExpression().getDoubleValue(parent, annotation, stream);
- double doubleValue2 = getSecondExpression().getDoubleValue(parent, annotation, stream);
+ public boolean getBooleanValue(MatchContext context, RutaStream stream) {
+ double doubleValue1 = getFristExpression().getDoubleValue(context, stream);
+ double doubleValue2 = getSecondExpression().getDoubleValue(context, stream);
return eval(doubleValue1, getOperator(), doubleValue2);
}
@@ -76,9 +75,8 @@ public class BooleanNumberExpression ext
}
@Override
- public String getStringValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
- return e1.getStringValue(parent, annotation, stream) + " " + op + " "
- + e2.getStringValue(parent, annotation, stream);
+ public String getStringValue(MatchContext context, RutaStream stream) {
+ return e1.getStringValue(context, stream) + " " + op + " " + e2.getStringValue(context, stream);
}
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/BooleanTypeExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/BooleanTypeExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/BooleanTypeExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/BooleanTypeExpression.java Mon Jan 4 10:33:48 2016
@@ -20,20 +20,19 @@
package org.apache.uima.ruta.expression.bool;
import org.apache.uima.cas.Type;
-import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.RutaStream;
-import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.expression.type.ITypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
public class BooleanTypeExpression extends AbstractBooleanExpression {
- private final TypeExpression e1;
+ private final ITypeExpression e1;
private final String op;
- private final TypeExpression e2;
+ private final ITypeExpression e2;
- public BooleanTypeExpression(TypeExpression e1, String op, TypeExpression e2) {
+ public BooleanTypeExpression(ITypeExpression e1, String op, ITypeExpression e2) {
super();
this.e1 = e1;
this.op = op;
@@ -41,10 +40,10 @@ public class BooleanTypeExpression exten
}
@Override
- public boolean getBooleanValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
- Type type1 = getFristExpression().getType(parent);
+ public boolean getBooleanValue(MatchContext context, RutaStream stream) {
+ Type type1 = getFristExpression().getType(context, stream);
String first = type1.getName();
- Type type2 = getSecondExpression().getType(parent);
+ Type type2 = getSecondExpression().getType(context, stream);
String second = type2.getName();
return eval(first, getOperator(), second);
}
@@ -58,7 +57,7 @@ public class BooleanTypeExpression exten
return false;
}
- public TypeExpression getFristExpression() {
+ public ITypeExpression getFristExpression() {
return e1;
}
@@ -66,14 +65,13 @@ public class BooleanTypeExpression exten
return op;
}
- public TypeExpression getSecondExpression() {
+ public ITypeExpression getSecondExpression() {
return e2;
}
@Override
- public String getStringValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
- return e1.getStringValue(parent, annotation, stream) + " " + op + " "
- + e2.getStringValue(parent, annotation, stream);
+ public String getStringValue(MatchContext context, RutaStream stream) {
+ return e1.getStringValue(context, stream) + " " + op + " " + e2.getStringValue(context, stream);
}
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/IBooleanExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/IBooleanExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/IBooleanExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/IBooleanExpression.java Mon Jan 4 10:33:48 2016
@@ -19,17 +19,12 @@
package org.apache.uima.ruta.expression.bool;
-import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.RutaStream;
import org.apache.uima.ruta.expression.string.IStringExpression;
-import org.apache.uima.ruta.rule.RuleElement;
-import org.apache.uima.ruta.rule.RuleMatch;
+import org.apache.uima.ruta.rule.MatchContext;
public interface IBooleanExpression extends IStringExpression {
-
- boolean getBooleanValue(RutaBlock parent, RuleMatch match, RuleElement element, RutaStream stream);
- boolean getBooleanValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream);
+ boolean getBooleanValue(MatchContext context, RutaStream stream);
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/SimpleBooleanExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/SimpleBooleanExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/SimpleBooleanExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/SimpleBooleanExpression.java Mon Jan 4 10:33:48 2016
@@ -19,9 +19,8 @@
package org.apache.uima.ruta.expression.bool;
-import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.RutaStream;
+import org.apache.uima.ruta.rule.MatchContext;
public class SimpleBooleanExpression extends AbstractBooleanExpression {
@@ -33,7 +32,7 @@ public class SimpleBooleanExpression ext
}
@Override
- public boolean getBooleanValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
+ public boolean getBooleanValue(MatchContext context, RutaStream stream) {
return getPrimitiveValue();
}
@@ -42,8 +41,8 @@ public class SimpleBooleanExpression ext
}
@Override
- public String getStringValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
- return getBooleanValue(parent, annotation, stream) ? "true" : "false";
+ public String getStringValue(MatchContext context, RutaStream stream) {
+ return getBooleanValue(context, stream) ? "true" : "false";
}
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/SimpleBooleanFunction.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/SimpleBooleanFunction.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/SimpleBooleanFunction.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/bool/SimpleBooleanFunction.java Mon Jan 4 10:33:48 2016
@@ -19,9 +19,8 @@
package org.apache.uima.ruta.expression.bool;
-import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.RutaStream;
+import org.apache.uima.ruta.rule.MatchContext;
public class SimpleBooleanFunction extends AbstractBooleanExpression {
@@ -39,9 +38,9 @@ public class SimpleBooleanFunction exten
}
@Override
- public boolean getBooleanValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
- boolean b1 = e1.getBooleanValue(parent, annotation, stream);
- boolean b2 = e2.getBooleanValue(parent, annotation, stream);
+ public boolean getBooleanValue(MatchContext context, RutaStream stream) {
+ boolean b1 = e1.getBooleanValue(context, stream);
+ boolean b2 = e2.getBooleanValue(context, stream);
if ("XOR".equals(op)) {
return (b1 || b2) && !(b1 && b2);
} else if ("==".equals(op)) {
@@ -53,9 +52,8 @@ public class SimpleBooleanFunction exten
}
@Override
- public String getStringValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
- return e1.getStringValue(parent, annotation, stream) + " " + op + " "
- + e2.getStringValue(parent, annotation, stream);
+ public String getStringValue(MatchContext context, RutaStream stream) {
+ return e1.getStringValue(context, stream) + " " + op + " " + e2.getStringValue(context, stream);
}
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/feature/FeatureExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/feature/FeatureExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/feature/FeatureExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/feature/FeatureExpression.java Mon Jan 4 10:33:48 2016
@@ -24,23 +24,23 @@ import java.util.List;
import org.apache.uima.cas.Feature;
import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.RutaStream;
import org.apache.uima.ruta.expression.RutaExpression;
-import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.expression.type.ITypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
public abstract class FeatureExpression extends RutaExpression {
- public abstract Feature getFeature(RutaBlock parent);
+ public abstract Feature getFeature(MatchContext context, RutaStream stream);
- public abstract List<Feature> getFeatures(RutaBlock parent);
+ public abstract List<Feature> getFeatures(MatchContext context, RutaStream stream);
- public abstract List<String> getFeatureStringList(RutaBlock parent);
+ public abstract List<String> getFeatureStringList(MatchContext context, RutaStream stream);
- public abstract TypeExpression getTypeExpr(RutaBlock parent);
+ public abstract ITypeExpression getTypeExpr(MatchContext context, RutaStream stream);
public abstract Collection<AnnotationFS> getFeatureAnnotations(
- Collection<AnnotationFS> annotations, RutaStream stream, RutaBlock parent,
+ Collection<AnnotationFS> annotations, RutaStream stream, MatchContext context,
boolean checkOnFeatureValue);
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/feature/FeatureMatchExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/feature/FeatureMatchExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/feature/FeatureMatchExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/feature/FeatureMatchExpression.java Mon Jan 4 10:33:48 2016
@@ -35,6 +35,7 @@ import org.apache.uima.ruta.expression.R
import org.apache.uima.ruta.expression.bool.IBooleanExpression;
import org.apache.uima.ruta.expression.number.INumberExpression;
import org.apache.uima.ruta.expression.string.IStringExpression;
+import org.apache.uima.ruta.rule.MatchContext;
public class FeatureMatchExpression extends SimpleFeatureExpression {
@@ -46,21 +47,13 @@ public class FeatureMatchExpression exte
private String op;
- public FeatureMatchExpression(FeatureExpression f, String op, IRutaExpression arg,
- RutaBlock parent) {
- super(f.getTypeExpr(parent), f.getFeatureStringList(parent));
+ public FeatureMatchExpression(MatchReference mr, String op, IRutaExpression arg, RutaBlock env) {
+ super(mr);
this.op = op;
this.arg = arg;
}
- public FeatureMatchExpression(MatchReference mr, RutaBlock env) {
- super(mr);
- }
-
public IRutaExpression getArg() {
- if (getMatchReference() != null && arg == null) {
- arg = getMatchReference().getArg();
- }
return arg;
}
@@ -69,9 +62,6 @@ public class FeatureMatchExpression exte
}
public String getOp() {
- if (getMatchReference() != null && op == null) {
- op = getMatchReference().getOp();
- }
return op;
}
@@ -79,20 +69,20 @@ public class FeatureMatchExpression exte
this.op = op;
}
- public boolean checkFeatureValue(AnnotationFS afs, RutaStream stream, RutaBlock parent) {
- Feature feature = getFeature(parent);
- return checkFeatureValue(afs, feature, stream, parent);
+ public boolean checkFeatureValue(AnnotationFS afs, MatchContext context, RutaStream stream) {
+ Feature feature = getFeature(context, stream);
+ return checkFeatureValue(afs, context, feature, stream);
}
- public boolean checkFeatureValue(AnnotationFS afs, Feature feature, RutaStream stream,
- RutaBlock parent) {
+ public boolean checkFeatureValue(AnnotationFS afs, MatchContext context, Feature feature,
+ RutaStream stream) {
// null is possibly coveredText
String rn = feature == null ? UIMAConstants.TYPE_STRING : feature.getRange().getName();
if (rn.equals(UIMAConstants.TYPE_BOOLEAN)) {
Boolean v1 = afs.getBooleanValue(feature);
if (getArg() instanceof IBooleanExpression) {
IBooleanExpression expr = (IBooleanExpression) getArg();
- Boolean v2 = expr.getBooleanValue(parent, afs, stream);
+ Boolean v2 = expr.getBooleanValue(context, stream);
return compare(v1, v2);
}
} else if (rn.equals(UIMAConstants.TYPE_INTEGER) || rn.equals(UIMAConstants.TYPE_BYTE)
@@ -100,21 +90,21 @@ public class FeatureMatchExpression exte
Integer v1 = afs.getIntValue(feature);
if (getArg() instanceof INumberExpression) {
INumberExpression expr = (INumberExpression) getArg();
- Integer v2 = expr.getIntegerValue(parent, afs, stream);
+ Integer v2 = expr.getIntegerValue(context, stream);
return compare(v1, v2);
}
} else if (rn.equals(UIMAConstants.TYPE_DOUBLE)) {
Double v1 = afs.getDoubleValue(feature);
if (getArg() instanceof INumberExpression) {
INumberExpression expr = (INumberExpression) getArg();
- Double v2 = expr.getDoubleValue(parent, afs, stream);
+ Double v2 = expr.getDoubleValue(context, stream);
return compare(v1, v2);
}
} else if (rn.equals(UIMAConstants.TYPE_FLOAT)) {
Float v1 = afs.getFloatValue(feature);
if (getArg() instanceof INumberExpression) {
INumberExpression expr = (INumberExpression) getArg();
- Float v2 = expr.getFloatValue(parent, afs, stream);
+ Float v2 = expr.getFloatValue(context, stream);
return compare(v1, v2);
}
} else if (rn.equals(UIMAConstants.TYPE_STRING)) {
@@ -125,14 +115,14 @@ public class FeatureMatchExpression exte
}
if (getArg() instanceof IStringExpression) {
IStringExpression expr = (IStringExpression) getArg();
- String v2 = expr.getStringValue(parent, afs, stream);
+ String v2 = expr.getStringValue(context, stream);
return compare(v1, v2);
}
} else if (!feature.getRange().isPrimitive() && getArg() instanceof FeatureExpression) {
FeatureExpression fe = (FeatureExpression) getArg();
List<AnnotationFS> list = new ArrayList<AnnotationFS>(1);
list.add(afs);
- Collection<AnnotationFS> featureAnnotations = fe.getFeatureAnnotations(list, stream, parent,
+ Collection<AnnotationFS> featureAnnotations = fe.getFeatureAnnotations(list, stream, context,
false);
return compare(afs.getFeatureValue(feature), featureAnnotations);
}
@@ -188,4 +178,15 @@ public class FeatureMatchExpression exte
return false;
}
+ public String toString() {
+ String result = super.toString();
+ if(op != null) {
+ result += op;
+ }
+ if(arg != null) {
+ result += arg.toString();
+ }
+ return result;
+ }
+
}
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=1722834&r1=1722833&r2=1722834&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 Mon Jan 4 10:33:48 2016
@@ -20,115 +20,88 @@
package org.apache.uima.ruta.expression.feature;
import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.RutaStream;
import org.apache.uima.ruta.expression.ExpressionFactory;
import org.apache.uima.ruta.expression.RutaExpression;
+import org.apache.uima.ruta.expression.annotation.IAnnotationExpression;
import org.apache.uima.ruta.expression.bool.IBooleanExpression;
import org.apache.uima.ruta.expression.number.INumberExpression;
import org.apache.uima.ruta.expression.string.IStringExpression;
-import org.apache.uima.ruta.rule.RuleElement;
-import org.apache.uima.ruta.rule.RuleMatch;
+import org.apache.uima.ruta.rule.MatchContext;
-public class GenericFeatureExpression extends RutaExpression implements INumberExpression, IBooleanExpression, IStringExpression {
+public class GenericFeatureExpression extends RutaExpression implements INumberExpression,
+ IBooleanExpression, IStringExpression, IAnnotationExpression {
private FeatureExpression featureExpression;
private INumberExpression numberExpression;
-
+
private IStringExpression stringExpression;
-
+
private IBooleanExpression booleanExpression;
+ private IAnnotationExpression annotationExpression;
+
public GenericFeatureExpression(FeatureExpression fe) {
super();
this.featureExpression = fe;
}
-
-
- public String getStringValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
- if(stringExpression == null) {
- stringExpression = ExpressionFactory.createStringFeatureExpression(featureExpression);
- }
- return stringExpression.getStringValue(parent, annotation, stream);
- }
- public String getStringValue(RutaBlock parent, RuleMatch match, RuleElement element,
- RutaStream stream) {
- if(stringExpression == null) {
+ @Override
+ public String getStringValue(MatchContext context, RutaStream stream) {
+ if (stringExpression == null) {
stringExpression = ExpressionFactory.createStringFeatureExpression(featureExpression);
}
- return stringExpression.getStringValue(parent, match, element, stream);
- }
-
- public boolean getBooleanValue(RutaBlock parent, RuleMatch match, RuleElement element,
- RutaStream stream) {
- if(booleanExpression == null) {
- booleanExpression = ExpressionFactory.createBooleanFeatureExpression(featureExpression);
- }
- return booleanExpression.getBooleanValue(parent, match, element, stream);
+ return stringExpression.getStringValue(context, stream);
}
- public boolean getBooleanValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
- if(booleanExpression == null) {
+ @Override
+ public boolean getBooleanValue(MatchContext context, RutaStream stream) {
+ if (booleanExpression == null) {
booleanExpression = ExpressionFactory.createBooleanFeatureExpression(featureExpression);
}
- return booleanExpression.getBooleanValue(parent, annotation, stream);
+ return booleanExpression.getBooleanValue(context, stream);
}
- public int getIntegerValue(RutaBlock parent, RuleMatch match, RuleElement element,
- RutaStream stream) {
- if(numberExpression == null) {
+ @Override
+ public int getIntegerValue(MatchContext context, RutaStream stream) {
+ if (numberExpression == null) {
numberExpression = ExpressionFactory.createNumberFeatureExpression(featureExpression);
}
- return numberExpression.getIntegerValue(parent, match, element, stream);
+ return numberExpression.getIntegerValue(context, stream);
}
- public double getDoubleValue(RutaBlock parent, RuleMatch match, RuleElement element,
- RutaStream stream) {
- if(numberExpression == null) {
+ @Override
+ public double getDoubleValue(MatchContext context, RutaStream stream) {
+ if (numberExpression == null) {
numberExpression = ExpressionFactory.createNumberFeatureExpression(featureExpression);
}
- return numberExpression.getDoubleValue(parent, match, element, stream);
+ return numberExpression.getDoubleValue(context, stream);
}
- public float getFloatValue(RutaBlock parent, RuleMatch match, RuleElement element,
- RutaStream stream) {
- if(numberExpression == null) {
+ @Override
+ public float getFloatValue(MatchContext context, RutaStream stream) {
+ if (numberExpression == null) {
numberExpression = ExpressionFactory.createNumberFeatureExpression(featureExpression);
}
- return numberExpression.getFloatValue(parent, match, element, stream);
+ return numberExpression.getFloatValue(context, stream);
}
- public int getIntegerValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
- if(numberExpression == null) {
- numberExpression = ExpressionFactory.createNumberFeatureExpression(featureExpression);
+ @Override
+ public AnnotationFS getAnnotation(MatchContext context, RutaStream stream) {
+ if (annotationExpression == null) {
+ annotationExpression = ExpressionFactory.createAnnotationFeatureExpression(featureExpression);
}
- return numberExpression.getIntegerValue(parent, annotation, stream);
+ return annotationExpression.getAnnotation(context, stream);
}
- public double getDoubleValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
- if(numberExpression == null) {
- numberExpression = ExpressionFactory.createNumberFeatureExpression(featureExpression);
- }
- return numberExpression.getDoubleValue(parent, annotation, stream);
- }
-
- public float getFloatValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
- if(numberExpression == null) {
- numberExpression = ExpressionFactory.createNumberFeatureExpression(featureExpression);
- }
- return numberExpression.getFloatValue(parent, annotation, stream);
- }
-
-
public FeatureExpression getFeatureExpression() {
return featureExpression;
}
-
public void setFeatureExpression(FeatureExpression featureExpression) {
this.featureExpression = featureExpression;
}
+
}
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=1722834&r1=1722833&r2=1722834&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 Mon Jan 4 10:33:48 2016
@@ -29,26 +29,26 @@ import org.apache.uima.cas.Feature;
import org.apache.uima.cas.FeatureStructure;
import org.apache.uima.cas.Type;
import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.RutaStream;
import org.apache.uima.ruta.UIMAConstants;
import org.apache.uima.ruta.expression.IRutaExpression;
import org.apache.uima.ruta.expression.MatchReference;
import org.apache.uima.ruta.expression.NullExpression;
-import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.expression.type.ITypeExpression;
import org.apache.uima.ruta.rule.AnnotationComparator;
+import org.apache.uima.ruta.rule.MatchContext;
public class SimpleFeatureExpression extends FeatureExpression {
private MatchReference mr;
- private TypeExpression typeExpr;
+ private ITypeExpression typeExpr;
private List<String> features;
protected AnnotationComparator comparator = new AnnotationComparator();
- public SimpleFeatureExpression(TypeExpression te, List<String> featureReferences) {
+ public SimpleFeatureExpression(ITypeExpression te, List<String> featureReferences) {
super();
this.typeExpr = te;
this.features = featureReferences;
@@ -60,8 +60,8 @@ public class SimpleFeatureExpression ext
}
@Override
- public Feature getFeature(RutaBlock parent) {
- List<Feature> features = getFeatures(parent);
+ public Feature getFeature(MatchContext context, RutaStream stream) {
+ List<Feature> features = getFeatures(context, stream);
if (features != null && !features.isEmpty()) {
return features.get(features.size() - 1);
} else {
@@ -70,17 +70,17 @@ public class SimpleFeatureExpression ext
}
@Override
- public List<Feature> getFeatures(RutaBlock parent) {
+ public List<Feature> getFeatures(MatchContext context, RutaStream stream) {
if (mr != null) {
- typeExpr = mr.getTypeExpression(parent);
- FeatureExpression featureExpression = mr.getFeatureExpression(parent);
+ typeExpr = mr.getTypeExpression(context, stream);
+ FeatureExpression featureExpression = mr.getFeatureExpression(context, stream);
if (featureExpression == null) {
return null;
}
- features = featureExpression.getFeatureStringList(parent);
+ features = featureExpression.getFeatureStringList(context, stream);
}
List<Feature> result = new ArrayList<Feature>();
- Type type = typeExpr.getType(parent);
+ Type type = typeExpr.getType(context, stream);
Feature feature = null;
for (String each : features) {
if (StringUtils.equals(each, UIMAConstants.FEATURE_COVERED_TEXT)) {
@@ -102,20 +102,20 @@ public class SimpleFeatureExpression ext
return result;
}
- public TypeExpression getTypeExpr(RutaBlock parent) {
+ public ITypeExpression getTypeExpr(MatchContext context, RutaStream stream) {
if (mr != null) {
- return mr.getTypeExpression(parent);
+ return mr.getTypeExpression(context, stream);
}
return typeExpr;
}
- public void setTypeExpr(TypeExpression typeExpr) {
+ public void setTypeExpr(ITypeExpression typeExpr) {
this.typeExpr = typeExpr;
}
- public List<String> getFeatureStringList(RutaBlock parent) {
+ public List<String> getFeatureStringList(MatchContext context, RutaStream stream) {
if (mr != null) {
- features = mr.getFeatureExpression(parent).getFeatureStringList(parent);
+ features = mr.getFeatureExpression(context, stream).getFeatureStringList(context, stream);
}
return features;
}
@@ -125,37 +125,40 @@ public class SimpleFeatureExpression ext
}
public Collection<AnnotationFS> getFeatureAnnotations(Collection<AnnotationFS> annotations,
- RutaStream stream, RutaBlock parent, boolean checkOnFeatureValue) {
+ RutaStream stream, MatchContext context, boolean checkOnFeatureValue) {
Collection<AnnotationFS> result = new TreeSet<AnnotationFS>(comparator);
- List<Feature> features = getFeatures(parent);
+ List<Feature> features = getFeatures(context, stream);
+
for (AnnotationFS eachBase : annotations) {
AnnotationFS afs = eachBase;
- for (Feature feature : features) {
- if (afs == null) {
- break;
- }
- if (feature == null || feature.getRange().isPrimitive()) {
- // feature == null -> this is the coveredText "feature"
- if (this instanceof FeatureMatchExpression) {
- FeatureMatchExpression fme = (FeatureMatchExpression) this;
- if (checkOnFeatureValue) {
- if (fme.checkFeatureValue(afs, feature, stream, parent)) {
+ if (features != null) {
+ for (Feature feature : features) {
+ if (afs == null) {
+ break;
+ }
+ if (feature == null || feature.getRange().isPrimitive()) {
+ // feature == null -> this is the coveredText "feature"
+ if (this instanceof FeatureMatchExpression) {
+ FeatureMatchExpression fme = (FeatureMatchExpression) this;
+ if (checkOnFeatureValue) {
+ if (fme.checkFeatureValue(afs, context, feature, stream)) {
+ result.add(afs);
+ }
+ } else {
result.add(afs);
}
+ break;
} else {
result.add(afs);
}
- break;
} else {
- result.add(afs);
- }
- } else {
- FeatureStructure value = afs.getFeatureValue(feature);
- if (value instanceof AnnotationFS) {
- afs = (AnnotationFS) value;
- } else if (value != null) {
- throw new IllegalArgumentException(value.getType()
- + " is not supported in a feature match expression (" + mr.getMatch() + ").");
+ FeatureStructure value = afs.getFeatureValue(feature);
+ if (value instanceof AnnotationFS) {
+ afs = (AnnotationFS) value;
+ } else if (value != null) {
+ throw new IllegalArgumentException(value.getType()
+ + " is not supported in a feature match expression (" + mr.getMatch() + ").");
+ }
}
}
}
@@ -178,4 +181,8 @@ public class SimpleFeatureExpression ext
return mr;
}
+ public String toString() {
+ return mr.getMatch();
+ }
+
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/ListExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/ListExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/ListExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/ListExpression.java Mon Jan 4 10:33:48 2016
@@ -21,18 +21,17 @@ package org.apache.uima.ruta.expression.
import java.util.List;
-import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.RutaStream;
import org.apache.uima.ruta.expression.string.AbstractStringExpression;
+import org.apache.uima.ruta.rule.MatchContext;
public abstract class ListExpression<T> extends AbstractStringExpression {
- public abstract List<T> getList(RutaBlock parent, RutaStream stream);
+ public abstract List<T> getList(MatchContext context, RutaStream stream);
@Override
- public String getStringValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
- return getList(parent, stream).toString();
+ public String getStringValue(MatchContext context, RutaStream stream) {
+ return getList(context, stream).toString();
}
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/SimpleBooleanListExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/SimpleBooleanListExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/SimpleBooleanListExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/SimpleBooleanListExpression.java Mon Jan 4 10:33:48 2016
@@ -22,9 +22,9 @@ package org.apache.uima.ruta.expression.
import java.util.ArrayList;
import java.util.List;
-import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.RutaStream;
import org.apache.uima.ruta.expression.bool.IBooleanExpression;
+import org.apache.uima.ruta.rule.MatchContext;
public class SimpleBooleanListExpression extends BooleanListExpression {
@@ -36,11 +36,11 @@ public class SimpleBooleanListExpression
}
@Override
- public List<Boolean> getList(RutaBlock parent, RutaStream stream) {
+ public List<Boolean> getList(MatchContext context, RutaStream stream) {
List<Boolean> result = new ArrayList<Boolean>();
for (IBooleanExpression each : list) {
- // TODO support arrays
- result.add(each.getBooleanValue(parent, null, stream));
+ // TODO support arrays
+ result.add(each.getBooleanValue(context, stream));
}
return result;
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/SimpleNumberListExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/SimpleNumberListExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/SimpleNumberListExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/SimpleNumberListExpression.java Mon Jan 4 10:33:48 2016
@@ -22,9 +22,9 @@ package org.apache.uima.ruta.expression.
import java.util.ArrayList;
import java.util.List;
-import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.RutaStream;
import org.apache.uima.ruta.expression.number.INumberExpression;
+import org.apache.uima.ruta.rule.MatchContext;
public class SimpleNumberListExpression extends NumberListExpression {
@@ -36,11 +36,11 @@ public class SimpleNumberListExpression
}
@Override
- public List<Number> getList(RutaBlock parent, RutaStream stream) {
+ public List<Number> getList(MatchContext context, RutaStream stream) {
List<Number> result = new ArrayList<Number>();
for (INumberExpression each : list) {
- // TODO support arrays
- result.add(each.getDoubleValue(parent, null, stream));
+ // TODO support arrays
+ result.add(each.getDoubleValue(context, stream));
}
return result;
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/SimpleStringListExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/SimpleStringListExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/SimpleStringListExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/SimpleStringListExpression.java Mon Jan 4 10:33:48 2016
@@ -22,9 +22,9 @@ package org.apache.uima.ruta.expression.
import java.util.ArrayList;
import java.util.List;
-import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.RutaStream;
import org.apache.uima.ruta.expression.string.IStringExpression;
+import org.apache.uima.ruta.rule.MatchContext;
public class SimpleStringListExpression extends StringListExpression {
@@ -36,11 +36,11 @@ public class SimpleStringListExpression
}
@Override
- public List<String> getList(RutaBlock parent, RutaStream stream) {
+ public List<String> getList(MatchContext context, RutaStream stream) {
List<String> result = new ArrayList<String>();
for (IStringExpression each : list) {
- // TODO support arrays
- result.add(each.getStringValue(parent, null, stream));
+ // TODO support arrays
+ result.add(each.getStringValue(context, stream));
}
return result;
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/SimpleTypeListExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/SimpleTypeListExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/SimpleTypeListExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/SimpleTypeListExpression.java Mon Jan 4 10:33:48 2016
@@ -23,29 +23,29 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.uima.cas.Type;
-import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.RutaStream;
-import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.expression.type.ITypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
public class SimpleTypeListExpression extends TypeListExpression {
- private List<TypeExpression> list;
+ private List<ITypeExpression> list;
- public SimpleTypeListExpression(List<TypeExpression> list) {
+ public SimpleTypeListExpression(List<ITypeExpression> list) {
super();
this.list = list;
}
@Override
- public List<Type> getList(RutaBlock parent, RutaStream stream) {
+ public List<Type> getList(MatchContext context, RutaStream stream) {
List<Type> result = new ArrayList<Type>();
- for (TypeExpression each : list) {
- result.add(each.getType(parent));
+ for (ITypeExpression each : list) {
+ result.add(each.getType(context, stream));
}
return result;
}
- public List<TypeExpression> getList() {
+ public List<ITypeExpression> getList() {
return list;
}
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/UntypedListExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/UntypedListExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/UntypedListExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/list/UntypedListExpression.java Mon Jan 4 10:33:48 2016
@@ -22,13 +22,13 @@ package org.apache.uima.ruta.expression.
import java.util.ArrayList;
import java.util.List;
-import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.RutaStream;
import org.apache.uima.ruta.expression.IRutaExpression;
-import org.apache.uima.ruta.expression.bool.AbstractBooleanExpression;
-import org.apache.uima.ruta.expression.number.AbstractNumberExpression;
-import org.apache.uima.ruta.expression.string.AbstractStringExpression;
-import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.expression.bool.IBooleanExpression;
+import org.apache.uima.ruta.expression.number.INumberExpression;
+import org.apache.uima.ruta.expression.string.IStringExpression;
+import org.apache.uima.ruta.expression.type.ITypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
public class UntypedListExpression extends ListExpression<Object> {
@@ -40,20 +40,20 @@ public class UntypedListExpression exten
}
@Override
- public List<Object> getList(RutaBlock parent, RutaStream stream) {
+ public List<Object> getList(MatchContext context, RutaStream stream) {
List<Object> result = new ArrayList<Object>();
for (IRutaExpression each : list) {
- // TODO support arrays
- if (each instanceof AbstractBooleanExpression) {
- result.add(((AbstractBooleanExpression) each).getBooleanValue(parent, null, stream));
- } else if (each instanceof AbstractNumberExpression) {
- result.add(((AbstractNumberExpression) each).getDoubleValue(parent, null, stream));
- } else if (each instanceof TypeExpression) {
- result.add(((TypeExpression) each).getType(parent));
+ // TODO support arrays
+ if (each instanceof IBooleanExpression) {
+ result.add(((IBooleanExpression) each).getBooleanValue(context, stream));
+ } else if (each instanceof INumberExpression) {
+ result.add(((INumberExpression) each).getDoubleValue(context, stream));
+ } else if (each instanceof ITypeExpression) {
+ result.add(((ITypeExpression) each).getType(context, stream));
} else if (each instanceof ListExpression) {
- result.add(((ListExpression<?>) each).getList(parent, stream));
- } else if (each instanceof AbstractStringExpression) {
- result.add(((AbstractStringExpression) each).getStringValue(parent, null, stream));
+ result.add(((ListExpression<?>) each).getList(context, stream));
+ } else if (each instanceof IStringExpression) {
+ result.add(((IStringExpression) each).getStringValue(context, stream));
}
}
return result;
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/AbstractNumberExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/AbstractNumberExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/AbstractNumberExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/AbstractNumberExpression.java Mon Jan 4 10:33:48 2016
@@ -19,50 +19,11 @@
package org.apache.uima.ruta.expression.number;
-import java.util.List;
-
-import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
-import org.apache.uima.ruta.RutaStream;
import org.apache.uima.ruta.expression.string.AbstractStringExpression;
-import org.apache.uima.ruta.rule.RuleElement;
-import org.apache.uima.ruta.rule.RuleMatch;
-
-public abstract class AbstractNumberExpression extends AbstractStringExpression implements INumberExpression {
-
- public int getIntegerValue(RutaBlock parent, RuleMatch match, RuleElement element,
- RutaStream stream) {
- List<AnnotationFS> matchedAnnotationsOf = match.getMatchedAnnotationsOfElement(element);
- // TODO: do we need to select the correct annotation?
- AnnotationFS annotation = null;
- if (!matchedAnnotationsOf.isEmpty()) {
- annotation = matchedAnnotationsOf.get(0);
- }
- return getIntegerValue(parent, annotation, stream);
- }
- public double getDoubleValue(RutaBlock parent, RuleMatch match, RuleElement element,
- RutaStream stream) {
- List<AnnotationFS> matchedAnnotationsOf = match.getMatchedAnnotationsOfElement(element);
- // TODO: do we need to select the correct annotation?
- AnnotationFS annotation = null;
- if (!matchedAnnotationsOf.isEmpty()) {
- annotation = matchedAnnotationsOf.get(0);
- }
- return getDoubleValue(parent, annotation, stream);
- }
+public abstract class AbstractNumberExpression extends AbstractStringExpression implements
+ INumberExpression {
- public float getFloatValue(RutaBlock parent, RuleMatch match, RuleElement element,
- RutaStream stream) {
- List<AnnotationFS> matchedAnnotationsOf = match.getMatchedAnnotationsOfElement(element);
- // TODO: do we need to select the correct annotation?
- AnnotationFS annotation = null;
- if (!matchedAnnotationsOf.isEmpty()) {
- annotation = matchedAnnotationsOf.get(0);
- }
- return getFloatValue(parent, annotation, stream);
- }
-
protected double calculate(double t1, double t2, String op) {
if ("+".equals(op)) {
return t1 + t2;
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/ComposedNumberExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/ComposedNumberExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/ComposedNumberExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/ComposedNumberExpression.java Mon Jan 4 10:33:48 2016
@@ -21,9 +21,8 @@ package org.apache.uima.ruta.expression.
import java.util.List;
-import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.RutaStream;
+import org.apache.uima.ruta.rule.MatchContext;
public class ComposedNumberExpression extends AbstractNumberExpression {
@@ -37,44 +36,44 @@ public class ComposedNumberExpression ex
this.ops = ops;
}
- public double getDoubleValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
+ public double getDoubleValue(MatchContext context, RutaStream stream) {
INumberExpression numberExpression = getExpressions().get(0);
if (numberExpression == null) {
return 0;
}
- double result = numberExpression.getDoubleValue(parent, annotation, stream);
+ double result = numberExpression.getDoubleValue(context, stream);
for (int i = 0; i < getOperators().size(); i++) {
double second = 0;
if (getExpressions().size() > i + 1) {
- second = getExpressions().get(i + 1).getDoubleValue(parent, annotation, stream);
+ second = getExpressions().get(i + 1).getDoubleValue(context, stream);
}
result = calculate(result, second, getOperators().get(i));
}
return result;
}
- public float getFloatValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
+ public float getFloatValue(MatchContext context, RutaStream stream) {
INumberExpression numberExpression = getExpressions().get(0);
if (numberExpression == null) {
return 0;
}
- float result = numberExpression.getFloatValue(parent, annotation, stream);
+ float result = numberExpression.getFloatValue(context, stream);
for (int i = 0; i < getOperators().size(); i++) {
float second = 0;
if (getExpressions().size() > i + 1) {
- second = getExpressions().get(i + 1).getFloatValue(parent, annotation, stream);
+ second = getExpressions().get(i + 1).getFloatValue(context, stream);
}
result = calculate(result, second, getOperators().get(i));
}
return result;
}
- public int getIntegerValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
- int result = getExpressions().get(0).getIntegerValue(parent, annotation, stream);
+ public int getIntegerValue(MatchContext context, RutaStream stream) {
+ int result = getExpressions().get(0).getIntegerValue(context, stream);
for (int i = 0; i < getOperators().size(); i++) {
int second = 0;
if (getExpressions().size() > i + 1) {
- second = getExpressions().get(i + 1).getIntegerValue(parent, annotation, stream);
+ second = getExpressions().get(i + 1).getIntegerValue(context, stream);
}
result = calculate(result, second, getOperators().get(i));
}
@@ -82,8 +81,8 @@ public class ComposedNumberExpression ex
}
@Override
- public String getStringValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
- return "" + getDoubleValue(parent, annotation, stream);
+ public String getStringValue(MatchContext context, RutaStream stream) {
+ return "" + getDoubleValue(context, stream);
}
public List<INumberExpression> getExpressions() {
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/INumberExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/INumberExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/INumberExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/INumberExpression.java Mon Jan 4 10:33:48 2016
@@ -19,25 +19,16 @@
package org.apache.uima.ruta.expression.number;
-import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.RutaStream;
import org.apache.uima.ruta.expression.string.IStringExpression;
-import org.apache.uima.ruta.rule.RuleElement;
-import org.apache.uima.ruta.rule.RuleMatch;
+import org.apache.uima.ruta.rule.MatchContext;
public interface INumberExpression extends IStringExpression {
- int getIntegerValue(RutaBlock parent, RuleMatch match, RuleElement element, RutaStream stream);
+ int getIntegerValue(MatchContext context, RutaStream stream);
- double getDoubleValue(RutaBlock parent, RuleMatch match, RuleElement element, RutaStream stream);
+ double getDoubleValue(MatchContext context, RutaStream stream);
- float getFloatValue(RutaBlock parent, RuleMatch match, RuleElement element, RutaStream stream);
-
- int getIntegerValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream);
-
- double getDoubleValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream);
-
- float getFloatValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream);
+ float getFloatValue(MatchContext context, RutaStream stream);
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/NegativeNumberExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/NegativeNumberExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/NegativeNumberExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/NegativeNumberExpression.java Mon Jan 4 10:33:48 2016
@@ -19,9 +19,8 @@
package org.apache.uima.ruta.expression.number;
-import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.RutaStream;
+import org.apache.uima.ruta.rule.MatchContext;
public class NegativeNumberExpression extends AbstractNumberExpression {
@@ -32,20 +31,20 @@ public class NegativeNumberExpression ex
this.ne = simpleNumberExpression;
}
- public double getDoubleValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
- return -ne.getDoubleValue(parent, annotation, stream);
+ public double getDoubleValue(MatchContext context, RutaStream stream) {
+ return -ne.getDoubleValue(context, stream);
}
- public float getFloatValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
- return -ne.getFloatValue(parent, annotation, stream);
+ public float getFloatValue(MatchContext context, RutaStream stream) {
+ return -ne.getFloatValue(context, stream);
}
- public int getIntegerValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
- return -ne.getIntegerValue(parent, annotation, stream);
+ public int getIntegerValue(MatchContext context, RutaStream stream) {
+ return -ne.getIntegerValue(context, stream);
}
- public String getStringValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
- return "-" + ne.getStringValue(parent, annotation, stream);
+ public String getStringValue(MatchContext context, RutaStream stream) {
+ return "-" + ne.getStringValue(context, stream);
}
public INumberExpression getExpression() {
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/NumberFeatureExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/NumberFeatureExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/NumberFeatureExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/NumberFeatureExpression.java Mon Jan 4 10:33:48 2016
@@ -25,10 +25,10 @@ import java.util.List;
import org.apache.uima.cas.Feature;
import org.apache.uima.cas.Type;
import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.RutaStream;
import org.apache.uima.ruta.UIMAConstants;
import org.apache.uima.ruta.expression.feature.FeatureExpression;
+import org.apache.uima.ruta.rule.MatchContext;
public class NumberFeatureExpression extends AbstractNumberExpression {
@@ -39,28 +39,29 @@ public class NumberFeatureExpression ext
this.fe = fe;
}
- public int getIntegerValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
- Number v = getNumberValue(parent, annotation, stream);
+ public int getIntegerValue(MatchContext context, RutaStream stream) {
+ Number v = getNumberValue(context, stream);
return v == null ? 0 : v.intValue();
}
- public double getDoubleValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
- Number v = getNumberValue(parent, annotation, stream);
+ public double getDoubleValue(MatchContext context, RutaStream stream) {
+ Number v = getNumberValue(context, stream);
return v == null ? 0 : v.doubleValue();
}
- public float getFloatValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
- Number v = getNumberValue(parent, annotation, stream);
+ public float getFloatValue(MatchContext context, RutaStream stream) {
+ Number v = getNumberValue(context, stream);
return v == null ? 0 : v.floatValue();
}
- private Number getNumberValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
+ private Number getNumberValue(MatchContext context, RutaStream stream) {
+ AnnotationFS annotation = context.getAnnotation();
Number result = null;
- Type type = fe.getTypeExpr(parent).getType(parent);
- Feature feature = fe.getFeature(parent);
+ Type type = fe.getTypeExpr(context, stream).getType(context, stream);
+ Feature feature = fe.getFeature(context, stream);
Type range = feature.getRange();
List<AnnotationFS> list = getTargetAnnotation(annotation, type, stream);
- Collection<AnnotationFS> featureAnnotations = fe.getFeatureAnnotations(list, stream, parent,
+ Collection<AnnotationFS> featureAnnotations = fe.getFeatureAnnotations(list, stream, context,
false);
if (!featureAnnotations.isEmpty()) {
AnnotationFS next = featureAnnotations.iterator().next();
@@ -82,8 +83,8 @@ public class NumberFeatureExpression ext
}
@Override
- public String getStringValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
- return "" + getNumberValue(parent, annotation, stream);
+ public String getStringValue(MatchContext context, RutaStream stream) {
+ return "" + getNumberValue(context, stream);
}
public FeatureExpression getFe() {
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/SimpleNumberExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/SimpleNumberExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/SimpleNumberExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/number/SimpleNumberExpression.java Mon Jan 4 10:33:48 2016
@@ -19,9 +19,8 @@
package org.apache.uima.ruta.expression.number;
-import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.RutaStream;
+import org.apache.uima.ruta.rule.MatchContext;
public class SimpleNumberExpression extends AbstractNumberExpression {
@@ -32,15 +31,15 @@ public class SimpleNumberExpression exte
this.number = number;
}
- public double getDoubleValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
+ public double getDoubleValue(MatchContext context, RutaStream stream) {
return number.doubleValue();
}
- public float getFloatValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
+ public float getFloatValue(MatchContext context, RutaStream stream) {
return number.floatValue();
}
- public int getIntegerValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
+ public int getIntegerValue(MatchContext context, RutaStream stream) {
return number.intValue();
}
@@ -48,12 +47,12 @@ public class SimpleNumberExpression exte
return number;
}
- public String getStringValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
+ public String getStringValue(MatchContext context, RutaStream stream) {
boolean floating = number.intValue() != number.doubleValue();
if (floating) {
- return "" + getDoubleValue(parent, annotation, stream);
+ return "" + getDoubleValue(context, stream);
} else {
- return "" + getIntegerValue(parent, annotation, stream);
+ return "" + getIntegerValue(context, stream);
}
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/ExternalWordListExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/ExternalWordListExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/ExternalWordListExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/ExternalWordListExpression.java Mon Jan 4 10:33:48 2016
@@ -22,9 +22,9 @@ package org.apache.uima.ruta.expression.
import java.util.ArrayList;
import java.util.List;
-import org.apache.uima.ruta.RutaStatement;
import org.apache.uima.ruta.expression.string.IStringExpression;
import org.apache.uima.ruta.resource.RutaWordList;
+import org.apache.uima.ruta.rule.MatchContext;
public class ExternalWordListExpression extends WordListExpression {
@@ -39,13 +39,12 @@ public class ExternalWordListExpression
}
@Override
- public RutaWordList getList(RutaStatement element) {
+ public RutaWordList getList(MatchContext context) {
List<String> argList = new ArrayList<String>();
for (IStringExpression each : args) {
- argList.add(each.getStringValue(element.getParent(), null, null));
+ argList.add(each.getStringValue(context, null));
}
-
-
+
return null;
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/ExternalWordTableExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/ExternalWordTableExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/ExternalWordTableExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/ExternalWordTableExpression.java Mon Jan 4 10:33:48 2016
@@ -22,9 +22,9 @@ package org.apache.uima.ruta.expression.
import java.util.ArrayList;
import java.util.List;
-import org.apache.uima.ruta.RutaStatement;
import org.apache.uima.ruta.expression.string.IStringExpression;
import org.apache.uima.ruta.resource.RutaTable;
+import org.apache.uima.ruta.rule.MatchContext;
public class ExternalWordTableExpression extends WordTableExpression {
@@ -39,12 +39,12 @@ public class ExternalWordTableExpression
}
@Override
- public RutaTable getTable(RutaStatement element) {
+ public RutaTable getTable(MatchContext context) {
List<String> argList = new ArrayList<String>();
for (IStringExpression each : args) {
- argList.add(each.getStringValue(element.getParent(), null, null));
+ argList.add(each.getStringValue(context, null));
}
-
+
return null;
}
@@ -56,5 +56,4 @@ public class ExternalWordTableExpression
return className;
}
-
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/LiteralWordListExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/LiteralWordListExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/LiteralWordListExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/LiteralWordListExpression.java Mon Jan 4 10:33:48 2016
@@ -19,8 +19,9 @@
package org.apache.uima.ruta.expression.resource;
-import org.apache.uima.ruta.RutaStatement;
+import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.resource.RutaWordList;
+import org.apache.uima.ruta.rule.MatchContext;
public class LiteralWordListExpression extends WordListExpression {
@@ -40,8 +41,9 @@ public class LiteralWordListExpression e
}
@Override
- public RutaWordList getList(RutaStatement element) {
- RutaWordList list = element.getEnvironment().getWordList(getText());
+ public RutaWordList getList(MatchContext context) {
+ RutaBlock parent = context.getParent();
+ RutaWordList list = parent.getEnvironment().getWordList(getText());
return list;
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/LiteralWordTableExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/LiteralWordTableExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/LiteralWordTableExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/LiteralWordTableExpression.java Mon Jan 4 10:33:48 2016
@@ -19,8 +19,9 @@
package org.apache.uima.ruta.expression.resource;
-import org.apache.uima.ruta.RutaStatement;
+import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.resource.RutaTable;
+import org.apache.uima.ruta.rule.MatchContext;
public class LiteralWordTableExpression extends WordTableExpression {
@@ -40,8 +41,9 @@ public class LiteralWordTableExpression
}
@Override
- public RutaTable getTable(RutaStatement element) {
- RutaTable table = element.getEnvironment().getWordTable(getText());
+ public RutaTable getTable(MatchContext context) {
+ RutaBlock parent = context.getParent();
+ RutaTable table = parent.getEnvironment().getWordTable(getText());
return table;
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/ReferenceWordListExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/ReferenceWordListExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/ReferenceWordListExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/ReferenceWordListExpression.java Mon Jan 4 10:33:48 2016
@@ -19,8 +19,9 @@
package org.apache.uima.ruta.expression.resource;
-import org.apache.uima.ruta.RutaStatement;
+import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.resource.RutaWordList;
+import org.apache.uima.ruta.rule.MatchContext;
public class ReferenceWordListExpression extends WordListExpression {
@@ -32,8 +33,9 @@ public class ReferenceWordListExpression
}
@Override
- public RutaWordList getList(RutaStatement element) {
- return element.getEnvironment().getVariableValue(ref, RutaWordList.class);
+ public RutaWordList getList(MatchContext context) {
+ RutaBlock parent = context.getParent();
+ return parent.getEnvironment().getVariableValue(ref, RutaWordList.class);
}
public String getRef() {
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/ReferenceWordTableExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/ReferenceWordTableExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/ReferenceWordTableExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/ReferenceWordTableExpression.java Mon Jan 4 10:33:48 2016
@@ -19,8 +19,9 @@
package org.apache.uima.ruta.expression.resource;
-import org.apache.uima.ruta.RutaStatement;
+import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.resource.RutaTable;
+import org.apache.uima.ruta.rule.MatchContext;
public class ReferenceWordTableExpression extends WordTableExpression {
@@ -32,8 +33,9 @@ public class ReferenceWordTableExpressio
}
@Override
- public RutaTable getTable(RutaStatement element) {
- return element.getEnvironment().getVariableValue(ref, RutaTable.class);
+ public RutaTable getTable(MatchContext context) {
+ RutaBlock parent = context.getParent();
+ return parent.getEnvironment().getVariableValue(ref, RutaTable.class);
}
public String getRef() {
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/WordListExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/WordListExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/WordListExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/WordListExpression.java Mon Jan 4 10:33:48 2016
@@ -19,12 +19,12 @@
package org.apache.uima.ruta.expression.resource;
-import org.apache.uima.ruta.RutaStatement;
import org.apache.uima.ruta.expression.RutaExpression;
import org.apache.uima.ruta.resource.RutaWordList;
+import org.apache.uima.ruta.rule.MatchContext;
public abstract class WordListExpression extends RutaExpression {
- public abstract RutaWordList getList(RutaStatement element);
+ public abstract RutaWordList getList(MatchContext context);
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/WordTableExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/WordTableExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/WordTableExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/resource/WordTableExpression.java Mon Jan 4 10:33:48 2016
@@ -19,12 +19,12 @@
package org.apache.uima.ruta.expression.resource;
-import org.apache.uima.ruta.RutaStatement;
import org.apache.uima.ruta.expression.RutaExpression;
import org.apache.uima.ruta.resource.RutaTable;
+import org.apache.uima.ruta.rule.MatchContext;
public abstract class WordTableExpression extends RutaExpression {
- public abstract RutaTable getTable(RutaStatement element);
+ public abstract RutaTable getTable(MatchContext context);
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/AbstractStringExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/AbstractStringExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/AbstractStringExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/AbstractStringExpression.java Mon Jan 4 10:33:48 2016
@@ -19,28 +19,8 @@
package org.apache.uima.ruta.expression.string;
-import java.util.List;
-
-import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
-import org.apache.uima.ruta.RutaStream;
import org.apache.uima.ruta.expression.RutaExpression;
-import org.apache.uima.ruta.rule.RuleElement;
-import org.apache.uima.ruta.rule.RuleMatch;
public abstract class AbstractStringExpression extends RutaExpression implements IStringExpression {
- public String getStringValue(RutaBlock parent, RuleMatch match, RuleElement element,
- RutaStream stream) {
- List<AnnotationFS> matchedAnnotationsOf = match.getMatchedAnnotationsOfElement(element);
- // TODO: do we need to select the correct annotation?
- AnnotationFS annotation = null;
- if (!matchedAnnotationsOf.isEmpty()) {
- annotation = matchedAnnotationsOf.get(0);
- }
- return getStringValue(parent, annotation, stream);
- }
-
- public abstract String getStringValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream);
-
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/ComposedStringExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/ComposedStringExpression.java?rev=1722834&r1=1722833&r2=1722834&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/ComposedStringExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/string/ComposedStringExpression.java Mon Jan 4 10:33:48 2016
@@ -21,9 +21,8 @@ package org.apache.uima.ruta.expression.
import java.util.List;
-import org.apache.uima.cas.text.AnnotationFS;
-import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.RutaStream;
+import org.apache.uima.ruta.rule.MatchContext;
public class ComposedStringExpression extends LiteralStringExpression {
@@ -35,10 +34,10 @@ public class ComposedStringExpression ex
}
@Override
- public String getStringValue(RutaBlock parent, AnnotationFS annotation, RutaStream stream) {
+ public String getStringValue(MatchContext context, RutaStream stream) {
StringBuilder result = new StringBuilder();
for (IStringExpression each : getExpressions()) {
- result.append(each.getStringValue(parent, annotation, stream));
+ result.append(each.getStringValue(context, stream));
}
return result.toString();
}