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/03/01 21:50:49 UTC

svn commit: r1663165 - in /uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta: action/ExecAction.java type/RutaBasic.java

Author: pkluegl
Date: Sun Mar  1 20:50:48 2015
New Revision: 1663165

URL: http://svn.apache.org/r1663165
Log:
UIMA-4261
- fixed updating in EXEC
- do not remove partof count for parent types if actual type was not present

Modified:
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ExecAction.java
    uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/type/RutaBasic.java

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ExecAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ExecAction.java?rev=1663165&r1=1663164&r2=1663165&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ExecAction.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/action/ExecAction.java Sun Mar  1 20:50:48 2015
@@ -20,12 +20,8 @@
 package org.apache.uima.ruta.action;
 
 import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
+import java.util.LinkedList;
 import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
 
 import org.apache.uima.UIMAFramework;
 import org.apache.uima.analysis_engine.AnalysisEngine;
@@ -39,14 +35,12 @@ import org.apache.uima.cas.text.Annotati
 import org.apache.uima.fit.factory.AnalysisEngineFactory;
 import org.apache.uima.resource.ResourceInitializationException;
 import org.apache.uima.ruta.RutaBlock;
-import org.apache.uima.ruta.RutaModule;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.ScriptApply;
 import org.apache.uima.ruta.expression.list.TypeListExpression;
 import org.apache.uima.ruta.expression.string.IStringExpression;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
-import org.apache.uima.ruta.type.RutaBasic;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
 import org.apache.uima.util.XMLInputSource;
 
@@ -85,10 +79,10 @@ public class ExecAction extends CallActi
         AnalysisEngineMetaData metaData = targetEngine.getAnalysisEngineMetaData();
         try {
           String sourceUrlString = metaData.getSourceUrlString();
-          if(sourceUrlString != null) {
-            AnalysisEngineDescription aed = (AnalysisEngineDescription) UIMAFramework.getXMLParser().parseResourceSpecifier(new XMLInputSource(sourceUrlString));
-            AnalysisEngine createEngine = AnalysisEngineFactory.createEngine(
-                    aed, viewName);
+          if (sourceUrlString != null) {
+            AnalysisEngineDescription aed = (AnalysisEngineDescription) UIMAFramework
+                    .getXMLParser().parseResourceSpecifier(new XMLInputSource(sourceUrlString));
+            AnalysisEngine createEngine = AnalysisEngineFactory.createEngine(aed, viewName);
             targetEngine = createEngine;
           }
         } catch (Exception e) {
@@ -101,28 +95,21 @@ public class ExecAction extends CallActi
     if (typeList != null && view == null) {
       List<Type> list = typeList.getList(element.getParent(), stream);
       for (Type type : list) {
-        Map<RutaBasic, Collection<AnnotationFS>> map = new HashMap<RutaBasic, Collection<AnnotationFS>>();
         AnnotationIndex<AnnotationFS> ai = cas.getAnnotationIndex(type);
-        for (AnnotationFS fs : ai) {
-          RutaBasic basic = stream.getFirstBasicInWindow(fs);
-          if (basic != null) {
-            Collection<AnnotationFS> collection = map.get(basic);
-            if (collection == null) {
-              collection = new HashSet<AnnotationFS>();
-              map.put(basic, collection);
-            }
-            collection.add(fs);
-          }
+        Collection<AnnotationFS> toUpdate = new LinkedList<AnnotationFS>();
+        for (AnnotationFS annotationFS : ai) {
+          toUpdate.add(annotationFS);
         }
-        Set<Entry<RutaBasic, Collection<AnnotationFS>>> entrySet = map.entrySet();
-        for (Entry<RutaBasic, Collection<AnnotationFS>> entry : entrySet) {
-          for (AnnotationFS each : entry.getValue()) {
-            stream.removeAnnotation(each);
-            stream.addAnnotation(each, true, match);
-          }
+        for (AnnotationFS each : toUpdate) {
+          stream.removeAnnotation(each);
+        }
+        for (AnnotationFS each : toUpdate) {
+          stream.addAnnotation(each, true, match);
         }
       }
     }
+    
+    
   }
 
   public TypeListExpression getTypeList() {

Modified: uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/type/RutaBasic.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/type/RutaBasic.java?rev=1663165&r1=1663164&r2=1663165&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/type/RutaBasic.java (original)
+++ uima/ruta/trunk/ruta-core/src/main/java/org/apache/uima/ruta/type/RutaBasic.java Sun Mar  1 20:50:48 2015
@@ -78,11 +78,11 @@ public class RutaBasic extends Annotatio
   private void removePartOf(int code) {
     if (partOf[code] != 0) {
       partOf[code] = partOf[code] - 1;
-    }
-    if (!lowMemoryProfile) {
-      int parentCode = getCAS().getTypeSystem().getLowLevelTypeSystem().ll_getParentType(code);
-      if (parentCode > 0) {
-        removePartOf(parentCode);
+      if (!lowMemoryProfile) {
+        int parentCode = getCAS().getTypeSystem().getLowLevelTypeSystem().ll_getParentType(code);
+        if (parentCode > 0) {
+          removePartOf(parentCode);
+        }
       }
     }
   }