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.jexl2
Class UnifiedJEXL.Expression

    java.lang.Object
      org.apache.commons.jexl2.UnifiedJEXL.Expression

Enclosing class:
  UnifiedJEXL

    public abstract class UnifiedJEXL.Expression

extends Object

The abstract base class for all expressions, immediate '${...}' and deferred '#{...}'.

Field Summary
`protected UnifiedJEXL.Expression` | `source` The source of this expression (see `prepare(org.apache.commons.jexl2.JexlContext)`).

Method Summary
`String` | `asString()` Generates this expression's string representation.
`abstract StringBuilder` | `asString(StringBuilder strb)` Adds this expression's string representation to a StringBuilder.
`protected abstract Object` | `evaluate(Interpreter interpreter)` Intreprets a sub-expression.
`Object` | `evaluate(JexlContext context)` Evaluates this expression.
`UnifiedJEXL.Expression` | `getSource()` Retrieves this expression's source expression.
`Set<List<String>>` | `getVariables()` Gets the list of variables accessed by this expression.
`protected void` | `getVariables(Set<List<String>> refs)` Fills up the list of variables accessed by this expression.
`boolean` | `isDeferred()` Checks whether this expression is deferred.
`boolean` | `isImmediate()` Checks whether this expression is immediate.
`protected UnifiedJEXL.Expression` | `prepare(Interpreter interpreter)` Prepares a sub-expression for interpretation.
`UnifiedJEXL.Expression` | `prepare(JexlContext context)` Evaluates the immediate sub-expressions.
`String` | `toString()` Formats this expression, adding its source string representation in comments if available: 'expression /*= source *\/'' .

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### source

    protected final UnifiedJEXL.Expression source

  The source of this expression (see `prepare(org.apache.commons.jexl2.JexlContext)`).

Method Detail

### isImmediate

    public boolean isImmediate()

  Checks whether this expression is immediate.

  Returns:
    true if immediate, false otherwise

### isDeferred

    public final boolean isDeferred()

  Checks whether this expression is deferred.

  Returns:
    true if deferred, false otherwise

### toString

    public String toString()

  Formats this expression, adding its source string representation in comments if available: 'expression /*= source *\/'' . Note: do not override; will be made final in a future release.

  Overrides:
    `toString` in class `Object`
  Returns:
    the formatted expression string

### asString

    public String asString()

  Generates this expression's string representation.

  Returns:
    the string representation

### asString

    public abstract StringBuilder asString(StringBuilder strb)

  Adds this expression's string representation to a StringBuilder.

  Parameters:
    `strb` - the builder to fill
  Returns:
    the builder argument

### getVariables

    public Set<List<String>> getVariables()

  Gets the list of variables accessed by this expression.

  This method will visit all nodes of the sub-expressions and extract all variables whether they are written in 'dot' or 'bracketed' notation. (a.b is equivalent to a['b']).

  Returns:
    the set of variables, each as a list of strings (ant-ish variables use more than 1 string) or the empty set if no variables are used
  Since:
    2.1

### getVariables

    protected void getVariables(Set<List<String>> refs)

  Fills up the list of variables accessed by this expression.

  Parameters:
    `refs` - the set of variable being filled
  Since:
    2.1

### prepare

    public UnifiedJEXL.Expression prepare(JexlContext context)

  Evaluates the immediate sub-expressions.

  When the expression is dependant upon immediate and deferred sub-expressions, evaluates the immediate sub-expressions with the context passed as parameter and returns this expression deferred form.

  In effect, this binds the result of the immediate sub-expressions evaluation in the context, allowing to differ evaluation of the remaining (deferred) expression within another context. This only has an effect to nested & composite expressions that contain differed & immediate sub-expressions.

  If the underlying JEXL engine is silent, errors will be logged through its logger as warning.

  Note: do not override; will be made final in a future release.

  Parameters:
    `context` - the context to use for immediate expression evaluations
  Returns:
    an expression or null if an error occurs and the `JexlEngine` is running in silent mode
  Throws:
    `UnifiedJEXL.Exception` - if an error occurs and the `JexlEngine` is not in silent mode

### evaluate

    public Object evaluate(JexlContext context)

  Evaluates this expression.

  If the underlying JEXL engine is silent, errors will be logged through its logger as warning.

  Note: do not override; will be made final in a future release.

  Parameters:
    `context` - the variable context
  Returns:
    the result of this expression evaluation or null if an error occurs and the `JexlEngine` is running in silent mode
  Throws:
    `UnifiedJEXL.Exception` - if an error occurs and the `JexlEngine` is not silent

### getSource

    public final UnifiedJEXL.Expression getSource()

  Retrieves this expression's source expression. If this expression was prepared, this allows to retrieve the original expression that lead to it. Other expressions return themselves.

  Returns:
    the source expression

### prepare

    protected UnifiedJEXL.Expression prepare(Interpreter interpreter)

  Prepares a sub-expression for interpretation.

  Parameters:
    `interpreter` - a JEXL interpreter
  Returns:
    a prepared expression
  Throws:
    `JexlException` - (only for nested & composite)

### evaluate

    protected abstract Object evaluate(Interpreter interpreter)

  Intreprets a sub-expression.

  Parameters:
    `interpreter` - a JEXL interpreter
  Returns:
    the result of interpretation
  Throws:
    `JexlException` - (only for nested & composite)

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-2011 The Apache Software Foundation. All Rights Reserved.