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 2015/10/28 11:52:10 UTC
svn commit: r1710988 - in /uima/ruta/trunk/ruta-core/src:
main/java/org/apache/uima/ruta/rule/WildCardRuleElement.java
test/java/org/apache/uima/ruta/WildCardInWindowTest.java
Author: pkluegl
Date: Wed Oct 28 10:52:10 2015
New Revision: 1710988
URL: http://svn.apache.org/viewvc?rev=1710988&view=rev
Log:
UIMA-4620
- added hotfix for now
- added test
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/WildCardInWindowTest.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=1710988&r1=1710987&r2=1710988&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 Wed Oct 28 10:52:10 2015
@@ -418,6 +418,13 @@ public class WildCardRuleElement extends
} else {
// HOTFIX caused by type priorities
result.moveToLast();
+ if(result.isValid()) {
+ // HOTFIX avoid pointer to current annotation
+ AnnotationFS current = result.get();
+ if(current.getEnd() >= annotation.getBegin()) {
+ result.moveToPrevious();
+ }
+ }
}
} else {
if (!after) {
@@ -461,6 +468,13 @@ public class WildCardRuleElement extends
} else {
// TODO due to type priorities: RutaBasic is last -> moveTo will not work
result.moveToLast();
+ if(result.isValid()) {
+ // HOTFIX avoid pointer to current annotation
+ AnnotationFS current = result.get();
+ if(current.getEnd() >= annotation.getBegin()) {
+ result.moveToPrevious();
+ }
+ }
}
} else {
if (!after) {
Modified: uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/WildCardInWindowTest.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/WildCardInWindowTest.java?rev=1710988&r1=1710987&r2=1710988&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/WildCardInWindowTest.java (original)
+++ uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/WildCardInWindowTest.java Wed Oct 28 10:52:10 2015
@@ -94,5 +94,49 @@ public class WildCardInWindowTest {
cas.release();
}
+
+ @Test
+ public void testSameRightToLeftInWindow() {
+ String document = ". a 1 b . c 1 D . e 1 1 1 f . g 1 1 1 H .";
+ String script = "";
+ script += "PERIOD #{-> T1} PERIOD;";
+ script += "T1 ->{W{->T3} #{->T2} @W;};";
+ script += "T1 ->{W #{-PARTOF(NUM)->T4} @W;};";
+
+ CAS cas = null;
+ try {
+ cas = RutaTestUtils.getCAS(document);
+ Ruta.apply(cas, script);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ RutaTestUtils.assertAnnotationsEquals(cas, 2, 4, "1", "1", "1 1 1", "1 1 1");
+ RutaTestUtils.assertAnnotationsEquals(cas, 3, 4, "a", "c", "e", "g");
+ RutaTestUtils.assertAnnotationsEquals(cas, 4, 0);
+
+ cas.release();
+ }
+
+ @Test
+ public void testCoveredRightToLeftNoWindow() {
+ String document = "CAP1 some text CAP2 more text";
+ String script = "";
+ script += "(CAP NUM){-> T1};";
+ script += "SW (T1 W+){-> T2};";
+ script += " T1 #{->T3} @T2;";
+
+ CAS cas = null;
+ try {
+ cas = RutaTestUtils.getCAS(document);
+ Ruta.apply(cas, script);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ RutaTestUtils.assertAnnotationsEquals(cas, 3, 1, "some text");
+
+ cas.release();
+ }
}