Oracle Fusion Middleware Java API Reference for Oracle TopLink
11g Release 1 (11.1.1)

B32476-03

oracle.toplink.indirection
Class IndirectMap

java.lang.Object
  extended by java.util.Dictionary<K,V>
      extended by java.util.Hashtable
          extended by oracle.toplink.indirection.IndirectMap
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.util.Map, ChangeTracker, CollectionChangeTracker, IndirectCollection, IndirectContainer

public class IndirectMap
extends java.util.Hashtable
implements CollectionChangeTracker, IndirectCollection

IndirectMap allows a domain class to take advantage of TopLink indirection without having to declare its instance variable as a ValueHolderInterface.

To use an IndirectMap:

TopLink will place an IndirectMap in the instance variable when the containing domain object is read from the datatabase. With the first message sent to the IndirectMap, the contents are fetched from the database and normal Hashtable/Map behavior is resumed.

Since:
TOPLink/Java 2.5
See Also:
CollectionMapping, IndirectList, Serialized Form

Constructor Summary
IndirectMap()
          Construct a new, empty IndirectMap with a default capacity and load factor.
IndirectMap(int initialCapacity)
          Construct a new, empty IndirectMap with the specified initial capacity and default load factor.
IndirectMap(int initialCapacity, float loadFactor)
          Construct a new, empty IndirectMap with the specified initial capacity and load factor.
IndirectMap(java.util.Map m)
          Construct a new IndirectMap with the same mappings as the given Map.
 
Method Summary
 java.beans.PropertyChangeListener _persistence_getPropertyChangeListener()
          Return the property change listener for change tracking.
 void clear()
           
 java.lang.Object clone()
           
 boolean contains(java.lang.Object value)
           
 boolean containsKey(java.lang.Object key)
           
 boolean containsValue(java.lang.Object value)
           
 java.util.Enumeration elements()
           
 java.util.Set entrySet()
           
 boolean equals(java.lang.Object o)
           
 java.lang.Object get(java.lang.Object key)
           
 ValueHolderInterface getValueHolder()
          Return the valueHolder.
 int hashCode()
           
 boolean isEmpty()
           
 boolean isInstantiated()
          Return whether the contents have been read from the database.
 java.util.Enumeration keys()
           
 java.util.Set keySet()
           
 java.lang.Object put(java.lang.Object key, java.lang.Object value)
           
 void putAll(java.util.Map t)
           
 java.lang.Object remove(java.lang.Object key)
           
 int size()
           
 java.lang.String toString()
          Use the Hashtable.toString(); but wrap it with braces to indicate there is a bit of indirection.
 java.util.Collection values()
           
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

IndirectMap

public IndirectMap()
Construct a new, empty IndirectMap with a default capacity and load factor.


IndirectMap

public IndirectMap(int initialCapacity)
Construct a new, empty IndirectMap with the specified initial capacity and default load factor.

Parameters:
initialCapacity - the initial capacity of the hashtable

IndirectMap

public IndirectMap(int initialCapacity,
                   float loadFactor)
Construct a new, empty IndirectMap with the specified initial capacity and load factor.

Parameters:
initialCapacity - the initial capacity of the hashtable
loadFactor - a number between 0.0 and 1.0
Throws:
java.lang.IllegalArgumentException - if the initial capacity is less than or equal to zero, or if the load factor is less than or equal to zero

IndirectMap

public IndirectMap(java.util.Map m)
Construct a new IndirectMap with the same mappings as the given Map. The IndirectMap is created with a capacity of twice the number of entries in the given Map or 11 (whichever is greater), and a default load factor, which is 0.75.

Parameters:
m - a map containing the mappings to use
Method Detail

clear

public void clear()
Specified by:
clear in interface java.util.Map
Overrides:
clear in class java.util.Hashtable
See Also:
Hashtable.clear()

clone

public java.lang.Object clone()
Overrides:
clone in class java.util.Hashtable
See Also:
This will result in a database query if necessary.

