|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.openjpa.lib.util.concurrent.AbstractConcurrentEventManager
org.apache.openjpa.datacache.AbstractQueryCache
public abstract class AbstractQueryCache
Abstract QueryCache implementation that provides various
statistics, logging, and timeout functionality common across cache
implementations.
| Nested Class Summary | |
|---|---|
static class |
AbstractQueryCache.Default<T>
A default implementation of query statistics for the Query result cache. |
static class |
AbstractQueryCache.EvictPolicy
|
| Field Summary | |
|---|---|
protected OpenJPAConfiguration |
conf
The configuration set by the system. |
protected ConcurrentHashMap<String,Long> |
entityTimestampMap
|
AbstractQueryCache.EvictPolicy |
evictPolicy
|
protected Log |
log
The log to use. |
| Fields inherited from class org.apache.openjpa.lib.util.concurrent.AbstractConcurrentEventManager |
|---|
_listeners |
| Constructor Summary | |
|---|---|
AbstractQueryCache()
|
|
| Method Summary | |
|---|---|
void |
addTypesChangedListener(TypesChangedListener listen)
Add a new types 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. |
protected void |
close(boolean clear)
|
int |
count()
|
void |
endConfiguration()
Invoked upon completion of bean property configuration for this object. |
protected void |
fireEvent(Object event,
Object listener)
Implement this method to fire the given event to the given listener. |
QueryResult |
get(QueryKey key)
Return a list of oids for the given query key. |
List<Long> |
getAllEntityTimestamp(List<String> keyList)
Returns a list of timestamps in the form of Long objects which are the last updated time stamps for the given entities in the keylist. |
boolean |
getEnableStatistics()
|
AbstractQueryCache.EvictPolicy |
getEvictPolicy()
Returns the evictionPolicy for QueryCache |
protected abstract QueryResult |
getInternal(QueryKey qk)
Return the list for the given key. |
String |
getName()
|
QueryStatistics<QueryKey> |
getStatistics()
Gets the simple statistics for query results. |
void |
initialize(DataCacheManager manager)
Initialize any resources associated with the given DataCacheManager. |
boolean |
isClosed()
|
protected abstract Collection |
keySet()
Return a threadsafe view of the keys in this cache. |
protected Collection |
newListenerCollection()
Individual query results will be registered as types changed listeners. |
void |
onTypesChanged(TypesChangedEvent ev)
Notification that instances of persistent types have changed. |
boolean |
pin(QueryKey key)
Pin the value stored under qk into the
cache. |
protected abstract boolean |
pinInternal(QueryKey qk)
Pin an object to the cache. |
QueryResult |
put(QueryKey qk,
QueryResult oids)
Set the list of OIDs for the given query key. |
protected abstract QueryResult |
putInternal(QueryKey qk,
QueryResult oids)
Add the given result to the cache, returning the old result under the given key. |
QueryResult |
remove(QueryKey key)
Remove the value stored under the given query key. |
protected void |
removeAllInternal(Collection qks)
Remove all results under the given keys from the cache. |
protected abstract QueryResult |
removeInternal(QueryKey qk)
Remove the result under the given key from the cache. |
boolean |
removeTypesChangedListener(TypesChangedListener listen)
Remove an types event listener from this cache. |
void |
setConfiguration(Configuration conf)
Invoked prior to setting bean properties. |
void |
setEnableStatistics(boolean enable)
|
void |
setEvictPolicy(String evictPolicy)
Sets the eviction policy for the query cache |
void |
setName(String n)
|
void |
startConfiguration()
Invoked before bean property configuration is begun on this object. |
boolean |
unpin(QueryKey key)
Unpin the value stored under key into the cache. |
protected abstract boolean |
unpinInternal(QueryKey qk)
Unpin an object from the cache. |
protected void |
updateEntityTimestamp(Map<String,Long> timestampMap)
Updates the entity timestamp map with the current time in milliseconds |
| Methods inherited from class org.apache.openjpa.lib.util.concurrent.AbstractConcurrentEventManager |
|---|
addListener, fireEvent, getListeners, hasListener, hasListeners, isFailFast, removeListener, setFailFast |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface org.apache.openjpa.datacache.QueryCache |
|---|
writeLock, writeUnlock |
| Field Detail |
|---|
protected OpenJPAConfiguration conf
protected Log log
protected ConcurrentHashMap<String,Long> entityTimestampMap
public AbstractQueryCache.EvictPolicy evictPolicy
| Constructor Detail |
|---|
public AbstractQueryCache()
| Method Detail |
|---|
public void setEnableStatistics(boolean enable)
public boolean getEnableStatistics()
public QueryStatistics<QueryKey> getStatistics()
QueryCache
getStatistics in interface QueryCachepublic void initialize(DataCacheManager manager)
QueryCacheDataCacheManager.
initialize in interface QueryCachepublic void onTypesChanged(TypesChangedEvent ev)
TypesChangedListener
onTypesChanged in interface TypesChangedListenerpublic QueryResult get(QueryKey key)
QueryCache
get in interface QueryCache
public QueryResult put(QueryKey qk,
QueryResult oids)
QueryCache
put in interface QueryCachenull if
the key was not previously cached. See Map.put(K, V)
for more information.public QueryResult remove(QueryKey key)
QueryCacheQueryCache class. Instead, the cache should
be updated by implementing RemoteCommitListener,
which will result in all queries that may be invalid being dropped.
remove in interface QueryCachenull if
the key was not previously cached. See Map.remove(java.lang.Object)
for more information.public boolean pin(QueryKey key)
QueryCacheqk into the
cache. This method guarantees that qk's value
will not be expired if the cache exceeds its capacity. It
causes this data to be ignored when determining whether or not
the cache is full, effectively increasing the total amount of
data stored in the cache. This method does not affect the
behavior of QueryCache.remove(org.apache.openjpa.datacache.QueryKey) or TypesChangedListener.onTypesChanged(org.apache.openjpa.datacache.TypesChangedEvent).
pin in interface QueryCachetrue if key's value was
pinned into the cache; false if the key is not in the cache.public boolean unpin(QueryKey key)
QueryCachekey into the cache.
This method reverses a previous invocation of QueryCache.pin(org.apache.openjpa.datacache.QueryKey).
This method does not remove anything from the cache; it merely
makes key's value a candidate for flushing from the cache.
unpin in interface QueryCachetrue if key's value was
unpinned from the cache; false if the
key is not in the cache.public void clear()
QueryCache
clear in interface QueryCachepublic void close()
QueryCache
close in interface QueryCacheclose in interface Closeableprotected void close(boolean clear)
public boolean isClosed()
public void addTypesChangedListener(TypesChangedListener listen)
QueryCache
addTypesChangedListener in interface QueryCachepublic boolean removeTypesChangedListener(TypesChangedListener listen)
QueryCache
removeTypesChangedListener in interface QueryCachepublic void afterCommit(RemoteCommitEvent event)
RemoteCommitListener interface. If
your cache subclass relies on OpenJPA for clustering support, make it
implement RemoteCommitListener. This method will take
care of invalidating entries from remote commits, by delegating to
onTypesChanged(org.apache.openjpa.datacache.TypesChangedEvent).
protected abstract Collection keySet()
protected abstract QueryResult getInternal(QueryKey qk)
protected abstract QueryResult putInternal(QueryKey qk,
QueryResult oids)
protected abstract QueryResult removeInternal(QueryKey qk)
protected void removeAllInternal(Collection qks)
protected abstract void clearInternal()
protected abstract boolean pinInternal(QueryKey qk)
protected abstract boolean unpinInternal(QueryKey qk)
public void setConfiguration(Configuration conf)
Configurable
setConfiguration in interface Configurablepublic void startConfiguration()
Configurable
startConfiguration in interface Configurablepublic void endConfiguration()
Configurable
endConfiguration in interface Configurable
protected void fireEvent(Object event,
Object listener)
AbstractConcurrentEventManager
fireEvent in class AbstractConcurrentEventManagerprotected Collection newListenerCollection()
newListenerCollection in class AbstractConcurrentEventManagerpublic void setEvictPolicy(String evictPolicy)
evictPolicy - -- String value that specifies the eviction policypublic AbstractQueryCache.EvictPolicy getEvictPolicy()
protected void updateEntityTimestamp(Map<String,Long> timestampMap)
timestampMap - -- a map that contains entityname and its last
updated timestamppublic List<Long> getAllEntityTimestamp(List<String> keyList)
keyList - -- List of entity names
public void setName(String n)
public String getName()
public int count()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||