SolarMetric Kodo JDO 3.3.5 generated on August 31 2005

kodo.util
Class AbstractLRSProxyMap

java.lang.Object
  |
  +--kodo.util.AbstractLRSProxyMap
All Implemented Interfaces:
ChangeTracker, LRSProxy, Map, com.solarmetric.apache.commons.collections.Predicate, Proxy
Direct Known Subclasses:
AbstractMapFieldMapping.LRSProxyMap

public abstract class AbstractLRSProxyMap
extends Object
implements Map, LRSProxy, ChangeTracker, com.solarmetric.apache.commons.collections.Predicate

A map proxy designed for maps backed by extremely large result sets in which each call to 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:


Inner classes inherited from class java.util.Map
Map.Entry
 
Constructor Summary
AbstractLRSProxyMap(Class keyType, Class valueType)
           
 
Method Summary
 void added(Object val)
          Notify the tracker that the given object was added.
 void changed(Object val)
          Notify the tracker that the given object was changed.
 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 entrySet()
           
 boolean evaluate(Object obj)
           
 Object 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.
 KodoStateManager 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.
protected abstract  boolean hasKey(Object key)
          Return whether the given key 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 keys(Object value)
          Return all keys for the given value.
 Set keySet()
           
 Object put(Object key, Object value)
           
 void putAll(Map m)
           
 Object remove(Object key)
           
 void removed(Object val)
          Notify the tracker that the given object was removed.
 void setNextSequence(int seq)
          The maximum element sequence value for this proxy at load time.
 void setOwner(KodoStateManager sm, int field)
          Reset the state of the proxy, and set the owning JDO instance of the proxy and the name of the field it is assigned to.
 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.
protected abstract  Object value(Object key)
          Return the value of the given key.
 Collection values()
           
protected  Object writeReplace()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.util.Map
equals, hashCode
 

Constructor Detail

AbstractLRSProxyMap

public AbstractLRSProxyMap(Class keyType,
                           Class valueType)
Method Detail

setOwner

public void setOwner(KodoStateManager sm,
                     int field)
Description copied from interface: Proxy
Reset the state of the proxy, and set the owning JDO instance of the proxy and the name of the field it is assigned to. Set to null to indicate that the proxy is no longer managed.
Specified by:
setOwner in interface Proxy

getOwner

public KodoStateManager getOwner()
Description copied from interface: Proxy
Return the owning object.
Specified by:
getOwner in interface Proxy

getOwnerField

public int getOwnerField()
Description copied from interface: Proxy
Return the owning field index.
Specified by:
getOwnerField in interface Proxy

getChangeTracker

public ChangeTracker getChangeTracker()
Description copied from interface: Proxy
Return the change tracker for this proxy, or null if none.
Specified by:
getChangeTracker in interface Proxy

copy

public Object copy(Object orig)
Description copied from interface: Proxy
Return an unproxied copy of the given instance. This method is used by proxy managers to create backup values for use in rollback.
Specified by:
copy in interface Proxy

size

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

isEmpty

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

containsKey

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

containsValue

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

get

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

put

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

putAll

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

remove

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

clear

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

keySet

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

values

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

entrySet

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

writeReplace

protected Object writeReplace()
                       throws ObjectStreamException

hasKey

protected abstract boolean hasKey(Object key)
Return whether the given key exists in the map.

keys

protected abstract Collection keys(Object value)
Return all keys for the given value.

value

protected abstract Object value(Object key)
Return the value of the given key.

itr

protected abstract Iterator itr()
Implement this method to return an iterator over the entries in the map. Each returned object must implement the 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.

count

protected abstract int count()
Return the number of entries in the map, or Integer.MAX_VALUE.

evaluate

public boolean evaluate(Object obj)
Specified by:
evaluate in interface com.solarmetric.apache.commons.collections.Predicate

isTracking

public boolean isTracking()
Description copied from interface: ChangeTracker
Return true if this tracker has an up-to-date view of all the changes to the container it is managing.
Specified by:
isTracking in interface ChangeTracker

startTracking

public void startTracking()
Description copied from interface: ChangeTracker
Reset the state of the change tracker, and turn change tracking back on if it has been disabled.
Specified by:
startTracking in interface ChangeTracker

stopTracking

public void stopTracking()
Description copied from interface: ChangeTracker
Tell the tracker to stop tracking changes for its container.
Specified by:
stopTracking in interface ChangeTracker

getAdded

public Collection getAdded()
Description copied from interface: ChangeTracker
Return the collection of values that need to be added to the managed container.
Specified by:
getAdded in interface ChangeTracker

getRemoved

public Collection getRemoved()
Description copied from interface: ChangeTracker
Return the set of values that need to be removed from the managed container.
Specified by:
getRemoved in interface ChangeTracker

getChanged

public Collection getChanged()
Description copied from interface: ChangeTracker
Return the set of elements that have changed. In maps, this marks a possible change in value for a key. In collections, this marks an element that has been removed and re-added.
Specified by:
getChanged in interface ChangeTracker

added

public void added(Object val)
Description copied from interface: ChangeTracker
Notify the tracker that the given object was added.
Specified by:
added in interface ChangeTracker

removed

public void removed(Object val)
Description copied from interface: ChangeTracker
Notify the tracker that the given object was removed.
Specified by:
removed in interface ChangeTracker

changed

public void changed(Object val)
Description copied from interface: ChangeTracker
Notify the tracker that the given object was changed.
Specified by:
changed in interface ChangeTracker

getNextSequence

public int getNextSequence()
Description copied from interface: ChangeTracker
The next element sequence value for this proxy at load time. If the data store keeps this proxy's data in sequence order but allows holes for removed objects, the implementation can set the next sequence at load time, then retrieve it and start from there for added objects at flush time. This value is set back to 0 if the proxy stops tracking changes. For ordered proxies, it is set to the proxy's size when the proxy starts tracking changes again.
Specified by:
getNextSequence in interface ChangeTracker

setNextSequence

public void setNextSequence(int seq)
Description copied from interface: ChangeTracker
The maximum element sequence value for this proxy at load time. If the data store keeps this proxy's data in sequence order but allows holes for removed objects, the implementation can set the next sequence at load time, then retrieve it and start from there for added objects at flush time. This value is set back to 0 if the proxy stops tracking changes. For ordered proxies, it is set to the proxy's size when the proxy starts tracking changes again.
Specified by:
setNextSequence in interface ChangeTracker

SolarMetric Kodo JDO 3.3.5 generated on August 31 2005

Copyright 2001,2002 SolarMetric, Inc. All Rights Reserved.