Author: remm Date: Tue Sep 19 18:18:29 2006 New Revision: 448023 URL: http://svn.apache.org/viewvc?view=rev&rev=448023 Log: - Similar change.
Added: tomcat/tc6.0.x/trunk/java/org/apache/jasper/util/Enumerator.java (with props) Modified: tomcat/tc6.0.x/trunk/java/org/apache/jasper/runtime/JspContextWrapper.java Modified: tomcat/tc6.0.x/trunk/java/org/apache/jasper/runtime/JspContextWrapper.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/jasper/runtime/JspContextWrapper.java?view=diff&rev=448023&r1=448022&r2=448023 ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/jasper/runtime/JspContextWrapper.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/jasper/runtime/JspContextWrapper.java Tue Sep 19 18:18:29 2006 @@ -20,7 +20,7 @@ import java.io.Writer; import java.util.ArrayList; import java.util.Enumeration; -import java.util.Hashtable; +import java.util.HashMap; import java.util.Iterator; import java.util.Map; @@ -42,6 +42,7 @@ import javax.servlet.jsp.tagext.VariableInfo; import org.apache.jasper.compiler.Localizer; +import org.apache.jasper.util.Enumerator; /** * Implementation of a JSP Context Wrapper. @@ -60,7 +61,7 @@ // Invoking JSP context private PageContext invokingJspCtxt; - private transient Hashtable pageAttributes; + private transient HashMap<String, Object> pageAttributes; // ArrayList of NESTED scripting variables private ArrayList nestedVars; @@ -73,7 +74,7 @@ private Map aliases; - private Hashtable originalNestedVars; + private HashMap<String, Object> originalNestedVars; public JspContextWrapper(JspContext jspContext, ArrayList nestedVars, ArrayList atBeginVars, ArrayList atEndVars, Map aliases) { @@ -81,11 +82,11 @@ this.nestedVars = nestedVars; this.atBeginVars = atBeginVars; this.atEndVars = atEndVars; - this.pageAttributes = new Hashtable(16); + this.pageAttributes = new HashMap<String, Object>(16); this.aliases = aliases; if (nestedVars != null) { - this.originalNestedVars = new Hashtable(nestedVars.size()); + this.originalNestedVars = new HashMap<String, Object>(nestedVars.size()); } syncBeginTagFile(); } @@ -220,7 +221,7 @@ public Enumeration<String> getAttributeNamesInScope(int scope) { if (scope == PAGE_SCOPE) { - return pageAttributes.keys(); + return new Enumerator(pageAttributes.keySet().iterator()); } return invokingJspCtxt.getAttributeNamesInScope(scope); Added: tomcat/tc6.0.x/trunk/java/org/apache/jasper/util/Enumerator.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/jasper/util/Enumerator.java?view=auto&rev=448023 ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/jasper/util/Enumerator.java (added) +++ tomcat/tc6.0.x/trunk/java/org/apache/jasper/util/Enumerator.java Tue Sep 19 18:18:29 2006 @@ -0,0 +1,175 @@ +/* + * Copyright 1999,2004 The Apache Software Foundation. + * + * Licensed 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.util; + + +import java.util.Collection; +import java.util.Enumeration; +import java.util.Iterator; +import java.util.List; +import java.util.ArrayList; +import java.util.Map; +import java.util.NoSuchElementException; + + +/** + * Adapter class that wraps an <code>Enumeration</code> around a Java2 + * collection classes object <code>Iterator</code> so that existing APIs + * returning Enumerations can easily run on top of the new collections. + * Constructors are provided to easliy create such wrappers. + * + * @author Craig R. McClanahan + * @version $Revision: 302726 $ $Date: 2004-02-27 15:59:07 +0100 (ven., 27 févr. 2004) $ + */ + +public final class Enumerator implements Enumeration { + + + // ----------------------------------------------------------- Constructors + + + /** + * Return an Enumeration over the values of the specified Collection. + * + * @param collection Collection whose values should be enumerated + */ + public Enumerator(Collection collection) { + + this(collection.iterator()); + + } + + + /** + * Return an Enumeration over the values of the specified Collection. + * + * @param collection Collection whose values should be enumerated + * @param clone true to clone iterator + */ + public Enumerator(Collection collection, boolean clone) { + + this(collection.iterator(), clone); + + } + + + /** + * Return an Enumeration over the values returned by the + * specified Iterator. + * + * @param iterator Iterator to be wrapped + */ + public Enumerator(Iterator iterator) { + + super(); + this.iterator = iterator; + + } + + + /** + * Return an Enumeration over the values returned by the + * specified Iterator. + * + * @param iterator Iterator to be wrapped + * @param clone true to clone iterator + */ + public Enumerator(Iterator iterator, boolean clone) { + + super(); + if (!clone) { + this.iterator = iterator; + } else { + List list = new ArrayList(); + while (iterator.hasNext()) { + list.add(iterator.next()); + } + this.iterator = list.iterator(); + } + + } + + + /** + * Return an Enumeration over the values of the specified Map. + * + * @param map Map whose values should be enumerated + */ + public Enumerator(Map map) { + + this(map.values().iterator()); + + } + + + /** + * Return an Enumeration over the values of the specified Map. + * + * @param map Map whose values should be enumerated + * @param clone true to clone iterator + */ + public Enumerator(Map map, boolean clone) { + + this(map.values().iterator(), clone); + + } + + + // ----------------------------------------------------- Instance Variables + + + /** + * The <code>Iterator</code> over which the <code>Enumeration</code> + * represented by this class actually operates. + */ + private Iterator iterator = null; + + + // --------------------------------------------------------- Public Methods + + + /** + * Tests if this enumeration contains more elements. + * + * @return <code>true</code> if and only if this enumeration object + * contains at least one more element to provide, <code>false</code> + * otherwise + */ + public boolean hasMoreElements() { + + return (iterator.hasNext()); + + } + + + /** + * Returns the next element of this enumeration if this enumeration + * has at least one more element to provide. + * + * @return the next element of this enumeration + * + * @exception NoSuchElementException if no more elements exist + */ + public Object nextElement() throws NoSuchElementException { + + return (iterator.next()); + + } + + +} Propchange: tomcat/tc6.0.x/trunk/java/org/apache/jasper/util/Enumerator.java ------------------------------------------------------------------------------ svn:eol-style = native --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]