contains

public boolean contains(java.lang.Object value)
Overrides:
contains in class java.util.Hashtable
See Also:
Hashtable.contains(java.lang.Object)

containsKey

public boolean containsKey(java.lang.Object key)
Specified by:
containsKey in interface java.util.Map
Overrides:
containsKey in class java.util.Hashtable
See Also:
Hashtable.containsKey(java.lang.Object)

containsValue

public boolean containsValue(java.lang.Object value)
Specified by:
containsValue in interface java.util.Map
Overrides:
containsValue in class java.util.Hashtable
See Also:
Hashtable.containsValue(java.lang.Object)

elements

public java.util.Enumeration elements()
Overrides:
elements in class java.util.Hashtable
See Also:
Hashtable.elements()

entrySet

public java.util.Set entrySet()
Specified by:
entrySet in interface java.util.Map
Overrides:
entrySet in class java.util.Hashtable
See Also:
Hashtable.entrySet()

equals

public boolean equals(java.lang.Object o)
Specified by:
equals in interface java.util.Map
Overrides:
equals in class java.util.Hashtable
See Also:
Hashtable.equals(java.lang.Object)

get

public java.lang.Object get(java.lang.Object key)
Specified by:
get in interface java.util.Map
Overrides:
get in class java.util.Hashtable
See Also:
Hashtable.get(java.lang.Object)

_persistence_getPropertyChangeListener

public java.beans.PropertyChangeListener _persistence_getPropertyChangeListener()
Return the property change listener for change tracking.

Specified by:
_persistence_getPropertyChangeListener in interface ChangeTracker

getValueHolder

public ValueHolderInterface getValueHolder()
Return the valueHolder. This method used to be synchronized, which caused deadlock.

Specified by:
getValueHolder in interface IndirectContainer
Returns:
oracle.toplink.indirection.ValueHolderInterface A representation of the valueholder * which this container uses

hashCode

public int hashCode()
Specified by:
hashCode in interface java.util.Map
Overrides:
hashCode in class java.util.Hashtable
See Also:
Hashtable.hashCode()

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface java.util.Map
Overrides:
isEmpty in class java.util.Hashtable
See Also:
Hashtable.isEmpty()

isInstantiated

public boolean isInstantiated()
Return whether the contents have been read from the database.

Specified by:
isInstantiated in interface IndirectContainer

keys

public java.util.Enumeration keys()
Overrides:
keys in class java.util.Hashtable
See Also:
Hashtable.keys()

keySet

public java.util.Set keySet()
Specified by:
keySet in interface java.util.Map
Overrides:
keySet in class java.util.Hashtable
See Also:
Hashtable.keySet()

put

public java.lang.Object put(java.lang.Object key,
                            java.lang.Object value)
Specified by:
put in interface java.util.Map
Overrides:
put in class java.util.Hashtable
See Also:
Hashtable.put(java.lang.Object, java.lang.Object)

putAll

public void putAll(java.util.Map t)
Specified by:
putAll in interface java.util.Map
Overrides:
putAll in class java.util.Hashtable
See Also:
Hashtable.putAll(java.util.Map)

remove

public java.lang.Object remove(java.lang.Object key)
Specified by:
remove in interface java.util.Map
Overrides:
remove in class java.util.Hashtable
See Also:
Hashtable.remove(java.lang.Object)

size

public int size()
Specified by:
size in interface java.util.Map
Overrides:
size in class java.util.Hashtable
See Also:
Hashtable.size()

toString

public java.lang.String toString()
Use the Hashtable.toString(); but wrap it with braces to indicate there is a bit of indirection. Don't allow this method to trigger a database read.

Overrides:
toString in class java.util.Hashtable
See Also:
Hashtable.toString()

values

public java.util.Collection values()
Specified by:
values in interface java.util.Map
Overrides:
values in class java.util.Hashtable
See Also:
Hashtable.values()

Copyright © 1998, 2010, Oracle. All Rights Reserved.