|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.util.AbstractMap org.apache.openjpa.lib.util.concurrent.ConcurrentReferenceHashMap
public class ConcurrentReferenceHashMap
This class implements a HashMap which has limited synchronization and reference keys or values(but not both). In particular mutators are generally synchronized while accessors are generally not. Additionally the Iterators returned by this class are not "fail-fast", but instead try to continue to iterate over the data structure after changes have been made. Finally purging of the reference queue is only done inside mutators. Null keys are not supported if keys use references. Null values are not supported if values use references. This class is based heavily on the WeakHashMap class in the Java collections package.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class java.util.AbstractMap |
---|
AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V> |
Field Summary | |
---|---|
(package private) static double[] |
RANDOMS
Cache of random numbers used in "random" methods, since generating them is expensive. |
Fields inherited from interface org.apache.openjpa.lib.util.ReferenceMap |
---|
HARD, SOFT, WEAK |
Constructor Summary | |
---|---|
ConcurrentReferenceHashMap(int keyType,
int valueType)
Constructs a new, empty HashMap with a default capacity and load factor. |
|
ConcurrentReferenceHashMap(int keyType,
int valueType,
int initialCapacity)
Constructs a new, empty HashMap with the specified initial capacity and default load factor. |
|
ConcurrentReferenceHashMap(int keyType,
int valueType,
int initialCapacity,
float loadFactor)
Constructs a new, empty HashMap with the specified initial capacity and the specified load factor. |
|
ConcurrentReferenceHashMap(int keyType,
int valueType,
Map t)
Constructs a new HashMap with the same mappings as the given Map. |
Method Summary | |
---|---|
(package private) int |
capacity()
|
void |
clear()
Removes all mappings from this HashMap. |
Object |
clone()
Returns a shallow copy of this HashMap. |
boolean |
containsKey(Object key)
Returns true if this HashMap contains a mapping for the specified key. |
boolean |
containsValue(Object value)
Returns true if this HashMap maps one or more keys to the specified value. |
Set |
entrySet()
Returns a Collection view of the mappings contained in this HashMap. |
protected boolean |
eq(Object x,
Object y)
Compare two objects. |
Object |
get(Object key)
Returns the value to which this HashMap maps the specified key. |
int |
getMaxSize()
The maximum number of entries, or Integer.MAX_VALUE for no limit. |
protected int |
hc(Object o)
Obtain the hashcode of an object. |
boolean |
isEmpty()
Returns true if this Map contains no key-value mappings. |
boolean |
isFull()
Whether the map is full. |
void |
keyExpired(Object value)
Overridable callback for when a key reference expires. |
Set |
keySet()
Returns a Set view of the keys contained in this HashMap. |
(package private) float |
loadFactor()
|
void |
overflowRemoved(Object key,
Object value)
Overridable callback for when an overflow entry is automatically removed. |
Object |
put(Object key,
Object value)
Associates the specified value with the specified key in this HashMap. |
void |
putAll(Map t)
Copies all of the mappings from the specified Map to this HashMap These mappings will replace any mappings that this HashMap had for any of the keys currently in the specified Map. |
Iterator |
randomEntryIterator()
Iterate over map entries, beginning at an arbitrary (not strictly random) entry. |
Object |
remove(Object key)
Removes the mapping for this key from this HashMap if present. |
void |
removeExpired()
Purge stale entries. |
Map.Entry |
removeRandom()
Remove an arbitrary(not strictly random) entry from the map. |
void |
setMaxSize(int maxSize)
The maximum number of entries, or Integer.MAX_VALUE for no limit. |
int |
size()
Returns the number of key-value mappings in this Map. |
void |
valueExpired(Object key)
Overridable callback for when a value reference expires. |
Collection |
values()
Returns a Collection view of the values contained in this HashMap. |
Methods inherited from class java.util.AbstractMap |
---|
equals, hashCode, toString |
Methods inherited from class java.lang.Object |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
Methods inherited from interface java.util.Map |
---|
equals, hashCode |
Field Detail |
---|
static final double[] RANDOMS
Constructor Detail |
---|
public ConcurrentReferenceHashMap(int keyType, int valueType, int initialCapacity, float loadFactor)
keyType
- the reference type of map keysvalueType
- the reference type of map valuesinitialCapacity
- the initial capacity of the HashMap.loadFactor
- a number between 0.0 and 1.0.
IllegalArgumentException
- if neither keys nor values use hard
references, if the initial capacity is less than or equal to zero, or if
the load factor is less than or equal to zeropublic ConcurrentReferenceHashMap(int keyType, int valueType, int initialCapacity)
keyType
- the reference type of map keysvalueType
- the reference type of map valuesinitialCapacity
- the initial capacity of the HashMap.public ConcurrentReferenceHashMap(int keyType, int valueType)
keyType
- the reference type of map keysvalueType
- the reference type of map valuespublic ConcurrentReferenceHashMap(int keyType, int valueType, Map t)
keyType
- the reference type of map keysvalueType
- the reference type of map valuesMethod Detail |
---|
protected boolean eq(Object x, Object y)
protected int hc(Object o)
Object.hashCode()
public int getMaxSize()
SizedMap
getMaxSize
in interface SizedMap
public void setMaxSize(int maxSize)
SizedMap
setMaxSize
in interface SizedMap
public boolean isFull()
SizedMap
isFull
in interface SizedMap
public void overflowRemoved(Object key, Object value)
SizedMap
overflowRemoved
in interface SizedMap
public int size()
size
in interface Map
size
in class AbstractMap
public boolean isEmpty()
isEmpty
in interface Map
isEmpty
in class AbstractMap
public boolean containsValue(Object value)
containsValue
in interface Map
containsValue
in class AbstractMap
value
- value whose presence in this Map is to be tested.public boolean containsKey(Object key)
containsKey
in interface Map
containsKey
in class AbstractMap
key
- key whose presence in this Map is to be tested.public Object get(Object key)
get
in interface Map
get
in class AbstractMap
key
- key whose associated value is to be returned.public Object put(Object key, Object value)
put
in interface Map
put
in class AbstractMap
key
- key with which the specified value is to be associated.value
- value to be associated with the specified key.
public Object remove(Object key)
remove
in interface Map
remove
in class AbstractMap
key
- key whose mapping is to be removed from the Map.
public void removeExpired()
ReferenceMap
removeExpired
in interface ReferenceMap
public void keyExpired(Object value)
ReferenceMap
keyExpired
in interface ReferenceMap
value
- the value for the expired keypublic void valueExpired(Object key)
ReferenceMap
valueExpired
in interface ReferenceMap
key
- the key for the expired valuepublic Map.Entry removeRandom()
ConcurrentMap
removeRandom
in interface ConcurrentMap
public Iterator randomEntryIterator()
ConcurrentMap
randomEntryIterator
in interface ConcurrentMap
public void putAll(Map t)
putAll
in interface Map
putAll
in class AbstractMap
t
- Mappings to be stored in this Map.public void clear()
clear
in interface Map
clear
in class AbstractMap
public Object clone()
clone
in class AbstractMap
public Set keySet()
keySet
in interface Map
keySet
in class AbstractMap
public Collection values()
values
in interface Map
values
in class AbstractMap
public Set entrySet()
entrySet
in interface Map
entrySet
in class AbstractMap
Map.Entry
int capacity()
float loadFactor()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |