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/11/06 15:19:30 UTC

svn commit: r1712968 [1/2] - in /uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta: action/ condition/ rule/

Author: pkluegl
Date: Fri Nov  6 14:19:28 2015
New Revision: 1712968

URL: http://svn.apache.org/viewvc?rev=1712968&view=rev
Log:
UIMA-4408
- refactoring of condition and action interfaces

Added:
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/rule/MatchContext.java   (with props)
Modified:
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/AbstractRutaAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ActionFactory.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/AddAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/AddFilterTypeAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/AddRetainTypeAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/AssignAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/CallAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ClearAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ColorAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ComposedAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ConfigureAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/CreateAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/DelAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/DynamicAnchoringAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/FillAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/FilterTypeAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/GatherAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/GetAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/GetFeatureAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/GetListAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/GreedyAnchoringAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ImplicitFeatureAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ImplicitMarkAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/LogAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkFastAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkFirstAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkLastAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkOnceAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkTableAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MatchedTextAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MergeAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/RemoveAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/RemoveDuplicateAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/RemoveFilterTypeAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/RemoveRetainTypeAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ReplaceAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/RetainTypeAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/SetFeatureAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ShiftAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/SplitAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/TransferAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/TrieAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/TrimAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/UnmarkAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/UnmarkAllAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/VariableAction.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/AbstractRutaCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/AfterCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/AndCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/BeforeCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/ConditionFactory.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/ContainsCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/ContextCountCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/CountCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/CurrentCountCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/EndsWithCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/FeatureCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/IfCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/ImplicitCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/InListCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/IsCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/LastCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/MOfNCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/NearCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/NotCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/OrCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/ParseCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/PartOfCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/PartOfNeqCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/PositionCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/RegExpCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/ScoreCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/SizeCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/StartsWithCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/TotalCountCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/VariableCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/VoteCondition.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/rule/AbstractRuleElement.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/rule/ComposedRuleElement.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/rule/RutaRuleElement.java
    uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/rule/WildCardRuleElement.java

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/AbstractRutaAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/AbstractRutaAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/AbstractRutaAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/AbstractRutaAction.java Fri Nov  6 14:19:28 2015
@@ -21,8 +21,7 @@ package org.apache.uima.ruta.action;
 
 import org.apache.uima.ruta.RutaElement;
 import org.apache.uima.ruta.RutaStream;
-import org.apache.uima.ruta.rule.RuleElement;
-import org.apache.uima.ruta.rule.RuleMatch;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
 
 public abstract class AbstractRutaAction extends RutaElement {
@@ -31,8 +30,7 @@ public abstract class AbstractRutaAction
     super();
   }
 
-  public abstract void execute(RuleMatch match, RuleElement element, RutaStream stream,
-          InferenceCrowd crowd);
+  public abstract void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd);
 
   @Override
   public String toString() {

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ActionFactory.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ActionFactory.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ActionFactory.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ActionFactory.java Fri Nov  6 14:19:28 2015
@@ -26,7 +26,6 @@ import java.util.logging.Level;
 import org.antlr.runtime.Token;
 import org.apache.uima.ruta.RutaBlock;
 import org.apache.uima.ruta.expression.IRutaExpression;
-import org.apache.uima.ruta.expression.RutaExpression;
 import org.apache.uima.ruta.expression.bool.IBooleanExpression;
 import org.apache.uima.ruta.expression.feature.FeatureMatchExpression;
 import org.apache.uima.ruta.expression.list.ListExpression;
@@ -199,7 +198,8 @@ public class ActionFactory {
             maxIgnoreChar);
   }
 
