Author: pkluegl
Date: Sat May 31 14:59:32 2014
New Revision: 1598879

URL: http://svn.apache.org/r1598879
Log:
UIMA-3841
- fixed Quantifier7Test (was actually wrong!)
- fixed reverse lookahead of wildcard

Modified:
    
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/WildCardRuleElement.java
    
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/InlinedRulesTest.java
    
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/Quantifier7Test.java

Modified: 
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/WildCardRuleElement.java
URL: 
http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/WildCardRuleElement.java?rev=1598879&r1=1598878&r2=1598879&view=diff
==============================================================================
--- 
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/WildCardRuleElement.java
 (original)
+++ 
uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/rule/WildCardRuleElement.java
 Sat May 31 14:59:32 2014
@@ -232,7 +232,7 @@ public class WildCardRuleElement extends
     RutaMatcher matcher = re.getMatcher();
     if (matcher instanceof RutaTypeMatcher) {
       FSIterator<AnnotationFS> iterator = getIterator(after, annotation, re, 
null, stream);
-      if(iterator == null) {
+      if (iterator == null) {
         return null;
       }
       if (iterator.isValid()) {
@@ -292,7 +292,7 @@ public class WildCardRuleElement extends
     FSIterator<AnnotationFS> iterator = getIterator(after, annotation, 
nextElement, defaultType,
             stream);
     // already matched something maybe, but now at the end of the document
-    if (iterator == null ||!iterator.isValid()) {
+    if (iterator == null || !iterator.isValid()) {
       RuleElementContainer c = getContainer();
       if (c instanceof ComposedRuleElement) {
         ComposedRuleElement cre = (ComposedRuleElement) c;
@@ -383,23 +383,24 @@ public class WildCardRuleElement extends
       } else {
         AnnotationFS pointer = stream.getAnchor(after, annotation);
         result = cas.getAnnotationIndex(type).iterator(pointer);
+        if (!after) {
+          result.moveToPrevious();
+        }
         if (annotation != null && result.isValid()) {
           // hotfix for index overflow...
           AnnotationFS a = result.get();
+          // not greater equal because caller method will fix it for same 
positions, should be fixed
+          // right here
           if (after) {
-            if (a.getBegin() <= annotation.getBegin()) {
+            if (a.getBegin() < annotation.getBegin()) {
               return null;
             }
           } else {
-            if (a.getEnd() >= annotation.getEnd()) {
+            if (a.getEnd() > annotation.getEnd()) {
               return null;
             }
           }
         }
-
-        if (!after) {
-          result.moveToPrevious();
-        }
       }
     } else {
       JCas jcas = null;

Modified: 
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/InlinedRulesTest.java
URL: 
http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/InlinedRulesTest.java?rev=1598879&r1=1598878&r2=1598879&view=diff
==============================================================================
--- 
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/InlinedRulesTest.java
 (original)
+++ 
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/InlinedRulesTest.java
 Sat May 31 14:59:32 2014
@@ -59,8 +59,6 @@ public class InlinedRulesTest {
     AnnotationIndex<AnnotationFS> ai = null;
     FSIterator<AnnotationFS> iterator = null;
 
-
-    
     t = RutaTestUtils.getTestType(cas, 2);
     ai = cas.getAnnotationIndex(t);
     iterator = ai.iterator();

Modified: 
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/Quantifier7Test.java
URL: 
http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/Quantifier7Test.java?rev=1598879&r1=1598878&r2=1598879&view=diff
==============================================================================
--- 
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/Quantifier7Test.java
 (original)
+++ 
uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/Quantifier7Test.java
 Sat May 31 14:59:32 2014
@@ -38,7 +38,7 @@ public class Quantifier7Test {
     script += "\"i\" -> T2;\n";
     script += "COMMA {-> T3};\n";
     script += "COMMA #{-> T5} COMMA;\n";
-    script += "T5 { CONTAINS(T1)} (T5 { CONTAINS(T2) } T3?)* { -> MARK(T4, 1, 
2) };\n";
+    script += "T5 { CONTAINS(T1)} (T3? T5 { CONTAINS(T2) } T3?)* { -> MARK(T4, 
1, 2) };\n";
     
     CAS cas = null;
     try {
@@ -51,9 +51,10 @@ public class Quantifier7Test {
     Type t = null;
     AnnotationIndex<AnnotationFS> ai = null;
     FSIterator<AnnotationFS> iterator = null;
-
+    
     t = RutaTestUtils.getTestType(cas, 4);
     ai = cas.getAnnotationIndex(t);
+
     assertEquals(1, ai.size());
     iterator = ai.iterator();
     assertEquals("H 1 2 3, i 1 2 3, i 1 2 3, i 1 2 3,", 
iterator.next().getCoveredText());


Reply via email to