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 2014/02/24 13:59:41 UTC
svn commit: r1571270 - in /uima/ruta/trunk/ruta-core/src:
main/java/org/apache/uima/ruta/ main/java/org/apache/uima/ruta/expression/
main/java/org/apache/uima/ruta/expression/type/
test/resources/org/apache/uima/ruta/condition/
Author: pkluegl
Date: Mon Feb 24 12:59:41 2014
New Revision: 1571270
URL: http://svn.apache.org/r1571270
Log:
UIMA-3377
- throw IllegalArgumentException if type is not resolved
- fixed TotalCountTest
Modified:
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaEnvironment.java
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/MatchReference.java
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/type/ReferenceTypeExpression.java
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/type/SimpleTypeExpression.java
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/type/TypeExpression.java
uima/ruta/trunk/ruta-core/src/test/resources/org/apache/uima/ruta/condition/TotalCountTest.ruta
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaEnvironment.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaEnvironment.java?rev=1571270&r1=1571269&r2=1571270&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaEnvironment.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/RutaEnvironment.java Mon Feb 24 12:59:41 2014
@@ -376,7 +376,6 @@ public class RutaEnvironment {
type = parent.getEnvironment().getType(match);
}
}
-
return type;
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/MatchReference.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/MatchReference.java?rev=1571270&r1=1571269&r2=1571270&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/MatchReference.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/MatchReference.java Mon Feb 24 12:59:41 2014
@@ -22,6 +22,7 @@ package org.apache.uima.ruta.expression;
import java.util.Arrays;
import java.util.List;
+import org.apache.uima.ruta.RutaBlock;
import org.apache.uima.ruta.RutaEnvironment;
import org.apache.uima.ruta.RutaStatement;
import org.apache.uima.ruta.RutaStream;
@@ -56,7 +57,7 @@ public class MatchReference extends Ruta
this.typeExpression = expression;
}
- private void resolve(RutaStatement parent, RutaStream stream) {
+ private void resolve(RutaBlock parent, RutaStream stream) {
if (typeExpression != null) {
return;
}
@@ -89,6 +90,9 @@ public class MatchReference extends Ruta
}
}
}
+ if(typeExpression == null || typeExpression.getType(parent) == null) {
+ throw new IllegalArgumentException("Not able to resolve type of expression: "+ match);
+ }
}
private TypeExpression buildTypeExpression(String candidate, RutaEnvironment e) {
@@ -100,12 +104,12 @@ public class MatchReference extends Ruta
return null;
}
- public TypeExpression getTypeExpression(RutaStatement parent, RutaStream stream) {
+ public TypeExpression getTypeExpression(RutaBlock parent, RutaStream stream) {
resolve(parent, stream);
return typeExpression;
}
- public FeatureExpression getFeatureExpression(RutaStatement parent, RutaStream stream) {
+ public FeatureExpression getFeatureExpression(RutaBlock parent, RutaStream stream) {
resolve(parent, stream);
return featureExpression;
}
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/type/ReferenceTypeExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/type/ReferenceTypeExpression.java?rev=1571270&r1=1571269&r2=1571270&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/type/ReferenceTypeExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/type/ReferenceTypeExpression.java Mon Feb 24 12:59:41 2014
@@ -42,9 +42,20 @@ public class ReferenceTypeExpression ext
return var;
}
+ /**
+ * Returns the actual type of the TypeExpression
+ *
+ * @param parent - the block of the element
+ * @return annotation type
+ * @throws IllegalArgumentException if the type cannot be resolved.
+ */
@Override
public Type getType(RutaBlock parent) {
- return parent.getEnvironment().getVariableValue(var, Type.class);
+ Type type = parent.getEnvironment().getVariableValue(var, Type.class);
+ if(type == null) {
+ throw new IllegalArgumentException("Not able to resolve type variable: " + var);
+ }
+ return type;
}
@Override
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/type/SimpleTypeExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/type/SimpleTypeExpression.java?rev=1571270&r1=1571269&r2=1571270&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/type/SimpleTypeExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/type/SimpleTypeExpression.java Mon Feb 24 12:59:41 2014
@@ -33,9 +33,20 @@ public class SimpleTypeExpression extend
this.typeString = typeString;
}
+ /**
+ * Returns the actual type of the TypeExpression
+ *
+ * @param parent - the block of the element
+ * @return annotation type
+ * @throws IllegalArgumentException if the type cannot be resolved.
+ */
@Override
public Type getType(RutaBlock parent) {
- return parent.getEnvironment().getType(typeString);
+ Type type = parent.getEnvironment().getType(typeString);
+ if(type == null) {
+ throw new IllegalArgumentException("Not able to resolve type: " + typeString);
+ }
+ return type;
}
@Override
Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/type/TypeExpression.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/type/TypeExpression.java?rev=1571270&r1=1571269&r2=1571270&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/type/TypeExpression.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/type/TypeExpression.java Mon Feb 24 12:59:41 2014
@@ -25,6 +25,13 @@ import org.apache.uima.ruta.expression.s
public abstract class TypeExpression extends AbstractStringExpression {
+ /**
+ * Returns the actual type of the TypeExpression
+ *
+ * @param parent - the block of the element
+ * @return annotation type
+ * @throws IllegalArgumentException if the type cannot be resolved.
+ */
public abstract Type getType(RutaBlock parent);
}
Modified: uima/ruta/trunk/ruta-core/src/test/resources/org/apache/uima/ruta/condition/TotalCountTest.ruta
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/resources/org/apache/uima/ruta/condition/TotalCountTest.ruta?rev=1571270&r1=1571269&r2=1571270&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/test/resources/org/apache/uima/ruta/condition/TotalCountTest.ruta (original)
+++ uima/ruta/trunk/ruta-core/src/test/resources/org/apache/uima/ruta/condition/TotalCountTest.ruta Mon Feb 24 12:59:41 2014
@@ -5,7 +5,6 @@ INT int1 = 0;
DECLARE T1, T2, T3, T4;
Document{-> RETAINTYPE(SPACE)};
-Document{-> RETAINTYPE(NEWLINE)};
Document{TOTALCOUNT(CW) -> MARK(T1)};
Document{TOTALCOUNT(SPACE,1,5) -> MARK(T2)};