net.sf.farrago.fennel.rel
Class CalcRelSplitter.RelType

java.lang.Object
  extended by net.sf.farrago.fennel.rel.CalcRelSplitter.RelType
Direct Known Subclasses:
FarragoAutoCalcRule.FennelRelType, FarragoAutoCalcRule.JavaRelType
Enclosing class:
CalcRelSplitter

public abstract static class CalcRelSplitter.RelType
extends Object


Field Summary
private  String name
           
 
Constructor Summary
CalcRelSplitter.RelType(String name)
           
 
Method Summary
protected abstract  boolean canImplement(RexCall call)
           
protected abstract  boolean canImplement(RexDynamicParam param)
           
protected abstract  boolean canImplement(RexFieldAccess field)
           
protected abstract  boolean canImplement(RexLiteral literal)
           
 boolean canImplement(RexNode expr, boolean condition)
          Returns whether this RelType can implement a given expression.
 boolean canImplement(RexProgram program)
          Returns whether this tester's RelType can implement a given program.
protected  RelNode makeRel(RelOptCluster cluster, RelTraitSet traits, RelDataType rowType, RelNode child, RexProgram program)
           
protected  boolean supportsCondition()
           
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

name

private final String name
Constructor Detail

CalcRelSplitter.RelType

public CalcRelSplitter.RelType(String name)
Method Detail

toString

public String toString()
Overrides:
toString in class Object

canImplement

protected abstract boolean canImplement(RexFieldAccess field)

canImplement

protected abstract boolean canImplement(RexDynamicParam param)

canImplement

protected abstract boolean canImplement(RexLiteral literal)

canImplement

protected abstract boolean canImplement(RexCall call)

supportsCondition

protected boolean supportsCondition()

makeRel

protected RelNode makeRel(RelOptCluster cluster,
                          RelTraitSet traits,
                          RelDataType rowType,
                          RelNode child,
                          RexProgram program)

canImplement

public boolean canImplement(RexNode expr,
                            boolean condition)
Returns whether this RelType can implement a given expression.

Parameters:
expr - Expression
condition - Whether expression is a condition
Returns:
Whether this RelType can implement a given expression.

canImplement

public boolean canImplement(RexProgram program)
Returns whether this tester's RelType can implement a given program.

Parameters:
program - Program
Returns:
Whether this tester's RelType can implement a given program.