jd.xml.xpath.expr.visitor
Class ExprSimplifier

java.lang.Object
  extended byjd.xml.xpath.expr.visitor.ExprSimplifier
All Implemented Interfaces:
ExpressionVisitor

public class ExprSimplifier
extends Object
implements ExpressionVisitor

ExprSimplifier simplifies a Expression by evaluating all constant subtrees.


Constructor Summary
ExprSimplifier()
           
 
Method Summary
 void add(Expression expr, Expression lhs, Expression rhs)
           
 void and(Expression expr, Expression lhs, Expression rhs)
           
 void compare(Expression expr, Expression lhs, Equality equality, Expression rhs)
          Called by a equality expression.
 void compare(Expression expr, Expression lhs, Relation relation, Expression rhs)
           
 void composedPath(Expression expr, Expression[] steps)
           
 void composedPath(Expression expr, Expression lhs, Expression rhs)
           
 void constant(Expression expr, XObject object)
           
 void divide(Expression expr, Expression lhs, Expression rhs)
           
 void function(Expression expr, String name, Expression[] args)
           
 void invalid(Expression expr, String message, String error)
           
 void locationStep(Expression expr, Axis axis, NodeTest nodeTest)
           
 void locationStep(Expression expr, Axis axis, NodeTest nodeTest, Expression predicate, boolean useForwardProximity, boolean isUniqueFilter)
           
 void modulo(Expression expr, Expression lhs, Expression rhs)
           
 void multiply(Expression expr, Expression lhs, Expression rhs)
           
 void negate(Expression expr, Expression innerExpr)
           
 void or(Expression expr, Expression lhs, Expression rhs)
           
 void parenthesis(Expression expr, Expression innerExpr)
           
 void predicate(Expression expr, Expression nodeSetExpr, Expression predicate, boolean useForwardProximity)
           
 void root(Expression expr)
           
 Expression simplify(Expression expr)
           
 void subtract(Expression expr, Expression lhs, Expression rhs)
           
 void union(Expression expr, Expression lhs, Expression rhs)
           
 void variableReference(Expression expr, VariableName name)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExprSimplifier

public ExprSimplifier()
Method Detail

simplify

public Expression simplify(Expression expr)

add

public void add(Expression expr,
                Expression lhs,
                Expression rhs)
Specified by:
add in interface ExpressionVisitor

and

public void and(Expression expr,
                Expression lhs,
                Expression rhs)
Specified by:
and in interface ExpressionVisitor

compare

public void compare(Expression expr,
                    Expression lhs,
                    Equality equality,
                    Expression rhs)
Description copied from interface: ExpressionVisitor
Called by a equality expression.

Specified by:
compare in interface ExpressionVisitor
Parameters:
expr - the equality expression
lhs - the lhs operand
rhs - the rhs operand

compare

public void compare(Expression expr,
                    Expression lhs,
                    Relation relation,
                    Expression rhs)
Specified by:
compare in interface ExpressionVisitor

composedPath

public void composedPath(Expression expr,
                         Expression lhs,
                         Expression rhs)
Specified by:
composedPath in interface ExpressionVisitor

composedPath

public void composedPath(Expression expr,
                         Expression[] steps)
Specified by:
composedPath in interface ExpressionVisitor

constant

public void constant(Expression expr,
                     XObject object)
Specified by:
constant in interface ExpressionVisitor

divide

public void divide(Expression expr,
                   Expression lhs,
                   Expression rhs)
Specified by:
divide in interface ExpressionVisitor

function

public void function(Expression expr,
                     String name,
                     Expression[] args)
Specified by:
function in interface ExpressionVisitor

invalid

public void invalid(Expression expr,
                    String message,
                    String error)
Specified by:
invalid in interface ExpressionVisitor

locationStep

public void locationStep(Expression expr,
                         Axis axis,
                         NodeTest nodeTest)
Specified by:
locationStep in interface ExpressionVisitor

locationStep

public void locationStep(Expression expr,
                         Axis axis,
                         NodeTest nodeTest,
                         Expression predicate,
                         boolean useForwardProximity,
                         boolean isUniqueFilter)
Specified by:
locationStep in interface ExpressionVisitor

modulo

public void modulo(Expression expr,
                   Expression lhs,
                   Expression rhs)
Specified by:
modulo in interface ExpressionVisitor

multiply

public void multiply(Expression expr,
                     Expression lhs,
                     Expression rhs)
Specified by:
multiply in interface ExpressionVisitor

negate

public void negate(Expression expr,
                   Expression innerExpr)
Specified by:
negate in interface ExpressionVisitor

or

public void or(Expression expr,
               Expression lhs,
               Expression rhs)
Specified by:
or in interface ExpressionVisitor

parenthesis

public void parenthesis(Expression expr,
                        Expression innerExpr)
Specified by:
parenthesis in interface ExpressionVisitor

predicate

public void predicate(Expression expr,
                      Expression nodeSetExpr,
                      Expression predicate,
                      boolean useForwardProximity)
Specified by:
predicate in interface ExpressionVisitor

root

public void root(Expression expr)
Specified by:
root in interface ExpressionVisitor

subtract

public void subtract(Expression expr,
                     Expression lhs,
                     Expression rhs)
Specified by:
subtract in interface ExpressionVisitor

union

public void union(Expression expr,
                  Expression lhs,
                  Expression rhs)
Specified by:
union in interface ExpressionVisitor

variableReference

public void variableReference(Expression expr,
                              VariableName name)
Specified by:
variableReference in interface ExpressionVisitor