org.inria.ns.reflex.util
Class DynamicMap

java.lang.Object
  extended by org.inria.ns.reflex.util.DynamicMap
All Implemented Interfaces:
Map

public class DynamicMap
extends Object
implements Map

A map with entries that the value is computable.

When getting a value, the underlying entry can deliver a computed value. Usefull for entries that has a value that may change between 2 calls, or for entries for which getting the value costs CPU.

To add a static entry, just use the put(Object, Object) method. To add a dynamic entry, use the put(Map.Entry) method and implement Map.Entry#getValue() as expected. If such entry is not updatable, supply a void implementation of Map.Entry#setValue(Object).

Author:
Philippe Poulard

Nested Class Summary
 
Nested classes/interfaces inherited from interface java.util.Map
Map.Entry<K,V>
 
Constructor Summary
DynamicMap(List entries)
          Create a new map of entries.
DynamicMap(Map.Entry[] entries)
          Create a new map of entries.
 
Method Summary
 void clear()
           
 boolean containsKey(Object key)
           
 boolean containsValue(Object value)
           
 Set entrySet()
           
 boolean equals(Object obj)
           
 Object get(Object key)
           
 int hashCode()
           
 boolean isEmpty()
           
 Set keySet()
           
 void put(Map.Entry entry)
          Put a new entry in this map.
 Object put(Object key, Object value)
           
 void putAll(Map t)
           
 Object remove(Object key)
           
 int size()
           
 String toString()
           
 Collection values()
           
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DynamicMap

public DynamicMap(List entries)
Create a new map of entries.

Parameters:
entries - A list of entries.
See Also:
Map.Entry

DynamicMap

public DynamicMap(Map.Entry[] entries)
Create a new map of entries.

Parameters:
entries - A list of entries.
Method Detail

put

public void put(Map.Entry entry)
Put a new entry in this map.

Parameters:
entry - The entry to add.

clear

public void clear()
Specified by:
clear in interface Map

containsKey

public boolean containsKey(Object key)
Specified by:
containsKey in interface Map

containsValue

public boolean containsValue(Object value)
Specified by:
containsValue in interface Map

entrySet

public Set entrySet()
Specified by:
entrySet in interface Map

equals

public boolean equals(Object obj)
Specified by:
equals in interface Map
Overrides:
equals in class Object

get

public Object get(Object key)
Specified by:
get in interface Map

hashCode

public int hashCode()
Specified by:
hashCode in interface Map
Overrides:
hashCode in class Object

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface Map

keySet

public Set keySet()
Specified by:
keySet in interface Map

put

public Object put(Object key,
                  Object value)
Specified by:
put in interface Map

putAll

public void putAll(Map t)
Specified by:
putAll in interface Map

remove

public Object remove(Object key)
Specified by:
remove in interface Map

size

public int size()
Specified by:
size in interface Map

toString

public String toString()
Overrides:
toString in class Object

values

public Collection values()
Specified by:
values in interface Map