Package org.apache.commons.jxpath.ri.compiler

# Class ExpressionPath

java.lang.Object
org.apache.commons.jxpath.ri.compiler.Expression
org.apache.commons.jxpath.ri.compiler.Path
org.apache.commons.jxpath.ri.compiler.ExpressionPath

public class ExpressionPath extends Path
An element of the parse tree that represents an expression path, which is a path that starts with an expression like a function call: `getFoo(.) /bar`.

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class org.apache.commons.jxpath.ri.compiler.Expression

  `Expression.PointerIterator, Expression.ValueIterator`

- ## Field Summary

  ### Fields inherited from class org.apache.commons.jxpath.ri.compiler.Expression

  `NOT_A_NUMBER, ONE, ZERO`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ExpressionPath(Expression expression, Expression[] predicates, Step[] steps)`
  Constructs a new ExpressionPath.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `compute(EvalContext context)`
  Evaluates the expression.
  `boolean`
  `computeContextDependent()`
  Returns true if the root expression or any of the predicates or the path steps are context dependent.
  `Object`
  `computeValue(EvalContext context)`
  Evaluates the expression.
  `protected Object`
  `expressionPath(EvalContext evalContext, boolean firstMatch)`
  Walks an expression path (a path that starts with an expression)
  `Expression`
  `getExpression()`
  Gets the expression.
  `Expression[]`
  `getPredicates()`
  Predicates are the expressions in brackets that may follow the root expression of the path.
  `boolean`
  `isSimpleExpressionPath()`
  Recognized paths formatted as `$x[3]/foo[2]`.
  `String`
  `toString()`

  ### Methods inherited from class org.apache.commons.jxpath.ri.compiler.Path

  `areBasicPredicates, buildContextChain, createContextForStep, evalSteps, getSingleNodePointerForSteps, getSteps, isSimplePath, isSimpleStep, searchForPath`

  ### Methods inherited from class org.apache.commons.jxpath.ri.compiler.Expression

  `isContextDependent, iterate, iteratePointers`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### ExpressionPath

    public ExpressionPath(Expression expression, Expression[] predicates, Step[] steps)
    Constructs a new ExpressionPath.
    Parameters:
      `expression` - Expression
      `predicates` - to execute
      `steps` - navigation

- ## Method Details

  - ### compute

    public Object compute(EvalContext context)
    Description copied from class: `Expression`
    Evaluates the expression. If the result is a node set, returns the first element of the node set.
    Specified by:
      `compute` in class `Expression`
    Parameters:
      `context` - evaluation context
    Returns:
      Object

  - ### computeContextDependent

    public boolean computeContextDependent()
    Returns true if the root expression or any of the predicates or the path steps are context dependent.
    Overrides:
      `computeContextDependent` in class `Path`
    Returns:
      boolean

  - ### computeValue

    public Object computeValue(EvalContext context)
    Description copied from class: `Expression`
    Evaluates the expression. If the result is a node set, returns the first element of the node set.
    Specified by:
      `computeValue` in class `Expression`
    Parameters:
      `context` - evaluation context
    Returns:
      Object

  - ### expressionPath

    protected Object expressionPath(EvalContext evalContext, boolean firstMatch)
    Walks an expression path (a path that starts with an expression)
    Parameters:
      `evalContext` - base context
      `firstMatch` - whether to return the first match found
    Returns:
      Object found

  - ### getExpression

    public Expression getExpression()
    Gets the expression.
    Returns:
      Expression

  - ### getPredicates

    public Expression[] getPredicates()
    Predicates are the expressions in brackets that may follow the root expression of the path.
    Returns:
      Expression[]

  - ### isSimpleExpressionPath

    public boolean isSimpleExpressionPath()
    Recognized paths formatted as `$x[3]/foo[2]`. The evaluation of such "simple" paths is optimized and streamlined.
    Returns:
      boolean

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`