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 2020/03/22 20:33:35 UTC

svn commit: r1875523 - in /uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/block: OnlyFirstBlock.java fst/FSTBlock.java

Author: pkluegl
Date: Sun Mar 22 20:33:35 2020
New Revision: 1875523

URL: http://svn.apache.org/viewvc?rev=1875523&view=rev
Log:
UIMA-6193: trying to resolve value of initialized values when applying block

Modified:
    uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/block/OnlyFirstBlock.java
    uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/block/fst/FSTBlock.java

Modified: uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/block/OnlyFirstBlock.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/block/OnlyFirstBlock.java?rev=1875523&r1=1875522&r2=1875523&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/block/OnlyFirstBlock.java (original)
+++ uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/block/OnlyFirstBlock.java Sun Mar 22 20:33:35 2020
@@ -28,6 +28,7 @@ import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.ScriptApply;
 import org.apache.uima.ruta.rule.AbstractRule;
 import org.apache.uima.ruta.rule.AbstractRuleMatch;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleApply;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.rule.RutaRuleElement;
@@ -47,6 +48,7 @@ public class OnlyFirstBlock extends Ruta
   @Override
   public ScriptApply apply(RutaStream stream, InferenceCrowd crowd) {
     BlockApply result = new BlockApply(this);
+    getEnvironment().ensureMaterializedInitialValues(new MatchContext(this), stream);
     crowd.beginVisit(this, result);
     RuleApply apply = rule.apply(stream, crowd, true);
     for (AbstractRuleMatch<? extends AbstractRule> eachMatch : apply.getList()) {
@@ -63,24 +65,24 @@ public class OnlyFirstBlock extends Ruta
         boolean stop = false;
         Type type = ((RutaRuleElement) rule.getRuleElements().get(0)).getMatcher()
                 .getType(getParent() == null ? this : getParent(), stream);
-          RutaStream window = stream.getWindowStream(each, type);
-          for (RutaStatement element : getElements()) {
-            if (stop)
-              break;
-            if (element != null) {
-              ScriptApply elementApply = element.apply(window, crowd);
-              if (elementApply instanceof BlockApply) {
-                BlockApply ba = (BlockApply) elementApply;
-                if (ba.getRuleApply().getApplied() > 0) {
-                  stop = true;
-                }
-              } else if (elementApply instanceof RuleApply) {
-                RuleApply ra = (RuleApply) elementApply;
-                if (ra.getApplied() > 0) {
-                  stop = true;
-                }
+        RutaStream window = stream.getWindowStream(each, type);
+        for (RutaStatement element : getElements()) {
+          if (stop)
+            break;
+          if (element != null) {
+            ScriptApply elementApply = element.apply(window, crowd);
+            if (elementApply instanceof BlockApply) {
+              BlockApply ba = (BlockApply) elementApply;
+              if (ba.getRuleApply().getApplied() > 0) {
+                stop = true;
+              }
+            } else if (elementApply instanceof RuleApply) {
+              RuleApply ra = (RuleApply) elementApply;
+              if (ra.getApplied() > 0) {
+                stop = true;
               }
             }
+          }
         }
       }
     }

Modified: uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/block/fst/FSTBlock.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/block/fst/FSTBlock.java?rev=1875523&r1=1875522&r2=1875523&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/block/fst/FSTBlock.java (original)
+++ uima/ruta/trunk/ruta-core-ext/src/main/java/org/apache/uima/ruta/block/fst/FSTBlock.java Sun Mar 22 20:33:35 2020
@@ -30,6 +30,7 @@ import org.apache.uima.ruta.block.BlockA
 import org.apache.uima.ruta.block.RutaBlock;
 import org.apache.uima.ruta.rule.AbstractRule;
 import org.apache.uima.ruta.rule.AbstractRuleMatch;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleApply;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.rule.RutaRule;
@@ -49,6 +50,7 @@ public class FSTBlock extends RutaBlock
   @Override
   public ScriptApply apply(RutaStream stream, InferenceCrowd crowd) {
     BlockApply result = new BlockApply(this);
+    getEnvironment().ensureMaterializedInitialValues(new MatchContext(this), stream);
     crowd.beginVisit(this, result);
     RuleApply apply = rule.apply(stream, crowd, true);
     for (AbstractRuleMatch<? extends AbstractRule> eachMatch : apply.getList()) {