View Javadoc

    1   /*
    2    * $Id: EvalHelper.java 471754 2006-11-06 14:55:09Z husted $
    3    *
    4    * Licensed to the Apache Software Foundation (ASF) under one
    5    * or more contributor license agreements.  See the NOTICE file
    6    * distributed with this work for additional information
    7    * regarding copyright ownership.  The ASF licenses this file
    8    * to you under the Apache License, Version 2.0 (the
    9    * "License"); you may not use this file except in compliance
    10   * with the License.  You may obtain a copy of the License at
    11   *
    12   *  http://www.apache.org/licenses/LICENSE-2.0
    13   *
    14   * Unless required by applicable law or agreed to in writing,
    15   * software distributed under the License is distributed on an
    16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    17   * KIND, either express or implied.  See the License for the
    18   * specific language governing permissions and limitations
    19   * under the License.
    20   */
    21  package org.apache.strutsel.taglib.utils;
    22
    23  import org.apache.taglibs.standard.lang.support.ExpressionEvaluatorManager;
    24
    25  import javax.servlet.jsp.JspException;
    26  import javax.servlet.jsp.PageContext;
    27  import javax.servlet.jsp.tagext.Tag;
    28
    29  /**
    30   * This class is used in the <code>evaluateExpressions</code> method of each
    31   * Tag class.  It is used to process the original attribute value through the
    32   * JSTL EL engine to produce an evaluated value.  It provides functions to
    33   * evaluate the expression assuming it is an Object, String, Integer, or
    34   * Boolean result.
    35   */
    36  public final class EvalHelper {
    37      private EvalHelper() {
    38      }
    39
    40      /**
    41       * Evaluates the attribute value in the JSTL EL engine, returning the raw
    42       * Object value of the evaluated expression.  If the original expression
    43       * is null, or the resulting value is null, it will return null.
    44       */
    45      public static Object eval(String attrName, String attrValue, Tag tagObject,
    46          PageContext pageContext)
    47          throws JspException {
    48          Object result = null;
    49
    50          if (attrValue != null) {
    51              result =
    52                  ExpressionEvaluatorManager.evaluate(attrName, attrValue,
    53                      Object.class, tagObject, pageContext);
    54          }
    55
    56          return (result);
    57      }
    58
    59      /**
    60       * Evaluates the attribute value in the JSTL EL engine, assuming the
    61       * resulting value is a String object.  If the original expression is
    62       * null, or the resulting value is null, it will return null.
    63       */
    64      public static String evalString(String attrName, String attrValue,
    65          Tag tagObject, PageContext pageContext)
    66          throws JspException {
    67          Object result = null;
    68
    69          if (attrValue != null) {
    70              result =
    71                  ExpressionEvaluatorManager.evaluate(attrName, attrValue,
    72                      String.class, tagObject, pageContext);
    73          }
    74
    75          return ((String) result);
    76      }
    77
    78      /**
    79       * Evaluates the attribute value in the JSTL EL engine, assuming the
    80       * resulting value is an Integer object.  If the original expression is
    81       * null, or the resulting value is null, it will return null.
    82       */
    83      public static Integer evalInteger(String attrName, String attrValue,
    84          Tag tagObject, PageContext pageContext)
    85          throws JspException {
    86          Object result = null;
    87
    88          if (attrValue != null) {
    89              result =
    90                  ExpressionEvaluatorManager.evaluate(attrName, attrValue,
    91                      Integer.class, tagObject, pageContext);
    92          }
    93
    94          return ((Integer) result);
    95      }
    96
    97      /**
    98       * Evaluates the attribute value in the JSTL EL engine, assuming the
    99       * resulting value is an Boolean object.  If the original expression is
    100      * null, or the resulting value is null, it will return null.
    101      */
    102     public static Boolean evalBoolean(String attrName, String attrValue,
    103         Tag tagObject, PageContext pageContext)
    104         throws JspException {
    105         Object result = null;
    106
    107         if (attrValue != null) {
    108             result =
    109                 ExpressionEvaluatorManager.evaluate(attrName, attrValue,
    110                     Boolean.class, tagObject, pageContext);
    111         }
    112
    113         return ((Boolean) result);
    114     }
    115 }