View Javadoc

    1   /**
    2    *
    3    * Copyright 2003-2004 The Apache Software Foundation
    4    *
    5    *  Licensed under the Apache License, Version 2.0 (the "License");
    6    *  you may not use this file except in compliance with the License.
    7    *  You may obtain a copy of the License at
    8    *
    9    *     http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   *  Unless required by applicable law or agreed to in writing, software
    12   *  distributed under the License is distributed on an "AS IS" BASIS,
    13   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14   *  See the License for the specific language governing permissions and
    15   *  limitations under the License.
    16   */
    17
    18  //
    19  // This source code implements specifications defined by the Java
    20  // Community Process. In order to remain compliant with the specification
    21  // DO NOT add / change / or delete method signatures!
    22  //
    23
    24  package javax.servlet.jsp.el;
    25
    26
    27  /**
    28   * <p>The abstract class for a prepared expression.</p>
    29   *
    30   * <p>An instance of an Expression can be obtained via from an
    31   * ExpressionEvaluator instance.</p>
    32   *
    33   * <p>An Expression may or not have done a syntactic parse of the expression.
    34   * A client invoking the evaluate() method should be ready for the case
    35   * where ELParseException exceptions are raised. </p>
    36   *
    37   * @since 2.0
    38   */
    39  public abstract class Expression {
    40
    41      /**
    42       * Evaluates an expression that was previously prepared.  In some
    43       * implementations preparing an expression involves full syntactic
    44       * validation, but others may not do so.  Evaluating the expression may
    45       * raise an ELParseException as well as other ELExceptions due to
    46       * run-time evaluation.
    47       *
    48       * @param vResolver A VariableResolver instance that can be used at
    49       *   runtime to resolve the name of implicit objects into Objects.
    50       * @return The result of the expression evaluation.
    51       *
    52       * @exception ELException Thrown if the expression evaluation failed.
    53       */
    54      public abstract Object evaluate( VariableResolver vResolver )
    55          throws ELException;
    56  }
    57