|
SolarMetric Kodo JDO 3.3.5 generated on August 31 2005 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--serp.util.AbstractEventManager | +--kodo.datacache.AbstractDataCache
Abstract DataCache
implementation that provides various
statistics, logging, and timeout functionality common across cache
implementations.
Field Summary | |
protected JDOConfiguration |
conf
The configuration set by the system. |
protected Log |
log
The log to use. |
Fields inherited from interface kodo.datacache.DataCache |
DEFAULT_NAME |
Constructor Summary | |
AbstractDataCache()
|
Method Summary | |
void |
addExpirationListener(ExpirationListener listen)
Add a new expiration event listener to this cache. |
void |
afterCommit(RemoteCommitEvent event)
This method is part of the RemoteCommitListener interface. |
void |
clear()
Remove all data from this cache. |
protected abstract void |
clearInternal()
Clear the 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 key)
Returns true if this cache contains data
corresponding to oid ; otherwise returns
false . |
BitSet |
containsAll(Collection keys)
Returns the indexes of the oids in this cache. |
void |
endConfiguration()
Invoked upon completion of bean property configuration for this object. |
protected void |
fireEvent(Object event,
Object listener)
|
DataCachePCData |
get(Object key)
Return the cached object for the given oid. |
String |
getEvictionSchedule()
|
double |
getHitRate()
Returns the percentage of hits. |
int |
getHits()
Returns the number of cache hits for invocations of the get(java.lang.Object)
method. |
protected abstract DataCachePCData |
getInternal(Object oid)
Return the object for the given oid. |
int |
getMisses()
Returns the number of cache misses for invocations of the get(java.lang.Object)
method. |
String |
getName()
Returns a string name that can be used by end-user-visible code to identify this cache. |
Collection |
getStatistics()
Get statistics exported by this object. |
String |
getStatisticsString()
Returns a localized string containing the number of hits, the number of misses, and the hit ratio ( hits / (hits+misses) ). |
void |
initialize(DataCacheManager manager)
Initialize any resources associated with the given DataCacheManager . |
boolean |
isClosed()
|
protected void |
keyRemoved(Object key,
boolean expired)
Invoke when a key is removed from this cache. |
boolean |
pin(Object key)
Pin the value stored under oid into the cache. |
BitSet |
pinAll(Collection keys)
Pin all oids to the cache. |
protected abstract boolean |
pinInternal(Object oid)
Pin an object to the cache. |
DataCachePCData |
put(DataCachePCData data)
Set the cached value for the given instance. |
protected void |
putAllInternal(Collection pcs)
All all of the given objects to the cache. |
protected abstract DataCachePCData |
putInternal(Object oid,
DataCachePCData pc)
Add the given object to the cache, returning the old object under the given oid. |
protected boolean |
recacheUpdates()
Return true if updates to data already in the
cache (either in commit(java.util.Collection, java.util.Collection, java.util.Collection, java.util.Collection) or the update(kodo.datacache.DataCachePCData) )
should be put back into the cache. |
DataCachePCData |
remove(Object key)
Remove the value stored under the given oid. |
BitSet |
removeAll(Collection keys)
Remove the values stored under the given oids. |
protected void |
removeAllInternal(Collection oids)
Remove all objects under the given oids from the cache. |
boolean |
removeExpirationListener(ExpirationListener listen)
Remove an expiration event listener from this cache. |
protected abstract DataCachePCData |
removeInternal(Object oid)
Remove the object under the given oid from the cache. |
void |
resetStatistics()
Reset the caching statistics. |
void |
setConfiguration(Configuration conf)
Invoked prior to setting bean properties. |
void |
setEvictionSchedule(String s)
|
void |
setName(String name)
Sets a string name to be used to identify this cache to end-user needs. |
void |
startConfiguration()
Invoked before bean property configuration is begun on this object. |
String |
toString()
|
boolean |
unpin(Object key)
Unpin the value stored under oid from the cache. |
BitSet |
unpinAll(Collection keys)
Unpin all oids from the cache. |
protected abstract boolean |
unpinInternal(Object oid)
Unpin an object from the cache. |
void |
update(DataCachePCData data)
Update the cached value for the given instance. |
Methods inherited from class serp.util.AbstractEventManager |
fireEvent, getListeners, hasListener, hasListeners, registerListener, removeListener |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
protected JDOConfiguration conf
protected Log log
Constructor Detail |
public AbstractDataCache()
Method Detail |
public String getName()
DataCache
getName
in interface DataCache
public void setName(String name)
DataCache
setName
in interface DataCache
public String getEvictionSchedule()
public void setEvictionSchedule(String s)
public void initialize(DataCacheManager manager)
DataCache
DataCacheManager
.initialize
in interface DataCache
public void commit(Collection additions, Collection newUpdates, Collection existingUpdates, Collection deletes)
DataCache
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.
commit
in interface DataCache
kodo.datacache.DataCache
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 DataCache.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.public boolean contains(Object key)
DataCache
true
if this cache contains data
corresponding to oid
; otherwise returns
false
.contains
in interface DataCache
public BitSet containsAll(Collection keys)
DataCache
containsAll
in interface DataCache
public DataCachePCData get(Object key)
DataCache
DataCache.update(kodo.datacache.DataCachePCData)
method should be used to re-cache any changed objects.get
in interface DataCache
kodo.datacache.DataCache
public DataCachePCData put(DataCachePCData data)
DataCache
DataCache.commit(java.util.Collection, java.util.Collection, java.util.Collection, java.util.Collection)
method.put
in interface DataCache
kodo.datacache.DataCache
null
if
the value was not previously cached. See Map.put(java.lang.Object, java.lang.Object)
for more information.public void update(DataCachePCData data)
DataCache
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 DataCache.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 DataCache.get(java.lang.Object)
invocations. If an object retrieved from a
DataCache.get(java.lang.Object)
operation needs to be updated, this method can be
invoked instead of invoking DataCache.put(kodo.datacache.DataCachePCData)
. The DataCache implementation
can then make optimizations based on how its DataCache.get(java.lang.Object)
method
works.
update
in interface DataCache
public DataCachePCData remove(Object key)
DataCache
DataCache.commit(java.util.Collection, java.util.Collection, java.util.Collection, java.util.Collection)
method.remove
in interface DataCache
kodo.datacache.DataCache
null
if
the oid was not previously cached. See Map.remove(java.lang.Object)
for more information.public BitSet removeAll(Collection keys)
DataCache
removeAll
in interface DataCache
kodo.datacache.DataCache
DataCache.remove(java.lang.Object)
public boolean pin(Object key)
DataCache
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 DataCache.remove(java.lang.Object)
.pin
in interface DataCache
kodo.datacache.DataCache
true
if oid
's value was
pinned into the cache; false
if the
oid is not in the cache.public BitSet pinAll(Collection keys)
DataCache
pinAll
in interface DataCache
kodo.datacache.DataCache
DataCache.pin(java.lang.Object)
public boolean unpin(Object key)
DataCache
oid
from the cache.
This method reverses a previous invocation of DataCache.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.unpin
in interface DataCache
kodo.datacache.DataCache
true
if oid
's value was
unpinned from the cache; false
if the
oid is not in the cache.public BitSet unpinAll(Collection keys)
DataCache
unpinAll
in interface DataCache
kodo.datacache.DataCache
DataCache.unpin(java.lang.Object)
public void clear()
DataCache
DataCache.commit(java.util.Collection, java.util.Collection, java.util.Collection, java.util.Collection)
method.clear
in interface DataCache
public void close()
DataCache
close
in interface DataCache
public boolean isClosed()
public void addExpirationListener(ExpirationListener listen)
DataCache
addExpirationListener
in interface DataCache
public boolean removeExpirationListener(ExpirationListener listen)
DataCache
removeExpirationListener
in interface DataCache
public String toString()
toString
in class Object
public void afterCommit(RemoteCommitEvent event)
RemoteCommitListener
interface. If
your cache subclass relies on Kodo for clustering support, make it
implement RemoteCommitListener
. This method will take
care of invalidating entries from remote commits.protected void keyRemoved(Object key, boolean expired)
protected boolean recacheUpdates()
true
if updates to data already in the
cache (either in commit(java.util.Collection, java.util.Collection, java.util.Collection, java.util.Collection)
or the update(kodo.datacache.DataCachePCData)
)
should be put back into the cache. Returns false by default.protected abstract DataCachePCData getInternal(Object oid)
protected abstract DataCachePCData putInternal(Object oid, DataCachePCData pc)
protected void putAllInternal(Collection pcs)
protected abstract DataCachePCData removeInternal(Object oid)
protected void removeAllInternal(Collection oids)
protected abstract void clearInternal()
protected abstract boolean pinInternal(Object oid)
protected abstract boolean unpinInternal(Object oid)
public int getHits()
get(java.lang.Object)
method.public int getMisses()
get(java.lang.Object)
method.public double getHitRate()
public String getStatisticsString()
hits / (hits+misses)
).public Collection getStatistics()
public void resetStatistics()
public void setConfiguration(Configuration conf)
Configurable
setConfiguration
in interface Configurable
public void startConfiguration()
Configurable
startConfiguration
in interface Configurable
public void endConfiguration()
Configurable
endConfiguration
in interface Configurable
protected void fireEvent(Object event, Object listener)
fireEvent
in class serp.util.AbstractEventManager
|
SolarMetric Kodo JDO 3.3.5 generated on August 31 2005 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |