Overview | Package | Class | Tree | Deprecated | Index | Help
| SolarMetric Kodo JDO 3.4.1 generated on May 30 2006
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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:

- The `size` method may return `Integer.MAX_VALUE`.
- Null keys and values are not supported.

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`

Overview | Package | Class | Tree | Deprecated | Index | Help
| SolarMetric Kodo JDO 3.4.1 generated on May 30 2006
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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