public abstract class AbstractLRSProxyMap<K,V> extends Object implements Map<K,V>, LRSProxy, MapChangeTracker, Predicate
get(java.lang.Object) or containsKey(java.lang.Object) may perform a
database query. Changes to the map are tracked through a
ChangeTracker. This map has the following limitations:
size method may return Integer.MAX_VALUE.| Constructor and Description |
|---|
AbstractLRSProxyMap(Class<K> keyType,
Class<V> valueType) |
| Modifier and Type | Method and Description |
|---|---|
void |
added(Object key,
Object val)
Record that the given entry was added to the map.
|
void |
changed(Object key,
Object orig,
Object val)
Record that the given entry was altered.
|
void |
clear() |
boolean |
containsKey(Object key) |
boolean |
containsValue(Object val) |
Object |
copy(Object orig)
Return an unproxied copy of the given instance.
|
protected abstract int |
count()
Return the number of entries in the map, or
Integer.MAX_VALUE. |
Set<Map.Entry<K,V>> |
entrySet() |
V |
get(Object key) |
Collection |
getAdded()
Return the collection of values that need to be added to the managed
container.
|
Collection |
getChanged()
Return the set of elements that have changed.
|
ChangeTracker |
getChangeTracker()
Return the change tracker for this proxy, or null if none.
|
int |
getNextSequence()
The next element sequence value for this proxy at load time.
|
OpenJPAStateManager |
getOwner()
Return the owning object.
|
int |
getOwnerField()
Return the owning field index.
|
Collection |
getRemoved()
Return the set of values that need to be removed from the managed
container.
|
boolean |
getTrackKeys()
Whether to track keys or values.
|
protected abstract boolean |
hasKey(Object key)
Return whether the given key exists in the map.
|
protected abstract boolean |
hasValue(Object value)
Return whether the given value exists in the map.
|
boolean |
isEmpty() |
boolean |
isTracking()
Return true if this tracker has an up-to-date view of all the changes
to the container it is managing.
|
protected abstract Iterator<?> |
itr()
Implement this method to return an iterator over the entries
in the map.
|
protected abstract Collection<K> |
keys(Object value)
Return all keys for the given value.
|
Set<K> |
keySet() |
V |
put(K key,
V value) |
void |
putAll(Map<? extends K,? extends V> m) |
V |
remove(Object key) |
void |
removed(Object key,
Object val)
Record that the given entry was removed from the map.
|
void |
setNextSequence(int seq)
The maximum element sequence value for this proxy at load time.
|
void |
setOwner(OpenJPAStateManager sm,
int field)
Reset the state of the proxy, and set the owning instance of the
proxy and the name of the field it is assigned to.
|
void |
setTrackKeys(boolean keys)
Whether to track keys or values.
|
int |
size() |
void |
startTracking()
Reset the state of the change tracker, and turn change tracking back
on if it has been disabled.
|
void |
stopTracking()
Tell the tracker to stop tracking changes for its container.
|
boolean |
test(Object obj) |
protected abstract V |
value(Object key)
Return the value of the given key.
|
Collection<V> |
values() |
protected Object |
writeReplace() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcompute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAllpublic void setOwner(OpenJPAStateManager sm, int field)
Proxypublic OpenJPAStateManager getOwner()
Proxypublic int getOwnerField()
ProxygetOwnerField in interface Proxypublic ChangeTracker getChangeTracker()
ProxygetChangeTracker in interface Proxypublic Object copy(Object orig)
Proxypublic boolean containsKey(Object key)
containsKey in interface Map<K,V>public boolean containsValue(Object val)
containsValue in interface Map<K,V>protected Object writeReplace() throws ObjectStreamException
ObjectStreamExceptionprotected abstract boolean hasKey(Object key)
protected abstract boolean hasValue(Object value)
protected abstract Collection<K> keys(Object value)
protected abstract Iterator<?> itr()
Map.Entry interface. This method may be invoked multiple
times. The iterator does not have to support the
Iterator.remove() method, and may implement
Closeable.protected abstract int count()
Integer.MAX_VALUE.public boolean isTracking()
ChangeTrackerisTracking in interface ChangeTrackerpublic void startTracking()
ChangeTrackerstartTracking in interface ChangeTrackerpublic void stopTracking()
ChangeTrackerstopTracking in interface ChangeTrackerpublic boolean getTrackKeys()
MapChangeTrackergetTrackKeys in interface MapChangeTrackerpublic void setTrackKeys(boolean keys)
MapChangeTrackersetTrackKeys in interface MapChangeTrackerpublic Collection getAdded()
ChangeTrackergetAdded in interface ChangeTrackerpublic Collection getRemoved()
ChangeTrackergetRemoved in interface ChangeTrackerpublic Collection getChanged()
ChangeTrackergetChanged in interface ChangeTrackerpublic void added(Object key, Object val)
MapChangeTrackeradded in interface MapChangeTrackerpublic void removed(Object key, Object val)
MapChangeTrackerremoved in interface MapChangeTrackerpublic void changed(Object key, Object orig, Object val)
MapChangeTrackerchanged in interface MapChangeTrackerpublic int getNextSequence()
ChangeTrackergetNextSequence in interface ChangeTrackerpublic void setNextSequence(int seq)
ChangeTrackersetNextSequence in interface ChangeTrackerCopyright © 2006–2022 Apache Software Foundation. All rights reserved.