FileDocCategorySizeDatePackage
ApplicationMap.javaAPI DocExample6756Mon Jul 23 13:26:38 BST 2007org.apache.struts2.dispatcher

ApplicationMap

public class ApplicationMap extends AbstractMap implements Serializable
A simple implementation of the {@link java.util.Map} interface to handle a collection of attributes and init parameters in a {@link javax.servlet.ServletContext} object. The {@link #entrySet()} method enumerates over all servlet context attributes and init parameters and returns a collection of both. Note, this will occur lazily - only when the entry set is asked for.

Fields Summary
private static final long
serialVersionUID
private ServletContext
context
private Set
entries
Constructors Summary
public ApplicationMap(ServletContext ctx)
Creates a new map object given the servlet context.

param
ctx the servlet context



                       
       
        this.context = ctx;
    
Methods Summary
public voidclear()
Removes all entries from the Map and removes all attributes from the servlet context.

        entries = null;

        Enumeration e = context.getAttributeNames();

        while (e.hasMoreElements()) {
            context.removeAttribute(e.nextElement().toString());
        }
    
public java.util.SetentrySet()
Creates a Set of all servlet context attributes as well as context init parameters.

return
a Set of all servlet context attributes as well as context init parameters.

        if (entries == null) {
            entries = new HashSet<Object>();

            // Add servlet context attributes
            Enumeration enumeration = context.getAttributeNames();

            while (enumeration.hasMoreElements()) {
                final String key = enumeration.nextElement().toString();
                final Object value = context.getAttribute(key);
                entries.add(new Map.Entry() {
                    public boolean equals(Object obj) {
                        Map.Entry entry = (Map.Entry) obj;

                        return ((key == null) ? (entry.getKey() == null) : key.equals(entry.getKey())) && ((value == null) ? (entry.getValue() == null) : value.equals(entry.getValue()));
                    }

                    public int hashCode() {
                        return ((key == null) ? 0 : key.hashCode()) ^ ((value == null) ? 0 : value.hashCode());
                    }

                    public Object getKey() {
                        return key;
                    }

                    public Object getValue() {
                        return value;
                    }

                    public Object setValue(Object obj) {
                        context.setAttribute(key.toString(), obj);

                        return value;
                    }
                });
            }

            // Add servlet context init params
            enumeration = context.getInitParameterNames();

            while (enumeration.hasMoreElements()) {
                final String key = enumeration.nextElement().toString();
                final Object value = context.getInitParameter(key);
                entries.add(new Map.Entry() {
                    public boolean equals(Object obj) {
                        Map.Entry entry = (Map.Entry) obj;

                        return ((key == null) ? (entry.getKey() == null) : key.equals(entry.getKey())) && ((value == null) ? (entry.getValue() == null) : value.equals(entry.getValue()));
                    }

                    public int hashCode() {
                        return ((key == null) ? 0 : key.hashCode()) ^ ((value == null) ? 0 : value.hashCode());
                    }

                    public Object getKey() {
                        return key;
                    }

                    public Object getValue() {
                        return value;
                    }

                    public Object setValue(Object obj) {
                        context.setAttribute(key.toString(), obj);

                        return value;
                    }
                });
            }
        }

        return entries;
    
public java.lang.Objectget(java.lang.Object key)
Returns the servlet context attribute or init parameter based on the given key. If the entry is not found, null is returned.

param
key the entry key.
return
the servlet context attribute or init parameter or null if the entry is not found.

        // Try context attributes first, then init params
        // This gives the proper shadowing effects
        String keyString = key.toString();
        Object value = context.getAttribute(keyString);

        return (value == null) ? context.getInitParameter(keyString) : value;
    
public java.lang.Objectput(java.lang.Object key, java.lang.Object value)
Sets a servlet context attribute given a attribute name and value.

param
key the name of the attribute.
param
value the value to set.
return
the attribute that was just set.

        entries = null;
        context.setAttribute(key.toString(), value);

        return get(key);
    
public java.lang.Objectremove(java.lang.Object key)
Removes the specified servlet context attribute.

param
key the attribute to remove.
return
the entry that was just removed.

        entries = null;

        Object value = get(key);
        context.removeAttribute(key.toString());

        return value;