1 /* 2 * Copyright (c) 1998-2006 Caucho Technology -- all rights reserved 3 * 4 * This file is part of Resin(R) Open Source 5 * 6 * Each copy or derived work must preserve the copyright notice and this 7 * notice unmodified. 8 * 9 * Resin Open Source is free software; you can redistribute it and/or modify 10 * it under the terms of the GNU General Public License as published by 11 * the Free Software Foundation; either version 2 of the License, or 12 * (at your option) any later version. 13 * 14 * Resin Open Source is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty 17 * of NON-INFRINGEMENT. See the GNU General Public License for more 18 * details. 19 * 20 * You should have received a copy of the GNU General Public License 21 * along with Resin Open Source; if not, write to the 22 * Free SoftwareFoundation, Inc. 23 * 59 Temple Place, Suite 330 24 * Boston, MA 02111-1307 USA 25 * 26 * @author Scott Ferguson 27 */ 28 29 package com.caucho.jsp.el; 30 31 import com.caucho.el.Expr; 32 33 import javax.servlet.jsp.PageContext; 34 import javax.servlet.jsp.el.ELException; 35 import javax.servlet.jsp.el.Expression; 36 import javax.servlet.jsp.el.VariableResolver; 37 38 /** 39 * Implementation of the expression evaluator. 40 */ 41 public class ExpressionImpl extends Expression { 42 private Expr _expr; 43 44 /** 45 * Implements the expression. 46 */ 47 ExpressionImpl(Expr expr) 48 { 49 _expr = expr; 50 } 51 52 /** 53 * Evaluates an expression. 54 */ 55 public Object evaluate(VariableResolver resolver) 56 throws ELException 57 { 58 if (resolver instanceof PageContext) 59 return _expr.evalObject(((PageContext) resolver).getELContext()); 60 else 61 return _expr.evalObject(new ELContextAdapter(resolver)); 62 } 63 } 64