Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/impl/RuleApplicationImpl.java')
-rw-r--r--plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/impl/RuleApplicationImpl.java16
1 files changed, 5 insertions, 11 deletions
diff --git a/plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/impl/RuleApplicationImpl.java b/plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/impl/RuleApplicationImpl.java
index ca5d9bb57..8a89c424a 100644
--- a/plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/impl/RuleApplicationImpl.java
+++ b/plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/impl/RuleApplicationImpl.java
@@ -9,7 +9,6 @@
*/
package org.eclipse.emf.henshin.interpreter.impl;
-import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.henshin.interpreter.ApplicationMonitor;
import org.eclipse.emf.henshin.interpreter.Assignment;
import org.eclipse.emf.henshin.interpreter.Change;
@@ -22,6 +21,8 @@ import org.eclipse.emf.henshin.model.ParameterKind;
import org.eclipse.emf.henshin.model.Rule;
import org.eclipse.emf.henshin.model.Unit;
+import static org.eclipse.emf.henshin.interpreter.util.InterpreterUtil.areNecessaryParametersSet;
+
/**
* Default {@link RuleApplication} implementation.
*
@@ -87,6 +88,9 @@ public class RuleApplicationImpl extends AbstractApplicationImpl implements Rule
change = null;
resultMatch = null;
}
+
+ areNecessaryParametersSet(unit.getParameters(), unit.getName(), partialMatch);
+
// Do we need to derive a complete match?
if (completeMatch==null) {
completeMatch = engine.findMatches((Rule) unit, graph, partialMatch).iterator().next();
@@ -214,16 +218,6 @@ public class RuleApplicationImpl extends AbstractApplicationImpl implements Rule
partialMatch = new MatchImpl(assignment, false);
}
- if(partialMatch != null) {
- EList<Parameter> unitParameters = unit.getParameters();
- for (Parameter param : unitParameters) {
- ParameterKind kind = param.getKind();
- if((kind == ParameterKind.INOUT || kind == ParameterKind.IN) && partialMatch.getParameterValue(param) == null) {
- throw new IllegalStateException(unit.getName() + ": " + kind + " Parameter " + param.getName() + " not set");
- }
- }
- }
-
this.completeMatch = null;
this.resultMatch = null;
this.change = null;

Back to the top