org.apache.commons.jelly.expression
Class ExpressionSupport

java.lang.Object
  extended by org.apache.commons.jelly.expression.ExpressionSupport
All Implemented Interfaces:
Expression
Direct Known Subclasses:
CompositeExpression, ConstantExpression, JexlExpression, JexlExpressionFactory.ExpressionSupportLocal, 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: 1807798 $
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