diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/preview/PageExpressionContext.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/preview/PageExpressionContext.java | 189 |
1 files changed, 0 insertions, 189 deletions
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/preview/PageExpressionContext.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/preview/PageExpressionContext.java deleted file mode 100644 index 220b72f7e..000000000 --- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/preview/PageExpressionContext.java +++ /dev/null @@ -1,189 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006 Sybase, Inc. and others. - * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Sybase, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.jst.pagedesigner.preview; - -import java.io.BufferedInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Properties; - -import javax.servlet.jsp.el.ELException; -import javax.servlet.jsp.el.FunctionMapper; -import javax.servlet.jsp.el.VariableResolver; - -import org.apache.commons.el.ExpressionEvaluatorImpl; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IStorage; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.jst.pagedesigner.PDPlugin; -import org.eclipse.jst.pagedesigner.common.logging.Logger; -import org.eclipse.jst.pagedesigner.common.utils.ResourceUtils; -import org.eclipse.jst.pagedesigner.jsp.core.el.JSFELParserHelper; -import org.eclipse.jst.pagedesigner.jsp.core.el.LoadBundleUtil; -import org.eclipse.jst.pagedesigner.jsp.core.pagevar.IPageVariablesProvider; -import org.eclipse.jst.pagedesigner.jsp.core.pagevar.IVariableInfo; - -/** - * This is a static class. But it has "session" concept in it. To make it static - * is only to simplify its use. - * - * This class currently is only used by TagConverter, when calculating the - * displayed string for resource bundle items. - * - * XXX: in the future, if we want to this to be non-static, we may incorportate - * it into the context of the tag converter. - * - * @author mengbo - * @version 1.5 - */ -// TODO: we may consider support cache the properties. -public class PageExpressionContext { - private static final Logger _log = PDPlugin - .getLogger(PageExpressionContext.class); - - static PageExpressionContext _current; - - List _pageVarProviders = new ArrayList(); - - VariableResolver resolver = new SimpleVariableResolver(); - - private IProject _prj; - - /** - * @param prj - */ - public PageExpressionContext(IProject prj) { - _prj = prj; - } - - public static void reset() { - _current = null; - } - - public static void initialize(IProject prj) { - _current = new PageExpressionContext(prj); - } - - public static PageExpressionContext getCurrent() { - return _current; - } - - public void pushPageVarProvider(IPageVariablesProvider provider) { - _pageVarProviders.add(provider); - } - - public void popPageVarProvider(IPageVariablesProvider provider) { - try { - _pageVarProviders.remove(_pageVarProviders.size() - 1); - } catch (Exception ex) { - // "Error" - _log.info("PageExpressionContext.Info.0", ex); //$NON-NLS-1$ - } - } - - /** - * this method is for design time expression evaluation. Currently it only - * handles - * - * @param expression - * @param pageVars - * @param jspFile - * @param options - * XXX: not used today. In the future, we may support things like - * locale in options - * @return - */ - public Object evaluateExpression(String expression, Class expectedClass, - Map options) throws ELException { - expression = JSFELParserHelper.toJspElExpression(expression); - ExpressionEvaluatorImpl evaluator = new ExpressionEvaluatorImpl(); - FunctionMapper mapper = new EmptyFunctionMapper(); - - return evaluator.evaluate(expression, expectedClass, resolver, mapper); - } - - class SimpleVariableResolver implements VariableResolver { - /* - * (non-Javadoc) - * - * @see javax.servlet.jsp.el.VariableResolver#resolveVariable(java.lang.String) - */ - public Object resolveVariable(String varName) throws ELException { - // reverse order. - for (int k = _pageVarProviders.size() - 1; k >= 0; k--) { - IPageVariablesProvider _pageVars = (IPageVariablesProvider) _pageVarProviders - .get(k); - if (_pageVars != null) { - IVariableInfo[] vars = _pageVars.getBeanInfos(); - if (vars != null) { - for (int i = 0; i < vars.length; i++) { - if (varName.equals(vars[i].getName())) { - // ok we found. - if (vars[i].getMode() == IVariableInfo.RESOURCEBUNDLE) { - String resourceName = vars[i] - .getTypeInfoString(); - IStorage s = null; - try { - s = LoadBundleUtil - .getLoadBundleResource(_prj, - resourceName); - } catch (CoreException ex) { - // "Error" - _log - .info( - "PageExpressionContext.Info.0", ex); //$NON-NLS-1$ - } - if (s == null) { - throw new ELException(); - } - InputStream input = null; - try { - input = new BufferedInputStream(s - .getContents()); - Properties p = new Properties(); - p.load(input); - return p; - } catch (CoreException e) { - throw new ELException(e); - } catch (IOException e) { - throw new ELException(e); - } finally { - ResourceUtils.ensureClosed(input); - } - } - } - } - } - } - } - throw new ELException("Can't find: " + varName); //$NON-NLS-1$ - } - - } - - static class EmptyFunctionMapper implements FunctionMapper { - - /* - * (non-Javadoc) - * - * @see javax.servlet.jsp.el.FunctionMapper#resolveFunction(java.lang.String, - * java.lang.String) - */ - public Method resolveFunction(String arg0, String arg1) { - return null; - } - } -} |