## org.apache.taglibs.standard.lang.support
Interface ExpressionEvaluator

All Known Implementing Classes:
  Evaluator

    public interface ExpressionEvaluator

The interface for an expression-language validator and evaluator. Classes that implement an expression language expose their functionality via this interface.

The validate() and evaluate() methods must be thread-safe. That is, multiple threads may call these methods on the same ExpressionEvaluator object simultaneously. Implementations should synchronize access if they depend on transient state. Implementations should not, however, assume that only one object of each ExpressionEvaluator type will be instantiated; global caching should therefore be static. No release() mechanism or robust lifecycle is specified, for language-interpreter pluggability is experimental in EA2.

WARNING: This class supports experimentation for the EA2 release of JSTL; it is not expected to be part of the final RI or specification.

Author:
  Shawn Bayern (based exactly on rev1 draft)

Method Summary
`Object` `evaluate(String attributeName, String expression, Class expectedType, Tag tag, PageContext pageContext)` Evaluates the expression at request time.
`String` `validate(String attributeName, String expression)` Translation time validation of an expression.

Method Detail

### validate

    String validate(String attributeName,
                    String expression)

  Translation time validation of an expression. This method will return a null String if the expression is valid; otherwise an error message.

### evaluate

    Object evaluate(String attributeName,
                    String expression,
                    Class expectedType,
                    Tag tag,
                    PageContext pageContext)
                    throws JspException

  Evaluates the expression at request time.

  Throws:
    `JspException`

Copyright © 2008 Mort Bay Consulting. All Rights Reserved.