org.eigenbase.rex
Class RexTransformer

java.lang.Object
  extended by org.eigenbase.rex.RexTransformer

public class RexTransformer
extends Object

Takes a tree of RexNode objects and transforms it into another in one sense equivalent tree. Nodes in tree will be modified and hence tree will not remain unchanged.

NOTE: You must validate the tree of RexNodes before using this class.

Since:
Mar 8, 2004
Version:
$Id: //open/dev/farrago/src/org/eigenbase/rex/RexTransformer.java#16 $
Author:
wael

Field Summary
private  int isParentsCount
           
private  RexBuilder rexBuilder
           
private  RexNode root
           
private  Set<SqlOperator> transformableOperators
           
 
Constructor Summary
RexTransformer(RexNode root, RexBuilder rexBuilder)
           
 
Method Summary
private  boolean isBoolean(RexNode node)
           
private  boolean isNullable(RexNode node)
           
private  boolean isTransformable(RexNode node)
           
 RexNode transformNullSemantics()
           
private  RexNode transformNullSemantics(RexNode node)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

root

private RexNode root

rexBuilder

private final RexBuilder rexBuilder

isParentsCount

private int isParentsCount

transformableOperators

private final Set<SqlOperator> transformableOperators
Constructor Detail

RexTransformer

public RexTransformer(RexNode root,
                      RexBuilder rexBuilder)
Method Detail

isBoolean

private boolean isBoolean(RexNode node)

isNullable

private boolean isNullable(RexNode node)

isTransformable

private boolean isTransformable(RexNode node)

transformNullSemantics

public RexNode transformNullSemantics()

transformNullSemantics

private RexNode transformNullSemantics(RexNode node)