org.apache.commons.jxpath.ri.compiler
Class Expression

java.lang.Object
  extended by org.apache.commons.jxpath.ri.compiler.Expression
Direct Known Subclasses:
Constant, Operation, Path, VariableReference

public abstract class Expression
extends Object

Common superclass for several types of nodes in the parse tree. Provides APIs for optimization of evaluation of expressions. Specifically, an expression only needs to executed once during the evaluation of an xpath if that expression is context-independent. Expression.isContextDependent() provides that hint.

Version:
$Revision: 652845 $ $Date: 2008-05-02 12:46:46 -0500 (Fri, 02 May 2008) $
Author:
Dmitri Plotnikov

Nested Class Summary
static class Expression.PointerIterator
          Pointer iterator
static class Expression.ValueIterator
          Value Iterator
 
Field Summary
protected static Double NOT_A_NUMBER
          NaN
protected static Double ONE
          one
protected static Double ZERO
          zero
 
Constructor Summary
Expression()
           
 
Method Summary
abstract  Object compute(EvalContext context)
          Evaluates the expression.
abstract  boolean computeContextDependent()
          Implemented by subclasses and result is cached by isContextDependent()
abstract  Object computeValue(EvalContext context)
          Evaluates the expression.
 boolean isContextDependent()
          Returns true if this expression should be re-evaluated each time the current position in the context changes.
 Iterator iterate(EvalContext context)
          Iterate over the values from the specified context.
 Iterator iteratePointers(EvalContext context)
          Iterate over the pointers from the specified context.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ZERO

protected static final Double ZERO
zero


ONE

protected static final Double ONE
one


NOT_A_NUMBER

protected static final Double NOT_A_NUMBER
NaN

Constructor Detail

Expression

public Expression()
Method Detail

isContextDependent

public boolean isContextDependent()
Returns true if this expression should be re-evaluated each time the current position in the context changes.

Returns:
boolean

computeContextDependent

public abstract boolean computeContextDependent()
Implemented by subclasses and result is cached by isContextDependent()

Returns:
calculated context-dependentness as boolean

computeValue

public abstract Object computeValue(EvalContext context)
Evaluates the expression. If the result is a node set, returns the first element of the node set.

Parameters:
context - evaluation context
Returns:
Object

compute

public abstract Object compute(EvalContext context)
Evaluates the expression. If the result is a node set, returns the first element of the node set.

Parameters:
context - evaluation context
Returns:
Object

iterate

public Iterator iterate(EvalContext context)
Iterate over the values from the specified context.

Parameters:
context - evaluation context
Returns:
value Iterator

iteratePointers

public Iterator iteratePointers(EvalContext context)
Iterate over the pointers from the specified context.

Parameters:
context - evaluation context
Returns:
pointer Iterator


Copyright © 2001-2008 The Apache Software Foundation. All Rights Reserved.