Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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

    java.lang.Object
      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

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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