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);
+ }
}
}
}