Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Licensed to the Apache Software Foundation (ASF) under one or more
   * contributor license agreements.  See the NOTICE file distributed with
   * this work for additional information regarding copyright ownership.
   * The ASF licenses this file to You under the Apache License, Version 2.0
   * (the "License"); you may not use this file except in compliance with
   * the License.  You may obtain a copy of the License at
   * 
   *      http://www.apache.org/licenses/LICENSE-2.0
  * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package org.apache.jasper.runtime;
 
 import static org.jboss.web.JasperMessages.MESSAGES;
 
 import java.io.Writer;
 import java.util.Map;
 
 
Implementation of a JSP Context Wrapper. The JSP Context Wrapper is a JspContext created and maintained by a tag handler implementation. It wraps the Invoking JSP Context, that is, the JspContext instance passed to the tag handler by the invoking page via setJspContext().

Author(s):
Kin-man Chung
Jan Luehe
Jacob Hookom
 
 public class JspContextWrapper extends PageContext implements VariableResolver {
 
 	// Invoking JSP context
 
 	private transient HashMap<StringObjectpageAttributes;
 
 	// ArrayList of NESTED scripting variables
 	private ArrayList nestedVars;
 
 	// ArrayList of AT_BEGIN scripting variables
 	private ArrayList atBeginVars;
 
 	// ArrayList of AT_END scripting variables
 	private ArrayList atEndVars;
 
 	private Map aliases;
 
 
 	public JspContextWrapper(JspContext jspContextArrayList nestedVars,
 			ArrayList atBeginVarsArrayList atEndVarsMap aliases) {
 		this. = (PageContextjspContext;
 		this. = nestedVars;
 		this. = atBeginVars;
 		this. = atEndVars;
 		this. = new HashMap<StringObject>(16);
 		this. = aliases;
 
 		if (nestedVars != null) {
 			this. = new HashMap<StringObject>(nestedVars.size());
 		}
 	}
 
 	public void initialize(Servlet servletServletRequest request,
 			ServletResponse responseString errorPageURL,
 			boolean needsSessionint bufferSizeboolean autoFlush)
	}
	public Object getAttribute(String name) {
		if (name == null) {
		}
		return .get(name);
	}
	public Object getAttribute(String nameint scope) {
		if (name == null) {
		}
		if (scope == ) {
			return .get(name);
		}
		return .getAttribute(namescope);
	}
	public void setAttribute(String nameObject value) {
		if (name == null) {
		}
		if (value != null) {
			.put(namevalue);
else {
		}
	}
	public void setAttribute(String nameObject valueint scope) {
		if (name == null) {
		}
		if (scope == ) {
			if (value != null) {
				.put(namevalue);
else {
			}
else {
			.setAttribute(namevaluescope);
		}
	}
	public Object findAttribute(String name) {
		if (name == null) {
		}
		if (o == null) {
			if (o == null) {
				if (getSession() != null) {
				}
				if (o == null) {
				}
			}
		}
		return o;
	}
	public void removeAttribute(String name) {
		if (name == null) {
		}
		if (getSession() != null) {
		}
	}
	public void removeAttribute(String nameint scope) {
		if (name == null) {
		}
		if (scope == ) {
else {
		}
	}
	public int getAttributesScope(String name) {
		if (name == null) {
		}
		if (.get(name) != null) {
			return ;
else {
		}
	}
		if (scope == ) {
		}
	}
	public void release() {
	}
	public JspWriter getOut() {
	}
	public HttpSession getSession() {
	}
	public Object getPage() {
	}
	}
	}
	public Exception getException() {
	}
	}
	}
	public void forward(String relativeUrlPaththrows ServletException,
		.forward(relativeUrlPath);
	}
	public void include(String relativeUrlPaththrows ServletException,
		.include(relativeUrlPath);
	}
	public void include(String relativeUrlPathboolean flush)
	    .include(relativeUrlPathfalse); // XXX
	}
		return this;
	}
	public BodyContent pushBody() {
	}
	public JspWriter pushBody(Writer writer) {
		return .pushBody(writer);
	}
	public JspWriter popBody() {
	}
	}
	public void handlePageException(Exception exthrows IOException,
		// Should never be called since handleException() called with a
		// Throwable in the generated servlet.
	}
	public void handlePageException(Throwable tthrows IOException,
	}

VariableResolver interface
	public Object resolveVariable(String pNamethrows ELException {
		ELContext ctx = this.getELContext();
		return ctx.getELResolver().getValue(ctxnullpName);
	}

Synchronize variables at begin of tag file
	public void syncBeginTagFile() {
	}

Synchronize variables before fragment invokation
	public void syncBeforeInvoke() {
	}

    
Synchronize variables at end of tag file
	public void syncEndTagFile() {
	}

Copies the variables of the given scope from the virtual page scope of this JSP context wrapper to the page scope of the invoking JSP context.

Parameters:
scope variable scope (one of NESTED, AT_BEGIN, or AT_END)
	private void copyTagToPageScope(int scope) {
		Iterator iter = null;
		switch (scope) {
			if ( != null) {
				iter = .iterator();
			}
			break;
			if ( != null) {
			}
			break;
			if ( != null) {
				iter = .iterator();
			}
			break;
		}
		while ((iter != null) && iter.hasNext()) {
			String varName = (Stringiter.next();
			Object obj = getAttribute(varName);
			varName = findAlias(varName);
			if (obj != null) {
			    .setAttribute(varNameobj);
else {
			}
		}
	}

Saves the values of any NESTED variables that are present in the invoking JSP context, so they can later be restored.
	private void saveNestedVariables() {
		if ( != null) {
			while (iter.hasNext()) {
				String varName = (Stringiter.next();
				varName = findAlias(varName);
				if (obj != null) {
					.put(varNameobj);
				}
			}
		}
	}

Restores the values of any NESTED variables in the invoking JSP context.
	private void restoreNestedVariables() {
		if ( != null) {
			while (iter.hasNext()) {
				String varName = (Stringiter.next();
				varName = findAlias(varName);
				Object obj = .get(varName);
				if (obj != null) {
else {
				}
			}
		}
	}

Checks to see if the given variable name is used as an alias, and if so, returns the variable name for which it is used as an alias.

Parameters:
varName The variable name to check
Returns:
The variable name for which varName is used as an alias, or varName if it is not being used as an alias
	private String findAlias(String varName) {
		if ( == null)
			return varName;
		String alias = (String.get(varName);
		if (alias == null) {
			return varName;
		}
		return alias;
	}
	//private ELContextImpl elContext;
	public ELContext getELContext() {
        // instead decorate!!!
        
        return this..getELContext();
        
        /*
		if (this.elContext != null) {
			JspFactory jspFact = JspFactory.getDefaultFactory();
			ServletContext servletContext = this.getServletContext();
			JspApplicationContextImpl jspCtx = (JspApplicationContextImpl) jspFact
					.getJspApplicationContext(servletContext);
			this.elContext = jspCtx.createELContext(this);
		}
		return this.elContext;
        */
	}
New to GrepCode? Check out our FAQ X