## org.apache.commons.jelly.expression
Class ExpressionSupport

    java.lang.Object
      org.apache.commons.jelly.expression.ExpressionSupport

All Implemented Interfaces:
  Expression

Direct Known Subclasses:
  CompositeExpression, ConstantExpression, JexlExpression, XPathExpression

    public abstract class ExpressionSupport

extends java.lang.Object
implements Expression

`ExpressionSupport` an abstract base class for Expression implementations which provides default implementations of some of the typesafe evaluation methods.

Version:
  $Revision: 155420 $
Author:
  James Strachan

Field Summary
`protected static java.util.Iterator` `EMPTY_ITERATOR`

Constructor Summary
`ExpressionSupport()`

Method Summary
`boolean` `evaluateAsBoolean(JellyContext context)` Evaluates the expression with the given context coercing the result to be a boolean.
`java.util.Iterator` `evaluateAsIterator(JellyContext context)` Evaluates the expression with the given context coercing the result to be an Iterator.
`java.lang.String` `evaluateAsString(JellyContext context)` Evaluates the expression with the given context coercing the result to be a String.
`java.lang.Object` `evaluateRecurse(JellyContext context)` This method evaluates the expression until a value (a non-Expression) object is returned.

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

Methods inherited from interface org.apache.commons.jelly.expression.Expression
`evaluate, getExpressionText`

Field Detail

### EMPTY_ITERATOR

    protected static final java.util.Iterator EMPTY_ITERATOR

Constructor Detail

### ExpressionSupport

    public ExpressionSupport()

Method Detail

### evaluateAsString

    public java.lang.String evaluateAsString(JellyContext context)

  Description copied from interface: `Expression`
  Evaluates the expression with the given context coercing the result to be a String.

  Specified by:
    `evaluateAsString` in interface `Expression`

### evaluateRecurse

    public java.lang.Object evaluateRecurse(JellyContext context)

  Description copied from interface: `Expression`
  This method evaluates the expression until a value (a non-Expression) object is returned. If the expression returns another expression, then the nested expression is evaluated.

  Sometimes when Jelly is used inside Maven the value of an expression can actually be another expression. For example if a properties file is read, the values of variables can actually be expressions themselves.

  e.g. ${foo.bar} can lookup "foo.bar" in a Maven context which could actually be another expression.

  So using this method, nested expressions can be evaluated to the actual underlying value object.

  Specified by:
    `evaluateRecurse` in interface `Expression`

### evaluateAsBoolean

    public boolean evaluateAsBoolean(JellyContext context)

  Description copied from interface: `Expression`
  Evaluates the expression with the given context coercing the result to be a boolean.

  Specified by:
    `evaluateAsBoolean` in interface `Expression`

### evaluateAsIterator

    public java.util.Iterator evaluateAsIterator(JellyContext context)

  Description copied from interface: `Expression`
  Evaluates the expression with the given context coercing the result to be an Iterator.

  Specified by:
    `evaluateAsIterator` in interface `Expression`

Copyright © 2002-2005 Apache Software Foundation. All Rights Reserved.