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)};