-  public static AbstractRutaAction createMergeAction(IBooleanExpression union, Token target,
+  @SuppressWarnings("rawtypes")
+public static AbstractRutaAction createMergeAction(IBooleanExpression union, Token target,
           List<ListExpression> list, RutaBlock env) {
     return new MergeAction(union, target == null ? null : target.getText(), list);
   }

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/AddAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/AddAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/AddAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/AddAction.java Fri Nov  6 14:19:28 2015
@@ -31,6 +31,7 @@ import org.apache.uima.ruta.expression.l
 import org.apache.uima.ruta.expression.number.INumberExpression;
 import org.apache.uima.ruta.expression.string.IStringExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
@@ -57,7 +58,9 @@ public class AddAction extends AbstractR
 
   @SuppressWarnings({ "unchecked", "rawtypes" })
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+	RuleMatch match = context.getRuleMatch();
+	RuleElement element = context.getElement();
     RutaBlock parent = element.getParent();
     RutaEnvironment environment = parent.getEnvironment();
     List list = environment.getVariableValue(var, List.class);

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/AddFilterTypeAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/AddFilterTypeAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/AddFilterTypeAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/AddFilterTypeAction.java Fri Nov  6 14:19:28 2015
@@ -25,8 +25,8 @@ import java.util.List;
 import org.apache.uima.cas.Type;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
-import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
 
 public class AddFilterTypeAction extends AbstractRutaAction {
@@ -43,7 +43,8 @@ public class AddFilterTypeAction extends
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleElement element = context.getElement();
     List<Type> types = new ArrayList<Type>();
     for (TypeExpression each : list) {
       types.add(each.getType(element.getParent()));

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/AddRetainTypeAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/AddRetainTypeAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/AddRetainTypeAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/AddRetainTypeAction.java Fri Nov  6 14:19:28 2015
@@ -25,8 +25,8 @@ import java.util.List;
 import org.apache.uima.cas.Type;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
-import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
 
 public class AddRetainTypeAction extends AbstractRutaAction {
@@ -43,7 +43,8 @@ public class AddRetainTypeAction extends
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleElement element = context.getElement();
     List<Type> types = new ArrayList<Type>();
     for (TypeExpression each : list) {
       types.add(each.getType(element.getParent()));

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/AssignAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/AssignAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/AssignAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/AssignAction.java Fri Nov  6 14:19:28 2015
@@ -28,6 +28,7 @@ import org.apache.uima.ruta.expression.b
 import org.apache.uima.ruta.expression.number.INumberExpression;
 import org.apache.uima.ruta.expression.string.IStringExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
@@ -45,7 +46,9 @@ public class AssignAction extends Abstra
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     RutaBlock parent = element.getParent();
     RutaEnvironment environment = parent.getEnvironment();
     Class<?> clazz = environment.getVariableType(var);

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/CallAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/CallAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/CallAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/CallAction.java Fri Nov  6 14:19:28 2015
@@ -39,6 +39,7 @@ 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.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.type.RutaBasic;
@@ -54,7 +55,9 @@ public class CallAction extends Abstract
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     RutaModule thisScript = element.getParent().getScript();
     AnalysisEngine targetEngine = thisScript.getEngine(namespace);
     if (targetEngine != null) {

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ClearAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ClearAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ClearAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ClearAction.java Fri Nov  6 14:19:28 2015
@@ -20,8 +20,8 @@
 package org.apache.uima.ruta.action;
 
 import org.apache.uima.ruta.RutaStream;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
-import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
 
 public class ClearAction extends AbstractRutaAction {
@@ -34,7 +34,8 @@ public class ClearAction extends Abstrac
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleElement element = context.getElement();
     element.getParent().getEnvironment().setVariableValue(list, null);
   }
 

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ColorAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ColorAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ColorAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ColorAction.java Fri Nov  6 14:19:28 2015
@@ -28,6 +28,7 @@ import org.apache.uima.ruta.expression.b
 import org.apache.uima.ruta.expression.string.IStringExpression;
 import org.apache.uima.ruta.expression.string.SimpleStringExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.type.RutaColoring;
@@ -53,7 +54,9 @@ public class ColorAction extends Abstrac
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     Type casType = stream.getJCas().getCasType(RutaColoring.type);
     FeatureStructure newAnnotationFS = stream.getCas().createFS(casType);
     RutaColoring coloring = null;

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ComposedAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ComposedAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ComposedAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ComposedAction.java Fri Nov  6 14:19:28 2015
@@ -22,8 +22,7 @@ package org.apache.uima.ruta.action;
 import java.util.List;
 
 import org.apache.uima.ruta.RutaStream;
-import org.apache.uima.ruta.rule.RuleElement;
-import org.apache.uima.ruta.rule.RuleMatch;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
 
 public class ComposedAction extends AbstractRutaAction {
@@ -36,10 +35,10 @@ public class ComposedAction extends Abst
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
     for (AbstractRutaAction each : actions) {
       crowd.beginVisit(each, null);
-      each.execute(match, element, stream, crowd);
+      each.execute(context, stream, crowd);
       crowd.endVisit(each, null);
     }
   }

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ConfigureAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ConfigureAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ConfigureAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ConfigureAction.java Fri Nov  6 14:19:28 2015
@@ -42,6 +42,7 @@ import org.apache.uima.ruta.expression.l
 import org.apache.uima.ruta.expression.number.INumberExpression;
 import org.apache.uima.ruta.expression.string.IStringExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
@@ -59,7 +60,9 @@ public class ConfigureAction extends Abs
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     RutaBlock parent = element.getParent();
     RutaModule thisScript = parent.getScript();
     AnalysisEngine targetEngine = thisScript.getEngine(namespace);

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/CreateAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/CreateAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/CreateAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/CreateAction.java Fri Nov  6 14:19:28 2015
@@ -34,6 +34,7 @@ import org.apache.uima.ruta.expression.I
 import org.apache.uima.ruta.expression.number.INumberExpression;
 import org.apache.uima.ruta.expression.string.IStringExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
@@ -55,7 +56,9 @@ public class CreateAction extends Abstra
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     List<Integer> indexList = getIndexList(match, element, stream);
     List<AnnotationFS> matchedAnnotations = match.getMatchedAnnotations(indexList,
             element.getContainer());

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/DelAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/DelAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/DelAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/DelAction.java Fri Nov  6 14:19:28 2015
@@ -23,6 +23,7 @@ import java.util.List;
 
 import org.apache.uima.cas.text.AnnotationFS;
 import org.apache.uima.ruta.RutaStream;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.type.RutaBasic;
@@ -35,7 +36,9 @@ public class DelAction extends AbstractR
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     List<AnnotationFS> matchedAnnotationsOf = match.getMatchedAnnotationsOfElement(element);
     for (AnnotationFS annotationFS : matchedAnnotationsOf) {
       List<RutaBasic> basicsInWindow = stream.getBasicsInWindow(annotationFS);

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/DynamicAnchoringAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/DynamicAnchoringAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/DynamicAnchoringAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/DynamicAnchoringAction.java Fri Nov  6 14:19:28 2015
@@ -23,6 +23,7 @@ import org.apache.uima.ruta.RutaBlock;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.bool.IBooleanExpression;
 import org.apache.uima.ruta.expression.number.INumberExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
@@ -44,7 +45,9 @@ public class DynamicAnchoringAction exte
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     RutaBlock parent = element.getParent();
     boolean activated = active.getBooleanValue(parent, match, element, stream);
     stream.setDynamicAnchoring(activated);

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/FillAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/FillAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/FillAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/FillAction.java Fri Nov  6 14:19:28 2015
@@ -29,6 +29,7 @@ import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.IRutaExpression;
 import org.apache.uima.ruta.expression.string.IStringExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
@@ -46,7 +47,9 @@ public class FillAction extends Abstract
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     List<AnnotationFS> matchedAnnotations = match.getMatchedAnnotationsOfElement(element);
     for (AnnotationFS matchedAnnotation : matchedAnnotations) {
       if (matchedAnnotation == null) {

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/FilterTypeAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/FilterTypeAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/FilterTypeAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/FilterTypeAction.java Fri Nov  6 14:19:28 2015
@@ -25,8 +25,8 @@ import java.util.List;
 import org.apache.uima.cas.Type;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
-import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
 
 public class FilterTypeAction extends AbstractRutaAction {
@@ -43,7 +43,8 @@ public class FilterTypeAction extends Ab
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleElement element = context.getElement();
     List<Type> types = new ArrayList<Type>();
     for (TypeExpression each : list) {
       types.add(each.getType(element.getParent()));

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/GatherAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/GatherAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/GatherAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/GatherAction.java Fri Nov  6 14:19:28 2015
@@ -44,6 +44,7 @@ import org.apache.uima.ruta.expression.l
 import org.apache.uima.ruta.expression.number.INumberExpression;
 import org.apache.uima.ruta.expression.string.IStringExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleElementMatch;
 import org.apache.uima.ruta.rule.RuleMatch;
@@ -68,7 +69,9 @@ public class GatherAction extends Abstra
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     List<Integer> indexList = getIndexList(match, element, stream);
     List<AnnotationFS> matchedAnnotations = match.getMatchedAnnotations(indexList,
             element.getContainer());

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/GetAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/GetAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/GetAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/GetAction.java Fri Nov  6 14:19:28 2015
@@ -27,6 +27,7 @@ import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.IRutaExpression;
 import org.apache.uima.ruta.expression.list.ListExpression;
 import org.apache.uima.ruta.expression.string.IStringExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
@@ -47,7 +48,9 @@ public class GetAction extends AbstractR
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     RutaBlock parent = element.getParent();
     String op = opExpr.getStringValue(parent, match, element, stream);
     List<?> list = listExpr.getList(parent, stream);

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/GetFeatureAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/GetFeatureAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/GetFeatureAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/GetFeatureAction.java Fri Nov  6 14:19:28 2015
@@ -30,6 +30,7 @@ import org.apache.uima.ruta.RutaEnvironm
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.UIMAConstants;
 import org.apache.uima.ruta.expression.string.IStringExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.rule.RutaRuleElement;
@@ -48,7 +49,9 @@ public class GetFeatureAction extends Ab
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     List<Type> types = new ArrayList<Type>();
     RutaBlock parent = element.getParent();
     if (element instanceof RutaRuleElement) {

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/GetListAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/GetListAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/GetListAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/GetListAction.java Fri Nov  6 14:19:28 2015
@@ -30,6 +30,7 @@ import org.apache.uima.cas.text.Annotati
 import org.apache.uima.ruta.RutaBlock;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.string.IStringExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.type.RutaBasic;
@@ -53,8 +54,11 @@ public class GetListAction extends Abstr
     this.opExpr = op;
   }
 
+  @SuppressWarnings("unchecked")
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     RutaBlock parent = element.getParent();
     String op = opExpr.getStringValue(parent, match, element, stream);
     List<Type> list = new ArrayList<Type>();

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/GreedyAnchoringAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/GreedyAnchoringAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/GreedyAnchoringAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/GreedyAnchoringAction.java Fri Nov  6 14:19:28 2015
@@ -23,6 +23,7 @@ import org.apache.uima.ruta.RutaBlock;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.bool.IBooleanExpression;
 import org.apache.uima.ruta.expression.bool.SimpleBooleanExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
@@ -40,7 +41,9 @@ public class GreedyAnchoringAction exten
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     RutaBlock parent = element.getParent();
     boolean greedy1 = greedyRuleElement.getBooleanValue(parent, match, element, stream);
     boolean greedy2 = greedyRule.getBooleanValue(parent, match, element, stream);

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ImplicitFeatureAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ImplicitFeatureAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ImplicitFeatureAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ImplicitFeatureAction.java Fri Nov  6 14:19:28 2015
@@ -43,6 +43,7 @@ import org.apache.uima.ruta.expression.s
 import org.apache.uima.ruta.expression.type.ITypeExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
 import org.apache.uima.ruta.rule.AnnotationComparator;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.utils.UIMAUtils;
@@ -60,7 +61,9 @@ public class ImplicitFeatureAction exten
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     TypeExpression typeExpr = expr.getTypeExpr(element.getParent());
     Type type = typeExpr.getType(element.getParent());
     List<AnnotationFS> matchedAnnotations = match.getMatchedAnnotationsOfElement(element);

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ImplicitMarkAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ImplicitMarkAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ImplicitMarkAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ImplicitMarkAction.java Fri Nov  6 14:19:28 2015
@@ -24,6 +24,7 @@ import java.util.List;
 import org.apache.uima.cas.text.AnnotationFS;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
@@ -35,7 +36,9 @@ public class ImplicitMarkAction extends
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     List<AnnotationFS> matchedAnnotations = match.getMatchedAnnotationsOfElement(element);
     for (AnnotationFS matchedAnnotation : matchedAnnotations) {
       if (matchedAnnotation == null) {

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/LogAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/LogAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/LogAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/LogAction.java Fri Nov  6 14:19:28 2015
@@ -25,6 +25,7 @@ import java.util.logging.Logger;
 import org.apache.uima.ruta.RutaBlock;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.string.IStringExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
@@ -44,7 +45,9 @@ public class LogAction extends AbstractR
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     RutaBlock parent = element.getParent();
     String msg = text.getStringValue(parent, match, element, stream);
     Logger.getLogger(LOGGER_NAME).log(level, msg);

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkAction.java Fri Nov  6 14:19:28 2015
@@ -27,6 +27,7 @@ import org.apache.uima.jcas.tcas.Annotat
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.number.INumberExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.type.RutaAnnotation;
@@ -45,7 +46,9 @@ public class MarkAction extends Abstract
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     List<Integer> indexList = getIndexList(element, list, stream);
     List<AnnotationFS> matchedAnnotations = match.getMatchedAnnotations(indexList,
             element.getContainer());

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkFastAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkFastAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkFastAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkFastAction.java Fri Nov  6 14:19:28 2015
@@ -34,6 +34,7 @@ import org.apache.uima.ruta.expression.r
 import org.apache.uima.ruta.expression.type.TypeExpression;
 import org.apache.uima.ruta.resource.RutaWordList;
 import org.apache.uima.ruta.resource.TreeWordList;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
@@ -71,7 +72,9 @@ public class MarkFastAction extends Abst
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     List<AnnotationFS> matchedAnnotationsOf = match.getMatchedAnnotationsOfElement(element);
     for (AnnotationFS annotationFS : matchedAnnotationsOf) {
       RutaStream windowStream = stream.getWindowStream(annotationFS, annotationFS.getType());

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkFirstAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkFirstAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkFirstAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkFirstAction.java Fri Nov  6 14:19:28 2015
@@ -24,6 +24,7 @@ import java.util.List;
 import org.apache.uima.cas.text.AnnotationFS;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.type.RutaBasic;
@@ -36,7 +37,9 @@ public class MarkFirstAction extends Abs
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     List<AnnotationFS> matchedAnnotations = match.getMatchedAnnotations(null,
             element.getContainer());
     for (AnnotationFS matchedAnnotation : matchedAnnotations) {

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkLastAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkLastAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkLastAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkLastAction.java Fri Nov  6 14:19:28 2015
@@ -24,6 +24,7 @@ import java.util.List;
 import org.apache.uima.cas.text.AnnotationFS;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.type.RutaBasic;
@@ -36,7 +37,9 @@ public class MarkLastAction extends Abst
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     List<AnnotationFS> matchedAnnotations = match.getMatchedAnnotations(null,
             element.getContainer());
     for (AnnotationFS matchedAnnotation : matchedAnnotations) {

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkOnceAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkOnceAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkOnceAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkOnceAction.java Fri Nov  6 14:19:28 2015
@@ -26,6 +26,7 @@ import org.apache.uima.cas.text.Annotati
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.number.INumberExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.type.RutaBasic;
@@ -39,7 +40,9 @@ public class MarkOnceAction extends Mark
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     List<Integer> indexList = getIndexList(element, list, stream);
     List<AnnotationFS> matchedAnnotations = match.getMatchedAnnotations(indexList,
             element.getContainer());

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkTableAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkTableAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkTableAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MarkTableAction.java Fri Nov  6 14:19:28 2015
@@ -42,6 +42,7 @@ import org.apache.uima.ruta.expression.s
 import org.apache.uima.ruta.expression.type.TypeExpression;
 import org.apache.uima.ruta.resource.RutaTable;
 import org.apache.uima.ruta.resource.RutaWordList;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
@@ -86,7 +87,9 @@ public class MarkTableAction extends Abs
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     RutaBlock block = element.getParent();
     RutaTable table = tableExpr.getTable(block);
     int index = indexExpr.getIntegerValue(block, match, element, stream);

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MatchedTextAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MatchedTextAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MatchedTextAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MatchedTextAction.java Fri Nov  6 14:19:28 2015
@@ -25,6 +25,7 @@ import java.util.List;
 import org.apache.uima.cas.text.AnnotationFS;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.number.INumberExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
@@ -42,7 +43,9 @@ public class MatchedTextAction extends A
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     List<Integer> indexList = getIndexList(match, element, stream);
     List<AnnotationFS> matchedAnnotations = match.getMatchedAnnotations(indexList,
             element.getContainer());

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MergeAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MergeAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MergeAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/MergeAction.java Fri Nov  6 14:19:28 2015
@@ -26,6 +26,7 @@ import org.apache.commons.collections.Li
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.bool.IBooleanExpression;
 import org.apache.uima.ruta.expression.list.ListExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
@@ -49,7 +50,9 @@ public class MergeAction extends Abstrac
 
   @SuppressWarnings({ "unchecked", "rawtypes" })
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     boolean union = unionExpr.getBooleanValue(element.getParent(), match, element, stream);
     List<Object> list = new ArrayList<Object>();
     if (union) {

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/RemoveAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/RemoveAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/RemoveAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/RemoveAction.java Fri Nov  6 14:19:28 2015
@@ -30,6 +30,7 @@ import org.apache.uima.ruta.expression.l
 import org.apache.uima.ruta.expression.number.INumberExpression;
 import org.apache.uima.ruta.expression.string.IStringExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
@@ -56,7 +57,9 @@ public class RemoveAction extends Abstra
 
   @SuppressWarnings({ "rawtypes" })
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     RutaBlock parent = element.getParent();
     List list = parent.getEnvironment().getVariableValue(var, List.class);
     List<Object> toRemove = new ArrayList<Object>();

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/RemoveDuplicateAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/RemoveDuplicateAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/RemoveDuplicateAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/RemoveDuplicateAction.java Fri Nov  6 14:19:28 2015
@@ -30,6 +30,7 @@ import org.apache.uima.ruta.expression.b
 import org.apache.uima.ruta.expression.number.INumberExpression;
 import org.apache.uima.ruta.expression.string.IStringExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
@@ -49,7 +50,9 @@ public class RemoveDuplicateAction exten
 
   @SuppressWarnings({ "rawtypes" })
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     List list = element.getParent().getEnvironment().getVariableValue(var, List.class);
     Collection<Object> values = new HashSet<Object>();
     List<Object> result = new ArrayList<Object>();

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/RemoveFilterTypeAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/RemoveFilterTypeAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/RemoveFilterTypeAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/RemoveFilterTypeAction.java Fri Nov  6 14:19:28 2015
@@ -25,6 +25,7 @@ import java.util.List;
 import org.apache.uima.cas.Type;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
@@ -43,7 +44,8 @@ public class RemoveFilterTypeAction exte
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleElement element = context.getElement();
     List<Type> types = new ArrayList<Type>();
     for (TypeExpression each : list) {
       types.add(each.getType(element.getParent()));

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/RemoveRetainTypeAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/RemoveRetainTypeAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/RemoveRetainTypeAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/RemoveRetainTypeAction.java Fri Nov  6 14:19:28 2015
@@ -25,6 +25,7 @@ import java.util.List;
 import org.apache.uima.cas.Type;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
@@ -43,7 +44,8 @@ public class RemoveRetainTypeAction exte
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleElement element = context.getElement();
     List<Type> types = new ArrayList<Type>();
     for (TypeExpression each : list) {
       types.add(each.getType(element.getParent()));

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ReplaceAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ReplaceAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ReplaceAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ReplaceAction.java Fri Nov  6 14:19:28 2015
@@ -25,6 +25,7 @@ import org.apache.uima.cas.text.Annotati
 import org.apache.uima.ruta.RutaBlock;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.string.IStringExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.type.RutaBasic;
@@ -44,7 +45,9 @@ public class ReplaceAction extends Abstr
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     List<AnnotationFS> matchedAnnotations = match.getMatchedAnnotations(null,
             element.getContainer());
     for (AnnotationFS matchedAnnotation : matchedAnnotations) {

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/RetainTypeAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/RetainTypeAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/RetainTypeAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/RetainTypeAction.java Fri Nov  6 14:19:28 2015
@@ -25,6 +25,7 @@ import java.util.List;
 import org.apache.uima.cas.Type;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
@@ -43,7 +44,8 @@ public class RetainTypeAction extends Ab
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleElement element = context.getElement();
     List<Type> types = new ArrayList<Type>();
     for (TypeExpression each : list) {
       types.add(each.getType(element.getParent()));

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/SetFeatureAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/SetFeatureAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/SetFeatureAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/SetFeatureAction.java Fri Nov  6 14:19:28 2015
@@ -34,6 +34,7 @@ import org.apache.uima.ruta.expression.n
 import org.apache.uima.ruta.expression.string.IStringExpression;
 import org.apache.uima.ruta.expression.type.ITypeExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.utils.UIMAUtils;
@@ -56,7 +57,9 @@ public class SetFeatureAction extends Ab
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     RutaBlock parent = element.getParent();
     String featureString = featureStringExpression.getStringValue(parent, match, element, stream);
     List<AnnotationFS> matchedAnnotations = match.getMatchedAnnotationsOfElement(element);

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ShiftAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ShiftAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ShiftAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/ShiftAction.java Fri Nov  6 14:19:28 2015
@@ -31,6 +31,7 @@ import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.number.INumberExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
 import org.apache.uima.ruta.rule.AnnotationComparator;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.type.RutaBasic;
@@ -43,7 +44,9 @@ public class ShiftAction extends MarkAct
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     Type targetType = type.getType(element.getParent());
     List<Integer> indexList = getIndexList(element, list, stream);
     List<AnnotationFS> destinationAnnotationSpans = match.getMatchedAnnotations(indexList,

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/SplitAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/SplitAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/SplitAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/SplitAction.java Fri Nov  6 14:19:28 2015
@@ -33,6 +33,7 @@ import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.bool.IBooleanExpression;
 import org.apache.uima.ruta.expression.bool.SimpleBooleanExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.type.RutaBasic;
@@ -59,7 +60,9 @@ public class SplitAction extends Abstrac
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     List<AnnotationFS> matchedAnnotationsOf = match.getMatchedAnnotationsOfElement(element);
     RutaBlock parent = element.getParent();
     Type typeToSplit = splitOnType.getType(parent);

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/TransferAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/TransferAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/TransferAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/TransferAction.java Fri Nov  6 14:19:28 2015
@@ -28,6 +28,7 @@ import org.apache.uima.cas.Type;
 import org.apache.uima.cas.text.AnnotationFS;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleElementMatch;
 import org.apache.uima.ruta.rule.RuleMatch;
@@ -40,7 +41,9 @@ public class TransferAction extends Type
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     List<List<RuleElementMatch>> list = match.getMatchInfo(element);
     CAS cas = stream.getCas();
     Type t = type.getType(element.getParent());

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/TrieAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/TrieAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/TrieAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/TrieAction.java Fri Nov  6 14:19:28 2015
@@ -36,6 +36,7 @@ import org.apache.uima.ruta.expression.r
 import org.apache.uima.ruta.expression.string.IStringExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
 import org.apache.uima.ruta.resource.RutaWordList;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
@@ -70,8 +71,9 @@ public class TrieAction extends Abstract
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
-
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     Map<String, Object> typeMap = new HashMap<String, Object>();
     RutaBlock parent = element.getParent();
     for (IStringExpression eachKey : map.keySet()) {

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/TrimAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/TrimAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/TrimAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/TrimAction.java Fri Nov  6 14:19:28 2015
@@ -29,6 +29,7 @@ import org.apache.uima.ruta.RutaBlock;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.list.TypeListExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.type.RutaBasic;
@@ -47,7 +48,9 @@ public class TrimAction extends Abstract
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     List<AnnotationFS> matchedAnnotationsOf = match.getMatchedAnnotationsOfElement(element);
     List<Type> typesToTrim = getTypes(element.getParent(), stream);
     for (AnnotationFS annotationFS : matchedAnnotationsOf) {

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/UnmarkAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/UnmarkAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/UnmarkAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/UnmarkAction.java Fri Nov  6 14:19:28 2015
@@ -29,6 +29,7 @@ import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.bool.IBooleanExpression;
 import org.apache.uima.ruta.expression.number.INumberExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleMatch;
 import org.apache.uima.ruta.type.RutaBasic;
@@ -47,7 +48,9 @@ public class UnmarkAction extends TypeSe
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     Type t = type.getType(element.getParent());
     boolean allAtAnchor = false;
     if (allAnchor != null) {

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/UnmarkAllAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/UnmarkAllAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/UnmarkAllAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/UnmarkAllAction.java Fri Nov  6 14:19:28 2015
@@ -30,6 +30,7 @@ import org.apache.uima.cas.text.Annotati
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.list.TypeListExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.rule.RuleElementMatch;
 import org.apache.uima.ruta.rule.RuleMatch;
@@ -46,7 +47,9 @@ public class UnmarkAllAction extends Typ
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		RuleMatch match = context.getRuleMatch();
+		RuleElement element = context.getElement();
     List<Type> retainList = new ArrayList<Type>();
     if (list != null) {
       retainList = list.getList(element.getParent(), stream);

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/VariableAction.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/VariableAction.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/VariableAction.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/action/VariableAction.java Fri Nov  6 14:19:28 2015
@@ -20,8 +20,7 @@
 package org.apache.uima.ruta.action;
 
 import org.apache.uima.ruta.RutaStream;
-import org.apache.uima.ruta.rule.RuleElement;
-import org.apache.uima.ruta.rule.RuleMatch;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
 
 public class VariableAction extends AbstractRutaAction {
@@ -34,7 +33,7 @@ public class VariableAction extends Abst
   }
 
   @Override
-  public void execute(RuleMatch match, RuleElement element, RutaStream stream, InferenceCrowd crowd) {
+  public void execute(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
     // TODO
   }
 

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/AbstractRutaCondition.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/AbstractRutaCondition.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/AbstractRutaCondition.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/AbstractRutaCondition.java Fri Nov  6 14:19:28 2015
@@ -19,11 +19,10 @@
 
 package org.apache.uima.ruta.condition;
 
-import org.apache.uima.cas.text.AnnotationFS;
 import org.apache.uima.ruta.RutaElement;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.rule.EvaluatedCondition;
-import org.apache.uima.ruta.rule.RuleElement;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
 
 public abstract class AbstractRutaCondition extends RutaElement {
@@ -32,8 +31,8 @@ public abstract class AbstractRutaCondit
     super();
   }
 
-  public abstract EvaluatedCondition eval(AnnotationFS annotation, RuleElement element,
-          RutaStream stream, InferenceCrowd crowd);
+  public abstract EvaluatedCondition eval(MatchContext context, RutaStream stream,
+          InferenceCrowd crowd);
 
   @Override
   public String toString() {

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/AfterCondition.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/AfterCondition.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/AfterCondition.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/AfterCondition.java Fri Nov  6 14:19:28 2015
@@ -28,6 +28,7 @@ import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.list.TypeListExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
 import org.apache.uima.ruta.rule.EvaluatedCondition;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
 
@@ -42,8 +43,9 @@ public class AfterCondition extends Type
   }
 
   @Override
-  public EvaluatedCondition eval(AnnotationFS annotation, RuleElement element, RutaStream stream,
-          InferenceCrowd crowd) {
+  public EvaluatedCondition eval(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		AnnotationFS annotation = context.getAnnotation();
+		RuleElement element = context.getElement();
     if (!isWorkingOnList()) {
       Type t = type.getType(element.getParent());
       boolean result = check(annotation, stream, t);

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/AndCondition.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/AndCondition.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/AndCondition.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/AndCondition.java Fri Nov  6 14:19:28 2015
@@ -22,10 +22,9 @@ package org.apache.uima.ruta.condition;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.uima.cas.text.AnnotationFS;
 import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.rule.EvaluatedCondition;
-import org.apache.uima.ruta.rule.RuleElement;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
 
 public class AndCondition extends ComposedRutaCondition {
@@ -35,13 +34,13 @@ public class AndCondition extends Compos
   }
 
   @Override
-  public EvaluatedCondition eval(AnnotationFS currentSymbol, RuleElement element,
-          RutaStream symbolStream, InferenceCrowd crowd) {
+  public EvaluatedCondition eval(MatchContext context, RutaStream symbolStream,
+          InferenceCrowd crowd) {
     boolean result = true;
     List<EvaluatedCondition> evals = new ArrayList<EvaluatedCondition>();
     for (AbstractRutaCondition each : conditions) {
       crowd.beginVisit(each, null);
-      EvaluatedCondition eval = each.eval(currentSymbol, element, symbolStream, crowd);
+      EvaluatedCondition eval = each.eval(context, symbolStream, crowd);
       crowd.endVisit(each, null);
       result &= eval.isValue();
       evals.add(eval);

Modified: uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/BeforeCondition.java
URL: http://svn.apache.org/viewvc/uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/BeforeCondition.java?rev=1712968&r1=1712967&r2=1712968&view=diff
==============================================================================
--- uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/BeforeCondition.java (original)
+++ uima/ruta/branches/UIMA-4408/ruta-core/src/main/java/org/apache/uima/ruta/condition/BeforeCondition.java Fri Nov  6 14:19:28 2015
@@ -28,6 +28,7 @@ import org.apache.uima.ruta.RutaStream;
 import org.apache.uima.ruta.expression.list.TypeListExpression;
 import org.apache.uima.ruta.expression.type.TypeExpression;
 import org.apache.uima.ruta.rule.EvaluatedCondition;
+import org.apache.uima.ruta.rule.MatchContext;
 import org.apache.uima.ruta.rule.RuleElement;
 import org.apache.uima.ruta.visitor.InferenceCrowd;
 
@@ -42,8 +43,9 @@ public class BeforeCondition extends Typ
   }
 
   @Override
-  public EvaluatedCondition eval(AnnotationFS annotation, RuleElement element, RutaStream stream,
-          InferenceCrowd crowd) {
+  public EvaluatedCondition eval(MatchContext context, RutaStream stream, InferenceCrowd crowd) {
+		AnnotationFS annotation = context.getAnnotation();
+		RuleElement element = context.getElement();
     if (!isWorkingOnList()) {
       Type t = type.getType(element.getParent());
       boolean result = check(annotation, stream, t);