|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.jboss.cache.invocation.AbstractInvocationDelegate org.jboss.cache.invocation.CacheInvocationDelegate<K,V>
public class CacheInvocationDelegate<K,V>
The delegate that users (and ChainedInterceptor authors) interact with when they create a cache by using a cache factory. This wrapper delegates calls down the interceptor chain.
Field Summary |
---|
Fields inherited from class org.jboss.cache.invocation.AbstractInvocationDelegate |
---|
componentRegistry, configuration, invocationContextContainer, invoker, originLocal |
Constructor Summary | |
---|---|
CacheInvocationDelegate()
|
Method Summary | |
---|---|
void |
addCacheListener(Object listener)
Adds a CacheListener -annotated object to the entire cache. |
void |
addInterceptor(CommandInterceptor i,
Class<? extends CommandInterceptor> afterInterceptor)
Adds a custom interceptor to the interceptor chain, after an instance of the specified interceptor type. |
void |
addInterceptor(CommandInterceptor i,
int position)
Adds a custom interceptor to the interceptor chain, at specified position, where the first interceptor in the chain is at position 0 and the last one at getInterceptorChain().size() - 1. |
protected void |
cacheStatusCheck(InvocationContext ctx)
|
void |
clearData(Fqn fqn)
Removes the keys and properties from a named node. |
void |
clearData(String fqn)
Removes the keys and properties from a node. |
void |
create()
Lifecycle method that initializes configuration state, the root node, etc. |
void |
destroy()
Lifecycle method that destroys the cache and removes any interceptors/configuration elements. |
void |
endBatch(boolean successful)
Ends an existing ongoing batch. |
void |
evict(Fqn fqn)
Eviction call that evicts the specified Node from memory. |
void |
evict(Fqn fqn,
boolean recursive)
Eviction call that evicts the specified Node from memory. |
boolean |
exists(Fqn fqn)
Helper method that does a peek and ensures that the result of the peek is not null. |
boolean |
exists(String fqn)
A convenience method that takes a String representation of an Fqn. |
V |
get(Fqn fqn,
K key)
Convenience method that allows for direct access to the data in a Node . |
V |
get(String fqn,
K key)
Convenience method that takes a string representation of an Fqn. |
BuddyManager |
getBuddyManager()
Retrieves the current BuddyManager instance associated with the current Cache instance. |
Set<Object> |
getCacheListeners()
Retrieves an immutable List of objects annotated as CacheListener s attached to the cache. |
CacheLoaderManager |
getCacheLoaderManager()
Retrieves the current CacheCacheLoaderManager instance associated with the current Cache instance. |
CacheStatus |
getCacheStatus()
Gets where the cache currently is its lifecycle transitions. |
Set<Object> |
getChildrenNames(Fqn fqn)
Returns all children of a given node. |
Set<String> |
getChildrenNames(String fqn)
Convenience method that takes a String representation of an Fqn. |
String |
getClusterName()
|
ComponentRegistry |
getComponentRegistry()
Returns the component registry associated with this cache instance. |
Configuration |
getConfiguration()
Retrieves the configuration of this cache. |
GlobalTransaction |
getCurrentTransaction()
Returns the transaction associated with the current thread. |
GlobalTransaction |
getCurrentTransaction(Transaction tx,
boolean createIfNotExists)
Returns the global transaction for this local transaction. |
Map<K,V> |
getData(Fqn fqn)
Retrieves a defensively copied data map of the underlying node. |
DataContainer |
getDataContainer()
|
List<CommandInterceptor> |
getInterceptorChain()
Retrieves the current Interceptor chain. |
Set<Fqn> |
getInternalFqns()
Returns a Set |
InvocationContext |
getInvocationContext()
|
Set<K> |
getKeys(Fqn fqn)
Returns a set of attribute keys for the Fqn. |
Set<K> |
getKeys(String fqn)
Convenience method that takes in a String represenation of the Fqn. |
org.jgroups.Address |
getLocalAddress()
Returns the local address of this cache in a cluster, or null
if running in local mode. |
Marshaller |
getMarshaller()
Retrieves an instance of a Marshaller , which is capable of
converting Java objects to bytestreams and back in an efficient manner, which is
also interoperable with bytestreams produced/consumed by other versions of JBoss
Cache. |
List<org.jgroups.Address> |
getMembers()
Returns a list of members in the cluster, or null
if running in local mode. |
NodeSPI<K,V> |
getNode(Fqn fqn)
A convenience method to retrieve a node directly from the cache. |
NodeSPI<K,V> |
getNode(String fqn)
Convenience method that takes a string representation of an Fqn. |
Notifier |
getNotifier()
Retrieves the current Notifier instance associated with the current Cache instance. |
int |
getNumberOfAttributes()
|
int |
getNumberOfLocksHeld()
|
int |
getNumberOfNodes()
|
Region |
getRegion(Fqn fqn,
boolean createIfAbsent)
Retrieves a Region for a given Fqn . |
RegionManager |
getRegionManager()
Retrieves the current RegionManager instance associated with the current Cache instance. |
NodeSPI<K,V> |
getRoot()
Returns the root node of this cache. |
RPCManager |
getRPCManager()
Gets a handle of the RPC manager. |
StateTransferManager |
getStateTransferManager()
Retrieves the current StateTransferManager instance associated with the current Cache instance. |
TransactionManager |
getTransactionManager()
Retrieves a reference to a running TransactionManager , if one is configured. |
TransactionTable |
getTransactionTable()
Retrieves the current TransactionTable instance associated with the current Cache instance. |
String |
getVersion()
Returns the version of the cache as a string. |
GravitateResult |
gravitateData(Fqn fqn,
boolean searchBuddyBackupSubtrees,
InvocationContext ctx)
Used with buddy replication's data gravitation interceptor. |
void |
initialize(StateTransferManager stateTransferManager,
CacheLoaderManager cacheLoaderManager,
Notifier notifier,
TransactionManager transactionManager,
BuddyManager buddyManager,
TransactionTable transactionTable,
RPCManager rpcManager,
RegionManager regionManager,
Marshaller marshaller,
CommandsFactory commandsFactory,
DataContainer dataContainer,
MVCCNodeHelper mvccHelper,
BatchContainer batchContainer)
|
void |
move(Fqn nodeToMove,
Fqn newParent)
Moves a part of the cache to a different subtree. |
void |
move(String nodeToMove,
String newParent)
Convenience method that takes in string representations of Fqns. |
NodeSPI<K,V> |
peek(Fqn fqn,
boolean includeDeletedNodes)
Returns a node without accessing the interceptor chain. |
NodeSPI<K,V> |
peek(Fqn fqn,
boolean includeDeletedNodes,
boolean includeInvalidNodes)
Returns a node without accessing the interceptor chain, optionally returning nodes that are marked as invalid ( Node.isValid() == false). |
V |
put(Fqn fqn,
K key,
V value)
Associates the specified value with the specified key for a Node in this cache. |
void |
put(Fqn fqn,
Map<? extends K,? extends V> data)
Copies all of the mappings from the specified map to a Node . |
V |
put(String fqn,
K key,
V value)
Convenience method that takes a string representation of an Fqn. |
void |
put(String fqn,
Map<? extends K,? extends V> data)
Convenience method that takes a string representation of an Fqn. |
void |
putForExternalRead(Fqn fqn,
K key,
V value)
Under special operating behavior, associates the value with the specified key for a node identified by the Fqn passed in. |
V |
remove(Fqn fqn,
K key)
Removes the mapping for this key from a Node. |
V |
remove(String fqn,
K key)
Convenience method that takes a string representation of an Fqn. |
void |
removeCacheListener(Object listener)
Removes a CacheListener -annotated object from the cache. |
void |
removeInterceptor(Class<? extends CommandInterceptor> interceptorType)
Removes the interceptor of specified type. |
void |
removeInterceptor(int position)
Removes the interceptor at a specified position, where the first interceptor in the chain is at position 0 and the last one at getInterceptorChain().size() - 1. |
boolean |
removeNode(Fqn fqn)
Removes a Node indicated by absolute Fqn . |
boolean |
removeNode(String fqn)
Convenience method that takes a string representation of an Fqn. |
boolean |
removeRegion(Fqn fqn)
Removes a region denoted by the Fqn passed in. |
void |
setData(Fqn fqn,
Map<? extends K,? extends V> data)
|
void |
setData(String fqn,
Map<? extends K,? extends V> data)
|
void |
setInvocationContext(InvocationContext ctx)
Sets the passed in InvocationContext as current. |
void |
start()
Lifecycle method that starts the cache loader, starts cache replication, starts the region manager, etc., and (if configured) warms the cache using a state transfer or cache loader preload. |
void |
startBatch()
Starts a batch. |
void |
stop()
Lifecycle method that stops the cache, including replication, clustering, cache loading, notifications, etc., and clears all cache in-memory state. |
String |
toString()
|
Methods inherited from class org.jboss.cache.invocation.AbstractInvocationDelegate |
---|
assertIsConstructed, initialize |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public CacheInvocationDelegate()
Method Detail |
---|
public void initialize(StateTransferManager stateTransferManager, CacheLoaderManager cacheLoaderManager, Notifier notifier, TransactionManager transactionManager, BuddyManager buddyManager, TransactionTable transactionTable, RPCManager rpcManager, RegionManager regionManager, Marshaller marshaller, CommandsFactory commandsFactory, DataContainer dataContainer, MVCCNodeHelper mvccHelper, BatchContainer batchContainer)
public String toString()
toString
in class Object
public Configuration getConfiguration()
Cache
getConfiguration
in interface Cache<K,V>
public NodeSPI<K,V> getRoot()
Cache
getRoot
in interface Cache<K,V>
getRoot
in interface CacheSPI<K,V>
public TransactionManager getTransactionManager()
CacheSPI
TransactionManager
, if one is configured.
From 2.1.0, Interceptor authors should obtain this by injection rather than this method. See the
Inject
annotation.
getTransactionManager
in interface CacheSPI<K,V>
public void addInterceptor(CommandInterceptor i, int position)
Cache
addInterceptor
in interface Cache<K,V>
i
- the interceptor to addposition
- the position to add the interceptorpublic void addInterceptor(CommandInterceptor i, Class<? extends CommandInterceptor> afterInterceptor)
Cache
addInterceptor
in interface Cache<K,V>
i
- interceptor to addafterInterceptor
- interceptor type after which to place custom interceptorpublic List<CommandInterceptor> getInterceptorChain()
CacheSPI
Inject
annotation.
getInterceptorChain
in interface CacheSPI<K,V>
List
of CommandInterceptor
s configured for this cache, or
null
if create()
has not been invoked
and the interceptors thus do not exist.public void removeInterceptor(int position)
Cache
removeInterceptor
in interface Cache<K,V>
position
- the position at which to remove an interceptorpublic void removeInterceptor(Class<? extends CommandInterceptor> interceptorType)
Cache
removeInterceptor
in interface Cache<K,V>
interceptorType
- type of interceptor to removepublic CacheLoaderManager getCacheLoaderManager()
CacheSPI
Inject
annotation.
getCacheLoaderManager
in interface CacheSPI<K,V>
CacheLoaderManager
if one or more cache loaders are configured, null otherwise.public BuddyManager getBuddyManager()
CacheSPI
Inject
annotation.
getBuddyManager
in interface CacheSPI<K,V>
BuddyManager
if buddy replication is enabled, null otherwise.public TransactionTable getTransactionTable()
CacheSPI
Inject
annotation.
getTransactionTable
in interface CacheSPI<K,V>
TransactionTable
public RPCManager getRPCManager()
CacheSPI
Inject
annotation.
getRPCManager
in interface CacheSPI<K,V>
RPCManager
configured.public StateTransferManager getStateTransferManager()
CacheSPI
Inject
annotation.
getStateTransferManager
in interface CacheSPI<K,V>
StateTransferManager
public String getClusterName()
getClusterName
in interface CacheSPI<K,V>
public int getNumberOfAttributes()
getNumberOfAttributes
in interface CacheSPI<K,V>
public int getNumberOfNodes()
getNumberOfNodes
in interface CacheSPI<K,V>
public RegionManager getRegionManager()
CacheSPI
Inject
annotation.
getRegionManager
in interface CacheSPI<K,V>
RegionManager
public GlobalTransaction getCurrentTransaction(Transaction tx, boolean createIfNotExists)
CacheSPI
getCurrentTransaction
in interface CacheSPI<K,V>
tx
- the current transactioncreateIfNotExists
- if true creates a new transaction if none exists
public GlobalTransaction getCurrentTransaction()
CacheSPI
getCurrentTransaction
in interface CacheSPI<K,V>
public Set<Fqn> getInternalFqns()
CacheSPI
BuddyManager.BUDDY_BACKUP_SUBTREE
if buddy replication is
enabled.
getInternalFqns
in interface CacheSPI<K,V>
null
.public int getNumberOfLocksHeld()
getNumberOfLocksHeld
in interface CacheSPI<K,V>
public boolean exists(String fqn)
CacheSPI
CacheSPI.exists(Fqn)
.
Note that this call works
directly on the cache data structure and will not pass through the interceptor chain. Hence node locking, cache
loading or activation does not take place, and so the results of this call should not be treated as definitive.
exists
in interface CacheSPI<K,V>
public boolean exists(Fqn fqn)
CacheSPI
exists
in interface CacheSPI<K,V>
fqn
- Fqn to peek
public Notifier getNotifier()
CacheSPI
Inject
annotation.
getNotifier
in interface CacheSPI<K,V>
Notifier
, a class
that is responsible for emitting notifications to registered CacheListeners.public Marshaller getMarshaller()
CacheSPI
Marshaller
, which is capable of
converting Java objects to bytestreams and back in an efficient manner, which is
also interoperable with bytestreams produced/consumed by other versions of JBoss
Cache.
The use of this marshaller is the recommended way of creating efficient,
compatible, byte streams from objects.
From 2.1.0, Interceptor authors should obtain this by injection rather than this method. See the
Inject
annotation.
getMarshaller
in interface CacheSPI<K,V>
Marshaller
public GravitateResult gravitateData(Fqn fqn, boolean searchBuddyBackupSubtrees, InvocationContext ctx)
CacheSPI
Configuration.useRegionBasedMarshalling
and the Region
pertaining to the Fqn passed in is activated, and has an appropriate ClassLoader.
gravitateData
in interface CacheSPI<K,V>
fqn
- the fqn to gravitatesearchBuddyBackupSubtrees
- if true, buddy backup subtrees are searched and if false, they are not.
public NodeSPI<K,V> peek(Fqn fqn, boolean includeDeletedNodes, boolean includeInvalidNodes)
CacheSPI
Node.isValid()
== false).
Note that this call works
directly on the cache data structure and will not pass through the interceptor chain. Hence node locking, cache
loading or activation does not take place, and so the results of this call should not be treated as definitive. Concurrent node
removal, passivation, etc. may affect the results of this call.
peek
in interface CacheSPI<K,V>
fqn
- the Fqn to look up.includeDeletedNodes
- if you intend to see nodes marked as deleted within the current tx, set this to trueincludeInvalidNodes
- if true, nodes marked as being invalid are also returned.
public NodeSPI<K,V> peek(Fqn fqn, boolean includeDeletedNodes)
CacheSPI
peek
in interface CacheSPI<K,V>
fqn
- the Fqn to look up.includeDeletedNodes
- if you intend to see nodes marked as deleted within the current tx, set this to true
public void addCacheListener(Object listener)
Cache
CacheListener
-annotated object to the entire cache. The object passed in needs to be properly annotated with the
CacheListener
annotation otherwise an IncorrectCacheListenerException
will be thrown.
addCacheListener
in interface Cache<K,V>
listener
- listener to addpublic void removeCacheListener(Object listener)
Cache
CacheListener
-annotated object from the cache. The object passed in needs to be properly annotated with the
CacheListener
annotation otherwise an IncorrectCacheListenerException
will be thrown.
removeCacheListener
in interface Cache<K,V>
listener
- listener to removepublic Set<Object> getCacheListeners()
Cache
List
of objects annotated as CacheListener
s attached to the cache.
getCacheListeners
in interface Cache<K,V>
List
of objects annotated as CacheListener
s attached to the cache.public void create() throws CacheException
Cache
create
in interface Cache<K,V>
create
in interface Lifecycle
CacheException
- if there are creation problemspublic void start() throws CacheException
Cache
start
in interface Cache<K,V>
start
in interface Lifecycle
CacheException
- if there are startup problemspublic void stop()
Cache
stop
in interface Cache<K,V>
stop
in interface Lifecycle
public void destroy()
Cache
Cache.create()
and Cache.start()
.
destroy
in interface Cache<K,V>
destroy
in interface Lifecycle
public CacheStatus getCacheStatus()
Cache
getCacheStatus
in interface Cache<K,V>
null
.public InvocationContext getInvocationContext()
getInvocationContext
in interface Cache<K,V>
public void setInvocationContext(InvocationContext ctx)
Cache
InvocationContext
as current.
setInvocationContext
in interface Cache<K,V>
ctx
- invocation context to usepublic org.jgroups.Address getLocalAddress()
Cache
null
if running in local mode.
getLocalAddress
in interface Cache<K,V>
null
if running in local mode.public List<org.jgroups.Address> getMembers()
Cache
null
if running in local mode.
getMembers
in interface Cache<K,V>
List
of members in the cluster, or null
if running in local mode.public String getVersion()
Cache
getVersion
in interface Cache<K,V>
Version.printVersion()
public void move(Fqn nodeToMove, Fqn newParent) throws NodeNotExistsException
Cache
/a/b/c /a/b/d /a/b/e Fqn f1 = Fqn.fromString("/a/b/c"); Fqn f2 = Fqn.fromString("/a/b/d"); cache.move(f1, f2);Will result in:
/a/b/d/c /a/b/eand now
Fqn f3 = Fqn.fromString("/a/b/e"); Fqn f4 = Fqn.fromString("/a"); cache.move(f3, f4);will result in:
/a/b/d/c /a/eNo-op if the node to be moved is the root node. Note: As of 3.0.0 and when using MVCC locking, more specific behaviour is defined as follows:
move
in interface Cache<K,V>
nodeToMove
- the Fqn of the node to move.newParent
- new location under which to attach the node being moved.
NodeNotExistsException
- may throw one of these if the target node does not exist or if a different thread has moved this node elsewhere already.public void move(String nodeToMove, String newParent) throws NodeNotExistsException
Cache
Cache.move(Fqn, Fqn)
move
in interface Cache<K,V>
NodeNotExistsException
public boolean removeRegion(Fqn fqn)
Cache
removeRegion
in interface Cache<K,V>
fqn
- of the region to remove
public Region getRegion(Fqn fqn, boolean createIfAbsent)
Cache
Region
for a given Fqn
. If the region does not exist,
and
getRegion
in interface Cache<K,V>
fqn
- Fqn that is contained in a region.createIfAbsent
- If true, will create a new associated region if not found.
Region
public void evict(Fqn fqn, boolean recursive)
Cache
Node
from memory.
evict
in interface Cache<K,V>
fqn
- absolute Fqn
to the Node
to be evicted.recursive
- evicts children as wellpublic void evict(Fqn fqn)
Cache
Node
from memory. Not recursive.
evict
in interface Cache<K,V>
fqn
- absolute Fqn
to the Node
to be evicted.public V get(Fqn fqn, K key)
Cache
Node
.
get
in interface Cache<K,V>
fqn
- absolute Fqn
to the Node
to be accessed.key
- key under which value is to be retrieved.
Node
denoted by specified Fqn.public V get(String fqn, K key)
Cache
Cache.get(Fqn, Object)
get
in interface Cache<K,V>
fqn
- string representation of the Fqn to retrievekey
- key to fetch
public boolean removeNode(Fqn fqn)
Cache
Node
indicated by absolute Fqn
.
removeNode
in interface Cache<K,V>
fqn
- Node
to remove
public boolean removeNode(String fqn)
Cache
Cache.removeNode(Fqn)
removeNode
in interface Cache<K,V>
fqn
- string representation of the Fqn to retrieve
public NodeSPI<K,V> getNode(Fqn fqn)
Cache
getNode
in interface Cache<K,V>
getNode
in interface CacheSPI<K,V>
fqn
- fqn of the node to retrieve
public NodeSPI<K,V> getNode(String fqn)
Cache
Cache.getNode(Fqn)
getNode
in interface Cache<K,V>
getNode
in interface CacheSPI<K,V>
fqn
- string representation of the Fqn to retrieve
public V remove(Fqn fqn, K key) throws CacheException
Cache
null
if the Node contained no mapping for this key.
remove
in interface Cache<K,V>
fqn
- absolute Fqn
to the Node
to be accessed.key
- key whose mapping is to be removed from the Node
CacheException
public V remove(String fqn, K key)
Cache
Cache.remove(Fqn, Object)
remove
in interface Cache<K,V>
fqn
- string representation of the Fqn to retrievekey
- key to remove
public void put(Fqn fqn, Map<? extends K,? extends V> data)
Cache
Node
.
put
in interface Cache<K,V>
fqn
- absolute Fqn
to the Node
to copy the data todata
- mappings to copypublic void put(String fqn, Map<? extends K,? extends V> data)
Cache
Cache.put(Fqn, java.util.Map)
put
in interface Cache<K,V>
fqn
- String representation of the Fqndata
- data map to insertpublic void putForExternalRead(Fqn fqn, K key, V value)
Cache
putForExternalRead
in interface Cache<K,V>
fqn
- absolute Fqn
to the Node
to be accessed.key
- key with which the specified value is to be associated.value
- value to be associated with the specified key.public V put(Fqn fqn, K key, V value)
Cache
Node
in this cache.
If the Node
previously contained a mapping for this key, the old value is replaced by the specified value.
put
in interface Cache<K,V>
fqn
- absolute Fqn
to the Node
to be accessed.key
- key with which the specified value is to be associated.value
- value to be associated with the specified key.
null
if there was no mapping for key.
A null
return can also indicate that the Node previously associated null
with the specified key, if the implementation supports null values.public V put(String fqn, K key, V value)
Cache
Cache.put(Fqn, Object, Object)
put
in interface Cache<K,V>
fqn
- String representation of the Fqnkey
- key with which the specified value is to be associated.value
- value to be associated with the specified key.
null
if there was no mapping for key.
A null
return can also indicate that the Node previously associated null
with the specified key, if the implementation supports null values.public Map<K,V> getData(Fqn fqn)
Cache
getData
in interface Cache<K,V>
public Set<K> getKeys(String fqn)
Cache
Cache.getKeys(Fqn)
.
getKeys
in interface Cache<K,V>
public Set<K> getKeys(Fqn fqn)
Cache
getKeys
in interface Cache<K,V>
fqn
- name of the nodepublic void clearData(String fqn) throws CacheException
clearData
in interface Cache<K,V>
CacheException
public void clearData(Fqn fqn)
clearData
in interface Cache<K,V>
fqn
- name of the nodepublic void startBatch()
Cache
Cache.endBatch(boolean)
is called rather than for each invocation on the
cache.
Note that if there is an existing transaction in scope and the cache has been configured to use a JTA compliant
transaction manager, calls to Cache.startBatch()
and Cache.endBatch(boolean)
are ignored and treated as no-ops.
startBatch
in interface Cache<K,V>
Cache.endBatch(boolean)
public void endBatch(boolean successful)
Cache
Cache.startBatch()
and Cache.endBatch(boolean)
are ignored and treated as no-ops.
endBatch
in interface Cache<K,V>
successful
- if true, changes made in the batch are committed. If false, they are discarded.Cache.startBatch()
public Set<Object> getChildrenNames(Fqn fqn)
CacheSPI
getChildrenNames
in interface CacheSPI<K,V>
fqn
- The fully qualified name of the node
public Set<String> getChildrenNames(String fqn)
CacheSPI
CacheSPI.getChildrenNames(Fqn)
getChildrenNames
in interface CacheSPI<K,V>
fqn
- as a string
public ComponentRegistry getComponentRegistry()
CacheSPI
getComponentRegistry
in interface CacheSPI<K,V>
ComponentRegistry
public DataContainer getDataContainer()
protected void cacheStatusCheck(InvocationContext ctx)
public void setData(Fqn fqn, Map<? extends K,? extends V> data)
public void setData(String fqn, Map<? extends K,? extends V> data)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |