You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by vm...@apache.org on 2019/04/01 13:56:58 UTC

svn commit: r1856732 - in /uima/ruta/trunk/ruta-core/src: main/java/org/apache/uima/ruta/action/ test/java/org/apache/uima/ruta/ test/java/org/apache/uima/ruta/expression/resource/

Author: vmorari
Date: Mon Apr  1 13:56:58 2019
New Revision: 1856732

URL: http://svn.apache.org/viewvc?rev=1856732&view=rev
Log:
UIMA-6001: applied additional patch for UIMA-5752

Modified:
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AbstractMarkAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkFastAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkTableAction.java
    uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/WSDictionaryTest.java
    uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/resource/WordListStringExpressionTest.java

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AbstractMarkAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AbstractMarkAction.java?rev=1856732&r1=1856731&r2=1856732&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AbstractMarkAction.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/AbstractMarkAction.java Mon Apr  1 13:56:58 2019
@@ -26,6 +26,7 @@ import org.apache.uima.cas.Type;
 import org.apache.uima.cas.text.AnnotationFS;
 import org.apache.uima.jcas.tcas.Annotation;
 import org.apache.uima.ruta.RutaStream;
+import org.apache.uima.ruta.engine.RutaEngine;
 import org.apache.uima.ruta.expression.number.INumberExpression;
 import org.apache.uima.ruta.expression.type.ITypeExpression;
 import org.apache.uima.ruta.rule.MatchContext;
@@ -63,6 +64,15 @@ public abstract class AbstractMarkAction
     return super.toString() + "," + type.getClass().getSimpleName();
   }
 
+  boolean getDictWSParamValue(MatchContext context) {
+    Object configParameterValue = context.getParent().getContext()
+                                         .getConfigParameterValue(RutaEngine.PARAM_DICT_REMOVE_WS);
+    if (configParameterValue instanceof Boolean) {
+      return (Boolean) configParameterValue;
+    }
+    return false;
+  }
+
   protected List<Integer> getIndexList(MatchContext context, List<INumberExpression> list,
           RutaStream stream) {
     RuleElement element = context.getElement();

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkFastAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkFastAction.java?rev=1856732&r1=1856731&r2=1856732&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkFastAction.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkFastAction.java Mon Apr  1 13:56:58 2019
@@ -57,7 +57,7 @@ public class MarkFastAction extends Abst
     this.ignore = ignore == null ? new SimpleBooleanExpression(false) : ignore;
     this.ignoreLength = ignoreLength == null ? new SimpleNumberExpression(Integer.valueOf(0))
             : ignoreLength;
-    this.ignoreWS = ignoreWS == null ? new SimpleBooleanExpression(true) : ignoreWS;
+    this.ignoreWS = ignoreWS;
   }
 
   public MarkFastAction(ITypeExpression type, AbstractStringListExpression list, IBooleanExpression ignore,
@@ -67,7 +67,7 @@ public class MarkFastAction extends Abst
     this.ignore = ignore == null ? new SimpleBooleanExpression(false) : ignore;
     this.ignoreLength = ignoreLength == null ? new SimpleNumberExpression(Integer.valueOf(0))
             : ignoreLength;
-    this.ignoreWS = ignoreWS == null ? new SimpleBooleanExpression(true) : ignoreWS;
+    this.ignoreWS = ignoreWS;
   }
 
   @Override
@@ -75,19 +75,22 @@ public class MarkFastAction extends Abst
     RuleMatch match = context.getRuleMatch();
     RuleElement element = context.getElement();
     List<AnnotationFS> matchedAnnotationsOf = match.getMatchedAnnotationsOfElement(element);
