|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.jboss.cache.DataContainerImpl
public class DataContainerImpl
A container for the root node in the cache, which also provides helpers for efficiently accessing nodes, walking trees, etc.
| Constructor Summary | |
|---|---|
DataContainerImpl()
|
|
| Method Summary | |
|---|---|
List<NodeData> |
buildNodeData(List<NodeData> list,
NodeSPI node)
Prepares a list of NodeData objects for a specified node and all its children. |
Object[] |
createNodes(Fqn fqn)
Traverses the tree to the given Fqn, creating nodes if needed. |
void |
createRootNode()
|
boolean |
evict(Fqn fqn)
Following scenarios define how eviction works. |
void |
evict(Fqn fqn,
boolean recursive)
Evicts the given node. |
boolean |
exists(Fqn fqn)
Tests if an Fqn exists and is valid and not deleted. |
Set<Fqn> |
getInternalFqns()
Returns a Set |
List<Fqn> |
getNodesForEviction(Fqn fqn,
boolean recursive)
Generates a list of nodes for eviction. |
int |
getNumberOfAttributes()
Returns an approximation of the total number of attributes in the cache. |
int |
getNumberOfAttributes(Fqn fqn)
Returns an approximation of the total number of attributes in this sub cache. |
int |
getNumberOfLocksHeld()
Returns the number of read or write locks held across the entire cache. |
int |
getNumberOfNodes()
Returns an approximation of the total number of nodes in the cache. |
NodeSPI |
getRoot()
Retrieves the root node. |
boolean |
hasChildren(Fqn fqn)
Returns true if the Fqn exists, is valid and is not deleted, and the node has children. |
void |
injectDependencies(Configuration configuration,
NodeFactory nodeFactory,
LockManager lockManager,
BuddyFqnTransformer transformer)
|
NodeSPI |
peek(Fqn fqn)
Finds a node given a fully qualified name, directly off the interceptor chain. |
NodeSPI |
peek(Fqn<?> fqn,
boolean includeDeletedNodes)
Same as calling peek(fqn, includeDeletedNodes, false). |
NodeSPI |
peek(Fqn<?> fqn,
boolean includeDeletedNodes,
boolean includeInvalidNodes)
Peeks for a specified node. |
NodeSPI |
peekStrict(GlobalTransaction gtx,
Fqn fqn,
boolean includeInvalid)
Similar to DataContainer.peekVersioned(Fqn, org.jboss.cache.optimistic.DataVersion) except that it throws a NodeNotExistsException
if the node cannot be found. |
NodeSPI |
peekVersioned(Fqn fqn,
DataVersion version)
Finds a node given a fully qualified name and DataVersion. |
NodeSPI |
peekVersioned(Fqn fqn,
DataVersion version,
boolean includeInvalidNodes)
Searches for a specific node, with a specific data version and, optionally, invalid nodes as well, but not deleted nodes. |
String |
printDetails()
Prints information about the contents of the nodes in the cache's current in-memory state. |
String |
printLockInfo()
Returns lock information. |
void |
registerInternalFqn(Fqn fqn)
Adds the specified Fqn to the list of Fqns to be considered "internal". |
protected void |
removeData(Fqn fqn)
|
boolean |
removeFromDataStructure(Fqn f,
boolean skipMarkerCheck)
Removes the actual node from the tree data structure. |
void |
setBuddyFqnTransformer(BuddyFqnTransformer buddyFqnTransformer)
|
void |
setDependencies(Configuration configuration,
NodeFactory nodeFactory,
LockManager lockManager)
|
void |
setRoot(NodeSPI root)
Sets the root node reference to the node passed in. |
void |
stop()
|
String |
toString()
|
String |
toString(boolean details)
Returns a debug string with optional details of contents. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public DataContainerImpl()
| Method Detail |
|---|
public void injectDependencies(Configuration configuration,
NodeFactory nodeFactory,
LockManager lockManager,
BuddyFqnTransformer transformer)
public void setDependencies(Configuration configuration,
NodeFactory nodeFactory,
LockManager lockManager)
public void createRootNode()
public void stop()
public NodeSPI getRoot()
DataContainer
getRoot in interface DataContainerpublic void setRoot(NodeSPI root)
root - nodepublic void registerInternalFqn(Fqn fqn)
DataContainer
registerInternalFqn in interface DataContainerfqn - fqn to add to listpublic NodeSPI peek(Fqn fqn)
peek in interface DataContainerfqn - Fully qualified name for the corresponding node.
public NodeSPI peekStrict(GlobalTransaction gtx,
Fqn fqn,
boolean includeInvalid)
DataContainerDataContainer.peekVersioned(Fqn, org.jboss.cache.optimistic.DataVersion) except that it throws a NodeNotExistsException
if the node cannot be found.
peekStrict in interface DataContainergtx - global transactionfqn - fqn to findincludeInvalid - if true, invalid nodes are considered as well.
public NodeSPI peekVersioned(Fqn fqn,
DataVersion version)
DataContainer
peekVersioned in interface DataContainerfqn - fqn to findversion - version of the node to find
public NodeSPI peekVersioned(Fqn fqn,
DataVersion version,
boolean includeInvalidNodes)
DataContainer
peekVersioned in interface DataContainerfqn - Fqn to findversion - version of the node to findincludeInvalidNodes - if true, invalid nodes are considered
public NodeSPI peek(Fqn<?> fqn,
boolean includeDeletedNodes)
DataContainer
peek in interface DataContainerfqn - Fqn to findincludeDeletedNodes - if true, deleted nodes are considered
public NodeSPI peek(Fqn<?> fqn,
boolean includeDeletedNodes,
boolean includeInvalidNodes)
DataContainer
peek in interface DataContainerfqn - Fqn of the node to findincludeDeletedNodes - if true, deleted nodes are also consideredincludeInvalidNodes - if true, invalid nodes are also considered
public boolean exists(Fqn fqn)
DataContainer
exists in interface DataContainerfqn - the fqn representing the node to test
public boolean hasChildren(Fqn fqn)
DataContainer
hasChildren in interface DataContainerfqn - the fqn to test
public List<NodeData> buildNodeData(List<NodeData> list,
NodeSPI node)
DataContainerNodeData objects for a specified node and all its children.
buildNodeData in interface DataContainerlist - List of NodeData objects, which will be added to.node - node to recursively add to the list
public List<Fqn> getNodesForEviction(Fqn fqn,
boolean recursive)
DataContainerNode.setResident(boolean).
getNodesForEviction in interface DataContainerfqn - the node to consider for evictionrecursive - if recursive, child nodes are also considered
public String toString()
toString in class Objectpublic Set<Fqn> getInternalFqns()
DataContainerBuddyManager.BUDDY_BACKUP_SUBTREE if buddy replication is
enabled.
getInternalFqns in interface DataContainernull.public String toString(boolean details)
details - if true, details are printed
public int getNumberOfLocksHeld()
DataContainer
getNumberOfLocksHeld in interface DataContainerpublic int getNumberOfNodes()
DataContainer
getNumberOfNodes in interface DataContainerpublic String printDetails()
public String printLockInfo()
public int getNumberOfAttributes(Fqn fqn)
DataContainer
getNumberOfAttributes in interface DataContainerpublic int getNumberOfAttributes()
getNumberOfAttributes in interface DataContainer
public boolean removeFromDataStructure(Fqn f,
boolean skipMarkerCheck)
DataContainer
removeFromDataStructure in interface DataContainerf - the Fqn of the node to removeskipMarkerCheck - if true, skips checking the boolean NodeSPI.isDeleted() flag and deletes the node anyway.
public void evict(Fqn fqn,
boolean recursive)
DataContainer
evict in interface DataContainerpublic boolean evict(Fqn fqn)
DataContainerFollowing scenarios define how eviction works. 1. If the given node is a leaf then it is entirely removed from the data structure. The node is marked as invalid. 2. If the given node is a leaf then only the data map is cleared. 3. If the given node is the root node then the cildren nodes are evicted. For each child node 1. or 2. applies
evict in interface DataContainerprotected void removeData(Fqn fqn)
public Object[] createNodes(Fqn fqn)
DataContainer
Object[] results = createNode(myFqn);
results[0] // this is a List<NodeSPI> of nodes created in getting to the target node.
results[1] // is a NodeSPI reference to the target node, regardless of whether it was created or just found.
createNodes in interface DataContainerfqn - fqn to find
public void setBuddyFqnTransformer(BuddyFqnTransformer buddyFqnTransformer)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||