Class ObjectIdOwnerMap<V extends ObjectIdOwnerMap.Entry>
- Type Parameters:
V
- type of subclass of ObjectId that will be stored in the map.
- All Implemented Interfaces:
Iterable<V>
,ObjectIdSet
ObjectId
subclasses in
only one map.
To use this map type, applications must have their entry value type extend
from ObjectIdOwnerMap.Entry
, which itself
extends from ObjectId.
Object instances may only be stored in ONE ObjectIdOwnerMap. This restriction exists because the map stores internal map state within each object instance. If an instance is be placed in another ObjectIdOwnerMap it could corrupt one or both map's internal state.
If an object instance must be in more than one map, applications may use
ObjectIdOwnerMap for one of the maps, and
ObjectIdSubclassMap
for the other map(s). It is
encouraged to use ObjectIdOwnerMap for the map that is accessed most often,
as this implementation runs faster than the more general ObjectIdSubclassMap
implementation.
-
Nested Class Summary
Nested Classes -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription<Q extends V>
voidadd
(Q newValue) Store an object for future lookup.addIfAbsent
(Q newValue) Store an object for future lookup.void
clear()
Remove all entries from this map.boolean
contains
(AnyObjectId toFind) Returns true if the objectId is contained within the collection.get
(AnyObjectId toFind) Lookup an existing mapping.boolean
isEmpty()
Whether this map is emptyiterator()
int
size()
Get number of objects in this map.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
ObjectIdOwnerMap
public ObjectIdOwnerMap()Create an empty map.
-
-
Method Details
-
clear
public void clear()Remove all entries from this map. -
get
Lookup an existing mapping.- Parameters:
toFind
- the object identifier to find.- Returns:
- the instance mapped to toFind, or null if no mapping exists.
-
contains
Returns true if the objectId is contained within the collection.Returns true if this map contains the specified object.
- Specified by:
contains
in interfaceObjectIdSet
- Parameters:
toFind
- the objectId to find- Returns:
- whether the collection contains the objectId.
-
add
Store an object for future lookup.An existing mapping for must not be in this map. Callers must first call
get(AnyObjectId)
to verify there is no current mapping prior to adding a new mapping, or useaddIfAbsent(Entry)
.- Type Parameters:
Q
- type of values- Parameters:
newValue
- the object to store.
-
addIfAbsent
Store an object for future lookup.Stores
newValue
, but only if there is not already an object for the same object name. Callers can tell if the value is new by checking the return value with reference equality:V obj = ...; boolean wasNew = map.addIfAbsent(obj) == obj;
- Type Parameters:
Q
- type of values- Parameters:
newValue
- the object to store.- Returns:
newValue
if stored, or the prior value already stored and that would have been returned had the caller usedget(newValue)
first.
-
size
public int size()Get number of objects in this map.- Returns:
- number of objects in this map.
-
isEmpty
public boolean isEmpty()Whether this map is empty- Returns:
- true if
size()
is 0.
-
iterator
- Specified by:
iterator
in interfaceIterable<V extends ObjectIdOwnerMap.Entry>
-