net.sf.saffron.opt
Class VolcanoRuleCall
java.lang.Object
|
+--net.sf.saffron.opt.VolcanoRuleCall
- Direct Known Subclasses:
- VolcanoPlanner.DeferringRuleCall, VolcanoRuleMatch
- public class VolcanoRuleCall
- extends Object
A VolcanoRuleCall
is an invocation of a VolcanoRule
with a set of relational expression
s as arguments.
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
operand0
public final RuleOperand operand0
rule
public final VolcanoRule rule
rels
public final SaffronRel[] rels
VolcanoRuleCall
protected VolcanoRuleCall(RuleOperand operand,
SaffronRel[] rels)
VolcanoRuleCall
VolcanoRuleCall(RuleOperand operand)
getPlanner
public SaffronPlanner getPlanner()
transformTo
public void transformTo(SaffronRel rel)
- Called by the rule whenever it finds a match.
onMatch
protected void onMatch()
- Called when all operands have matched.
getRule
VolcanoRule getRule()
match
void match(SaffronRel rel)
- Applies this rule, with a given relexp in the first slot.
- Pre-condition:
- operand0.matches(rel)
matchRecurse
private void matchRecurse(int solve)
- Pre-condition:
- solve > 0, solve <= rule.operands.length