org.apache.myfaces.trinidadinternal.util
Class SubKeyMap<V>

java.lang.Object
  extended by java.util.AbstractMap<java.lang.String,V>
      extended by org.apache.myfaces.trinidadinternal.util.SubKeyMap<V>
All Implemented Interfaces:
java.util.Map<java.lang.String,V>

public final class SubKeyMap<V>
extends java.util.AbstractMap<java.lang.String,V>

Map that wraps another to provide an isolated namespace using a prefix. This is especially handy for storing properties on the session in a structured manner without putting them into a true "Map" - because storing in a Map breaks session failover. (Session failover won't trigger on mutations of contained objects.)

Note that there is a potential design flaw; if you create a SubKeyMap for "mypackage.foo" and for "mypackage.foo.bar", all the keys in the latter will actually show up in the former (prefixed by ".bar"). This "flaw" is actually relied on by PageFlowScopeMap (since it provides a handy way to clear out all descendents), so don't "fix" it!


Nested Class Summary
 
Nested classes/interfaces inherited from class java.util.AbstractMap
java.util.AbstractMap.SimpleEntry<K,V>, java.util.AbstractMap.SimpleImmutableEntry<K,V>
 
Constructor Summary
SubKeyMap(java.util.Map<java.lang.String,java.lang.Object> base, java.lang.String prefix)
           
 
Method Summary
 boolean containsKey(java.lang.Object key)
           
 java.util.Set<java.util.Map.Entry<java.lang.String,V>> entrySet()
           
 V get(java.lang.Object key)
           
 boolean isEmpty()
           
 V put(java.lang.String key, V value)
           
 V remove(java.lang.Object key)
           
 
Methods inherited from class java.util.AbstractMap
clear, clone, containsValue, equals, hashCode, keySet, putAll, size, toString, values
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SubKeyMap

public SubKeyMap(java.util.Map<java.lang.String,java.lang.Object> base,
                 java.lang.String prefix)
Method Detail

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface java.util.Map<java.lang.String,V>
Overrides:
isEmpty in class java.util.AbstractMap<java.lang.String,V>

get

public V get(java.lang.Object key)
Specified by:
get in interface java.util.Map<java.lang.String,V>
Overrides:
get in class java.util.AbstractMap<java.lang.String,V>

put

public V put(java.lang.String key,
             V value)
Specified by:
put in interface java.util.Map<java.lang.String,V>
Overrides:
put in class java.util.AbstractMap<java.lang.String,V>

remove

public V remove(java.lang.Object key)
Specified by:
remove in interface java.util.Map<java.lang.String,V>
Overrides:
remove in class java.util.AbstractMap<java.lang.String,V>

containsKey

public boolean containsKey(java.lang.Object key)
Specified by:
containsKey in interface java.util.Map<java.lang.String,V>
Overrides:
containsKey in class java.util.AbstractMap<java.lang.String,V>

entrySet

public java.util.Set<java.util.Map.Entry<java.lang.String,V>> entrySet()
Specified by:
entrySet in interface java.util.Map<java.lang.String,V>
Specified by:
entrySet in class java.util.AbstractMap<java.lang.String,V>


Copyright © 2001-2011 The Apache Software Foundation. All Rights Reserved.