SolarMetric Kodo JDO 3.3.5 generated on August 31 2005

kodo.datacache
Interface DataCache

All Superinterfaces:
com.solarmetric.util.Closeable
All Known Implementing Classes:
AbstractDataCache

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 as well so that they will be given the system configuration just after construction.

Implementations should take care not to return timed out data.

See Also:
AbstractDataCache, DataCachePCData.isTimedOut()

Field Summary
static String DEFAULT_NAME
          The name of the default data cache: default
 
Method Summary
 void addExpirationListener(ExpirationListener listen)
          Add a new expiration event listener to this cache.
 void clear()
          Remove all data from this cache.
 void close()
          Free the resources used by this cache.
 void commit(Collection additions, Collection newUpdates, Collection existingUpdates, Collection deletes)
          Perform a batch update of the cache.
 boolean contains(Object oid)
          Returns true if this cache contains data corresponding to oid; otherwise returns false.
 BitSet containsAll(Collection oids)
          Returns the indexes of the oids in this cache.
 DataCachePCData 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.
 void initialize(DataCacheManager manager)
          Initialize any resources associated with the given DataCacheManager.
 boolean pin(Object oid)
          Pin the value stored under oid into the cache.
 BitSet pinAll(Collection oids)
          Pin all oids to the cache.
 DataCachePCData put(DataCachePCData value)
          Set the cached value for the given instance.
 DataCachePCData remove(Object oid)
          Remove the value stored under the given oid.
 BitSet removeAll(Collection oids)
          Remove the values stored under the given oids.
 boolean removeExpirationListener(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 from the cache.
 BitSet unpinAll(Collection oids)
          Unpin all oids from the cache.
 void update(DataCachePCData 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

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

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

initialize

public void initialize(DataCacheManager manager)
Initialize any resources associated with the given DataCacheManager.

commit

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

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

All changes made to cached data must be made 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 DataCachePCData objects. These represent data that have been newly created, and thus must be added to the cache.
newUpdates - A collection of DataCachePCData 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 DataCachePCData 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.

contains

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

containsAll

public BitSet containsAll(Collection oids)
Returns the indexes of the oids in this cache.

get

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

put

public DataCachePCData put(DataCachePCData 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 commit(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.

update

public void update(DataCachePCData 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 commit(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.datacache.DataCachePCData). The DataCache implementation can then make optimizations based on how its get(java.lang.Object) method works.


remove

public DataCachePCData 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 commit(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.

removeAll

public BitSet removeAll(Collection oids)
Remove the values stored under the given oids.
Returns:
the indexes of the removed oids
See Also:
remove(java.lang.Object)

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 commit(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.

pinAll

public BitSet pinAll(Collection oids)
Pin all oids to the cache.
Returns:
the indexes of the pinned oids
See Also:
pin(java.lang.Object)

unpin

public boolean unpin(Object oid)
Unpin the value stored under oid from 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.

unpinAll

public BitSet unpinAll(Collection oids)
Unpin all oids from the cache.
Returns:
the indexes of the unpinned oids
See Also:
unpin(java.lang.Object)

addExpirationListener

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

removeExpirationListener

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

close

public void close()
Free the resources used by this cache.
Specified by:
close in interface com.solarmetric.util.Closeable

SolarMetric Kodo JDO 3.3.5 generated on August 31 2005

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