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()) {