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 2017/07/06 14:30:00 UTC

svn commit: r1801062 - in /uima/ruta/trunk/ruta-core/src: main/antlr3/org/apache/uima/ruta/parser/RutaParser.g main/java/org/apache/uima/ruta/expression/ExpressionFactory.java test/java/org/apache/uima/ruta/condition/ImplicitCondition2Test.java

Author: pkluegl
Date: Thu Jul  6 14:30:00 2017
New Revision: 1801062

URL: http://svn.apache.org/viewvc?rev=1801062&view=rev
Log:
UIMA-5436
- allow comparison, won't work with variables

Modified:
    uima/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/ExpressionFactory.java
    uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/condition/ImplicitCondition2Test.java

Modified: uima/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g?rev=1801062&r1=1801061&r2=1801062&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g (original)
+++ uima/ruta/trunk/ruta-core/src/main/antlr3/org/apache/uima/ruta/parser/RutaParser.g Thu Jul  6 14:30:00 2017
@@ -2440,7 +2440,7 @@ externalAnnotationFunction returns [IAnn
 	}
 	;
 
-nullExpression returns [IRutaExpression expr = null]
+nullExpression returns [IStringExpression expr = null]
 	:
 	NULL {expr = expressionFactory.createNullExpression();}
 	;
@@ -2790,7 +2790,10 @@ booleanStringExpression  returns  [IBool
 	:
 	e1 = stringExpression
 	op = (EQUAL | NOTEQUAL)
+	(
 	e2 = stringExpression
+	| e2 = nullExpression
+	)
 	{expr = expressionFactory.createBooleanStringExpression(e1,op,e2);}
 	;
 

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/ExpressionFactory.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/ExpressionFactory.java?rev=1801062&r1=1801061&r2=1801062&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/ExpressionFactory.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/expression/ExpressionFactory.java Thu Jul  6 14:30:00 2017
@@ -366,7 +366,7 @@ public class ExpressionFactory {
     return new ExternalWordTableExpression(name.getText(), args);
   }
 
-  public IRutaExpression createNullExpression() {
+  public IStringExpression createNullExpression() {
     return new NullExpression();
   }
 

Modified: uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/condition/ImplicitCondition2Test.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/condition/ImplicitCondition2Test.java?rev=1801062&r1=1801061&r2=1801062&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/condition/ImplicitCondition2Test.java (original)
+++ uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/condition/ImplicitCondition2Test.java Thu Jul  6 14:30:00 2017
@@ -63,12 +63,28 @@ public class ImplicitCondition2Test {
   
   @Test
   public void testStringCompare() throws ResourceInitializationException, InvalidXMLException, IOException, AnalysisEngineProcessException, CASException {
-    CAS cas = RutaTestUtils.getCAS("a b. a b.");
+    String document = "a b. a b.";
+    CAS cas = RutaTestUtils.getCAS(document);
     Assert.assertTrue(Ruta.matches(cas.getJCas(), "(w:W # W{W.ct==w.ct}){->T1};"));
     Assert.assertTrue(Ruta.matches(cas.getJCas(), "STRING s1 = \"a\"; (w:W W{s1==w.ct}){->T2};"));
     RutaTestUtils.assertAnnotationsEquals(cas, 1, 2, "a b. a", "b. a b");
     RutaTestUtils.assertAnnotationsEquals(cas, 2, 2, "a b", "a b");
   }
   
+  @Test
+  public void testStringCompareNull() throws ResourceInitializationException, InvalidXMLException, IOException, AnalysisEngineProcessException, CASException {
+    String document = "a b. a b.";
+    CAS cas = RutaTestUtils.getCAS(document);
+    
+    String rules = "STRING s2;\n";
+    rules += "Document{s2 == \"\" -> T10};\n";
+    rules += "Document{s2 == null -> T11};\n";
+    Assert.assertTrue(Ruta.matches(cas.getJCas(), rules));
+    
+    RutaTestUtils.assertAnnotationsEquals(cas, 10, 1, document);
+    RutaTestUtils.assertAnnotationsEquals(cas, 11, 0);
+    
+  }
+  
   
 }