SolarMetric Kodo JDO 3.0.3 generated on February 20 2004

kodo.datacache
Interface DataCache

All Superinterfaces:
com.solarmetric.util.Closeable
All Known Implementing Classes:
DelegatingDataCache, AbstractCacheImpl

public interface DataCache
extends com.solarmetric.util.Closeable

Interface that must be implemented by any level 2 cache used by Kodo. Most data caches will choose to implement the Configurable interface so that they will be given the system configuration just after construction.


Field Summary
static String DEFAULT_NAME
          The name of the default data cache: default
 
Method Summary
 void batchUpdate(Collection additions, Collection newUpdates, Collection existingUpdates, Collection deletes)
          Perform a batch update of the cache.
 void clear()
          Remove all data from this cache.
 void close()
          Close this cache, dropping all hard references and releasing any resources that this cache maintains.
 boolean containsKey(Object oid)
          Returns true if this cache contains data corresponding to oid; otherwise returns false.
 PCData get(Object oid)
          Return the cached object for the given oid.
 String getName()
          Returns a string name that can be used by end-user-visible code to identify this cache.
 boolean pin(Object oid)
          Pin the value stored under oid into the cache.
 PCData put(PCData value)
          Set the cached value for the given instance.
 void registerListener(ExpirationListener listen)
          Add a new expiration event listener to this cache.
 PCData remove(Object oid)
          Remove the value stored under the given oid.
 boolean removeListener(ExpirationListener listen)
          Remove an expiration event listener from this cache.
 void setName(String name)
          Sets a string name to be used to identify this cache to end-user needs.
 boolean unpin(Object oid)
          Unpin the value stored under oid into the cache.
 void updateValue(PCData value)
          Update the cached value for the given instance.
 

Field Detail

DEFAULT_NAME

public static final String DEFAULT_NAME
The name of the default data cache: default
Method Detail

batchUpdate

public void batchUpdate(Collection additions,
                        Collection newUpdates,
                        Collection existingUpdates,
                        Collection deletes)

Perform a batch update of the cache. Add all PCData objects in additions and in newUpdates, make the appropriate modifications to all PCDatas in existingUpdates, and delete all OIDs in deletes.

All changes made to cached data must be cached via this method. It is this method that is responsible for performing any side-effects that should happen on meaningful cache changes.

Implementations should bear in mind that the deletes collection may contain oids that are also in the additions map. This is possible because it is valid for a user to delete an object with a particular oid and then add that object in the same batch.

Parameters:
additions - A collection of PCData objects. These represent data that have been newly created, and thus must be added to the cache.
newUpdates - A collection of PCData objects. These represent data that have been modified but were not originally in the cache, and thus must be added to the cache.
existingUpdates - A collection of PCData objects. These represent data that have been modified and were originally loaded from the cache. It is up to the cache implementation to decide if these values must be re-enlisted in the cache. Some caches may return live data from get(java.lang.Object) invocations, in which case these values need not be re-enlisted.
deletes - A collection of object IDs that have been deleted and must therefore be dropped from the cache.

get

public PCData get(Object oid)
Return the cached object for the given oid. Modifying the returned object may or may not change the cached value; the updateValue(kodo.runtime.PCData) method should be used to re-cache any changed objects.
Returns:
the object matching the given oid, or null if none

put

public PCData put(PCData value)
Set the cached value for the given instance. This does not result in an update of other caches. Rather, it should only be used for loading clean data into the cache. Meaningful changes to the state of the cache should be made via the batchUpdate(java.util.Collection, java.util.Collection, java.util.Collection, java.util.Collection) method.
Returns:
The previously cached value, or null if the value was not previously cached. See Map.put(java.lang.Object, java.lang.Object) for more information.

updateValue

public void updateValue(PCData value)

Update the cached value for the given instance. This does not result in an update of other caches. Rather, it should only be used for loading clean data into the cache. Meaningful changes to the state of the cache should be made via the batchUpdate(java.util.Collection, java.util.Collection, java.util.Collection, java.util.Collection) method.

A cache implementation may or may not return a live object from get(java.lang.Object) invocations. If an object retrieved from a get(java.lang.Object) operation needs to be updated, this method can be invoked instead of invoking put(kodo.runtime.PCData). The DataCache implementation can then make optimizations based on how its get(java.lang.Object) method works.


remove

public PCData remove(Object oid)
Remove the value stored under the given oid. This does not result in an update of other caches. Rather, it should only be used for removing data into the cache. Meaningful changes to the state of the cache should be made via the batchUpdate(java.util.Collection, java.util.Collection, java.util.Collection, java.util.Collection) method.
Returns:
The previously cached value, or null if the oid was not previously cached. See Map.remove(java.lang.Object) for more information.

clear

public void clear()
Remove all data from this cache. This does not result in an update of other caches. Rather, it should only be used for clearing the cache. Meaningful changes to the state of the cache should be made via the batchUpdate(java.util.Collection, java.util.Collection, java.util.Collection, java.util.Collection) method.

pin

public boolean pin(Object oid)
Pin the value stored under oid into the cache. This method guarantees that oid's value will not be dropped by the caching algorithm. This method does not affect the behavior of remove(java.lang.Object).
Returns:
true if oid's value was pinned into the cache; false if the oid is not in the cache.

unpin

public boolean unpin(Object oid)
Unpin the value stored under oid into the cache. This method reverses a previous invocation of pin(java.lang.Object). This method does not remove anything from the cache; it merely makes oid's value a candidate for flushing from the cache.
Returns:
true if oid's value was unpinned from the cache; false if the oid is not in the cache.

close

public void close()
Close this cache, dropping all hard references and releasing any resources that this cache maintains.
Specified by:
close in interface com.solarmetric.util.Closeable

containsKey

public boolean containsKey(Object oid)
Returns true if this cache contains data corresponding to oid; otherwise returns false.

setName

public void setName(String name)
Sets a string name to be used to identify this cache to end-user needs.
Since:
2.5.0

getName

public String getName()
Returns a string name that can be used by end-user-visible code to identify this cache.
Since:
2.5.0

registerListener

public void registerListener(ExpirationListener listen)
Add a new expiration event listener to this cache.
Since:
2.5.0

removeListener

public boolean removeListener(ExpirationListener listen)
Remove an expiration event listener from this cache.
Since:
2.5.0

SolarMetric Kodo JDO 3.0.3 generated on February 20 2004

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