+
+    boolean ignoreWSValue = ignoreWS != null ? ignoreWS.getBooleanValue(context, stream) : getDictWSParamValue(context);
+
     for (AnnotationFS annotationFS : matchedAnnotationsOf) {
       RutaStream windowStream = stream.getWindowStream(annotationFS, annotationFS.getType());
       RutaWordList wl = null;
       if (list != null) {
         wl = list.getList(context, stream);
       } else if (stringList != null) {
-        wl = new TreeWordList(stringList.getList(context, stream), false);
+        wl = new TreeWordList(stringList.getList(context, stream), ignoreWSValue);
       }
       if (wl instanceof TreeWordList) {
         Collection<AnnotationFS> found = wl.find(windowStream,
                 ignore.getBooleanValue(context, stream),
                 ignoreLength.getIntegerValue(context, stream), null, 0,
-                ignoreWS.getBooleanValue(context, stream));
+                ignoreWSValue);
         for (AnnotationFS annotation : found) {
           createAnnotation(annotation, context, windowStream);
         }

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkTableAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkTableAction.java?rev=1856732&r1=1856731&r2=1856732&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkTableAction.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkTableAction.java Mon Apr  1 13:56:58 2019
@@ -34,7 +34,6 @@ import org.apache.uima.cas.text.Annotati
 import org.apache.uima.jcas.cas.TOP;
 import org.apache.uima.jcas.tcas.Annotation;
 import org.apache.uima.ruta.RutaStream;
-import org.apache.uima.ruta.engine.RutaEngine;
 import org.apache.uima.ruta.expression.bool.IBooleanExpression;
 import org.apache.uima.ruta.expression.number.INumberExpression;
 import org.apache.uima.ruta.expression.resource.WordTableExpression;
@@ -47,7 +46,7 @@ import org.apache.uima.ruta.rule.RuleEle
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
 
-public class MarkTableAction extends AbstractRutaAction {
+public class MarkTableAction extends AbstractMarkAction {
 
   private final ITypeExpression typeExpr;
 
@@ -71,7 +70,7 @@ public class MarkTableAction extends Abs
           WordTableExpression tableExpr, Map<IStringExpression, INumberExpression> featureMap,
           IBooleanExpression ignoreCase, INumberExpression ignoreLength,
           IStringExpression ignoreChar, INumberExpression maxIgnoreChar) {
-    super();
+    super(typeExpr);
     this.typeExpr = typeExpr;
     this.indexExpr = indexExpr;
     this.tableExpr = tableExpr;
@@ -150,15 +149,6 @@ public class MarkTableAction extends Abs
     }
   }
 
-  private boolean getDictWSParamValue(MatchContext context) {
-    Object configParameterValue = context.getParent().getContext()
-            .getConfigParameterValue(RutaEngine.PARAM_DICT_REMOVE_WS);
-    if (configParameterValue instanceof Boolean) {
-      return (Boolean) configParameterValue;
-    }
-    return false;
-  }
-
   private void fillFeatures(TOP structure, Map<String, Integer> map, AnnotationFS annotationFS,
           RuleElement element, List<String> row, RutaStream stream) {
     List<?> featuresList = structure.getType().getFeatures();

Modified: uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/WSDictionaryTest.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/WSDictionaryTest.java?rev=1856732&r1=1856731&r2=1856732&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/WSDictionaryTest.java (original)
+++ uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/WSDictionaryTest.java Mon Apr  1 13:56:58 2019
@@ -20,7 +20,9 @@
 package org.apache.uima.ruta;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
 
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -33,28 +35,26 @@ import org.apache.uima.cas.Feature;
 import org.apache.uima.cas.Type;
 import org.apache.uima.cas.text.AnnotationFS;
 import org.apache.uima.cas.text.AnnotationIndex;
+import org.apache.uima.resource.ResourceInitializationException;
 import org.apache.uima.ruta.engine.Ruta;
 import org.apache.uima.ruta.engine.RutaEngine;
 import org.apache.uima.ruta.engine.RutaTestUtils;
 import org.apache.uima.ruta.engine.RutaTestUtils.TestFeature;
+import org.apache.uima.util.InvalidXMLException;
 import org.junit.Test;
+import org.xml.sax.SAXException;
 
 public class WSDictionaryTest {
 
   @Test
-  public void test() {
+  public void test() throws SAXException, ResourceInitializationException, InvalidXMLException, IOException {
     String document = "Peter Kluegl, Marshall Schor, Joern Kottmann\n";
     document += "PeterKluegl, MarshallSchor, JoernKottmann\n";
     document += "Peter<x>Kluegl, Marshall<x>Schor, Joern<x>Kottmann\n";
     String script = "WORDLIST list = 'org/apache/uima/ruta/WSDictionaryTestList.txt';";
     script += "MARKFAST(T1, list);";
-    CAS cas = null;
-    try {
-      cas = RutaTestUtils.getCAS(document);
-      Ruta.apply(cas, script);
-    } catch (Exception e) {
-      e.printStackTrace();
-    }
+
+    CAS cas = executeAnalysis(RutaTestUtils.getCAS(document), script);
 
     RutaTestUtils.assertAnnotationsEquals(cas, 1, 9, "Peter Kluegl", "Marshall Schor",
             "Joern Kottmann", "PeterKluegl", "MarshallSchor", "JoernKottmann", "Peter<x>Kluegl",
@@ -71,10 +71,7 @@ public class WSDictionaryTest {
     String script = "WORDLIST list = 'org/apache/uima/ruta/WSDictionaryTestList.txt';";
     script += "MARKFAST(T1, list, true, 0, false);";
 
-    Map<String, Object> map = new HashMap<>();
-    map.put(RutaEngine.PARAM_DICT_REMOVE_WS, true);
-    CAS cas = RutaTestUtils.getCAS(document);
-    Ruta.apply(cas, script, map);
+    CAS cas = executeAnalysis(RutaTestUtils.getCAS(document), script);
 
     RutaTestUtils.assertAnnotationsEquals(cas, 1, 9, "Peter Kluegl", "Marshall Schor",
             "Joern Kottmann", "PeterKluegl", "MarshallSchor", "JoernKottmann", "Peter<x>Kluegl",
@@ -84,7 +81,7 @@ public class WSDictionaryTest {
   }
 
   @Test
-  public void testTableWithWS() {
+  public void testTableWithWS() throws ResourceInitializationException, IOException, InvalidXMLException, SAXException {
     String document = "Peter Kluegl, Marshall Schor, Joern Kottmann\n";
     document += "PeterKluegl, MarshallSchor, JoernKottmann\n";
     document += "Peter<x>Kluegl, Marshall<x>Schor, Joern<x>Kottmann\n";
@@ -102,15 +99,8 @@ public class WSDictionaryTest {
     list.add(new TestFeature(fn1, "", "uima.cas.String"));
     String fn2 = "system";
     list.add(new TestFeature(fn2, "", "uima.cas.String"));
-    CAS cas = null;
-    try {
-      cas = RutaTestUtils.getCAS(document, complexTypes, features);
-      Map<String, Object> map = new HashMap<>();
-      map.put(RutaEngine.PARAM_DICT_REMOVE_WS, true);
-      Ruta.apply(cas, script, map);
-    } catch (Exception e) {
-      e.printStackTrace();
-    }
+
+    CAS cas = executeAnalysis(RutaTestUtils.getCAS(document, complexTypes, features), script);
 
     Type t = null;
     AnnotationIndex<AnnotationFS> ai = null;
@@ -182,4 +172,16 @@ public class WSDictionaryTest {
 
     cas.release();
   }
+
+  private CAS executeAnalysis(CAS cas, String script) {
+    try {
+      Map<String, Object> map = new HashMap<>();
+      map.put(RutaEngine.PARAM_DICT_REMOVE_WS, true);
+      Ruta.apply(cas, script, map);
+    } catch (Exception e) {
+      fail("Failed to execute analysis engine. Reason: " + e.getMessage());
+    }
+    return cas;
+  }
+
 }

Modified: uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/resource/WordListStringExpressionTest.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/resource/WordListStringExpressionTest.java?rev=1856732&r1=1856731&r2=1856732&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/resource/WordListStringExpressionTest.java (original)
+++ uima/ruta/trunk/ruta-core/src/test/java/org/apache/uima/ruta/expression/resource/WordListStringExpressionTest.java Mon Apr  1 13:56:58 2019
@@ -19,10 +19,21 @@
 
 package org.apache.uima.ruta.expression.resource;
 
+import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
 import org.apache.uima.cas.CAS;
+import org.apache.uima.resource.ResourceConfigurationException;
+import org.apache.uima.resource.ResourceInitializationException;
 import org.apache.uima.ruta.engine.Ruta;
+import org.apache.uima.ruta.engine.RutaEngine;
 import org.apache.uima.ruta.engine.RutaTestUtils;
+import org.apache.uima.util.InvalidXMLException;
 import org.junit.Test;
+import org.xml.sax.SAXException;
+
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.util.HashMap;
+import java.util.Map;
 
 public class WordListStringExpressionTest {
 
@@ -34,9 +45,8 @@ public class WordListStringExpressionTes
     String script="STRING s = \"org/apache/uima/ruta/action/\";\n";
     script +="WORDLIST wl = s + \"MarkFastTestList.txt\";\n";
     script +="MARKFAST(T1,wl);\n";
-    
-    CAS cas = RutaTestUtils.getCAS(document);
-    Ruta.apply(cas, script);
+
+    CAS cas = executeAnalysis(document, script);
     
     RutaTestUtils.assertAnnotationsEquals(cas, 1, 2, "1 0 0", "2 0 0");
 
@@ -51,12 +61,23 @@ public class WordListStringExpressionTes
     script +="WORDLIST wl = s + \"MarkFastTestList.txt\";\n";
     script +="MARKFAST(T1,wl);\n";
     script +="}\n";
-    
-    CAS cas = RutaTestUtils.getCAS(document);
-    Ruta.apply(cas, script);
+
+    CAS cas = executeAnalysis(document, script);
     
     RutaTestUtils.assertAnnotationsEquals(cas, 1, 2, "1 0 0", "2 0 0");
 
   }
-  
+
+  private CAS executeAnalysis(String document, String script)
+          throws ResourceInitializationException, IOException, InvalidXMLException, ResourceConfigurationException, AnalysisEngineProcessException, URISyntaxException, SAXException {
+
+    Map<String, Object> paramMap = new HashMap<>();
+    paramMap.put(RutaEngine.PARAM_DICT_REMOVE_WS, true);
+
+    CAS cas = RutaTestUtils.getCAS(document);
+    Ruta.apply(cas, script, paramMap);
+
+    return cas;
+  }
+
 }