@ThreadSafe
public interface Node<K,V>
named
logical grouping of data in the TreeCache
API of JBoss Cache
. A node
should be used to contain data for a single data record, for example information about a particular person or
account.
One purpose of grouping cache data into separate nodes is to minimize transaction locking interference, and increase
concurrency. So for example, when multiple threads or possibly distributed caches are accessing different accounts
simultaneously.
A node has references to its children, parent (each node except the root - defined by Fqn.ROOT
- has a single
parent) and data contained within the node (as key/value pairs). The data access methods are similar to the
collections Map
interface, but some are read-only or return copies of the underlying data.
TreeCache
Modifier and Type | Method and Description |
---|---|
Node<K,V> |
addChild(Fqn f)
Adds a child node with the given
Fqn under the current node. |
Node<K,V> |
addChild(Fqn f,
Flag... flags) |
void |
clearData()
Removes all mappings from the node's data map.
|
void |
clearData(Flag... flags) |
int |
dataSize() |
int |
dataSize(Flag... flags) |
V |
get(K key)
Returns the value to which this node maps the specified key.
|
V |
get(K key,
Flag... flags) |
Node<K,V> |
getChild(Fqn f)
Returns the child node
|
Node<K,V> |
getChild(Fqn f,
Flag... flags) |
Node<K,V> |
getChild(Object name) |
Node<K,V> |
getChild(Object name,
Flag... flags) |
Set<Node<K,V>> |
getChildren()
Returns an immutable set of children nodes.
|
Set<Node<K,V>> |
getChildren(Flag... flags) |
Set<Object> |
getChildrenNames()
Returns an immutable set of children node names.
|
Set<Object> |
getChildrenNames(Flag... flags) |
Map<K,V> |
getData()
Returns a map containing the data in this
Node . |
Map<K,V> |
getData(Flag... flags) |
Fqn |
getFqn()
|
Set<K> |
getKeys()
|
Set<K> |
getKeys(Flag... flags) |
Node<K,V> |
getParent()
Returns the parent node.
|
Node<K,V> |
getParent(Flag... flags) |
boolean |
hasChild(Fqn f)
Returns true if the child node denoted by the relative
Fqn passed in exists. |
boolean |
hasChild(Fqn f,
Flag... flags) |
boolean |
hasChild(Object o)
Returns true if the child node denoted by the Object name passed in exists.
|
boolean |
hasChild(Object o,
Flag... flags) |
boolean |
isValid()
Tests if a node reference is still valid.
|
V |
put(K key,
V value)
Associates the specified value with the specified key for this node.
|
V |
put(K key,
V value,
Flag... flags) |
void |
putAll(Map<? extends K,? extends V> map)
Copies all of the mappings from the specified map to this node's map.
|
void |
putAll(Map<? extends K,? extends V> map,
Flag... flags) |
V |
putIfAbsent(K key,
V value)
If the specified key is not already associated with a value, associate it with the given value, and returns the
Object (if any) that occupied the space, or null.
|
V |
putIfAbsent(K key,
V value,
Flag... flags) |
V |
remove(K key)
Removes the mapping for this key from this node if it is present.
|
V |
remove(K key,
Flag... flags) |
boolean |
removeChild(Fqn f)
Removes a child node specified by the given relative
Fqn . |
boolean |
removeChild(Fqn f,
Flag... flags) |
boolean |
removeChild(Object childName)
Removes a child node specified by the given name.
|
boolean |
removeChild(Object childName,
Flag... flags) |
void |
removeChildren() |
void |
removeChildren(Flag... flags) |
V |
replace(K key,
V value)
Replace entry for key only if currently mapped to some value.
|
V |
replace(K key,
V value,
Flag... flags) |
boolean |
replace(K key,
V oldValue,
V newValue)
Replace entry for key only if currently mapped to given value.
|
boolean |
replace(K key,
V oldValue,
V newValue,
Flag... flags) |
void |
replaceAll(Map<? extends K,? extends V> map)
Similar to
putAll(java.util.Map) except that it removes any entries that exists in the data map first. |
void |
replaceAll(Map<? extends K,? extends V> map,
Flag... flags) |
Node<K,V> getParent()
this
.Fqn getFqn()
Node<K,V> addChild(Fqn f)
Fqn
under the current node. Returns the newly created node.
If the child exists returns the child node anyway. Guaranteed to return a non-null node.
The Fqn
passed in is relative to the current node. The new child node will have an absolute fqn
calculated as follows: new Fqn(getFqn(), f). See
Fqn
for the operation of this constructor.f
- Fqn
of the child node, relative to the current node.boolean removeChild(Fqn f)
Fqn
.
If you wish to remove children based on absolute Fqn
s, use the TreeCache
interface instead.f
- Fqn
of the child node, relative to the current node.boolean removeChild(Object childName)
childName
- name of the child node, directly under the current node.Node<K,V> getChild(Fqn f)
f
- Fqn
of the child nodeNode<K,V> getChild(Object name)
name
- name of the childV put(K key, V value)
key
- key with which the specified value is to be associated.value
- value to be associated with the specified key.V putIfAbsent(K key, V value)
if (!node.getKeys().contains(key)) return node.put(key, value); else return node.get(key);except that this is atomic.
key
- key with which the specified value is to be associated.value
- value to be associated with the specified key.V replace(K key, V value)
if ((node.getKeys().contains(key)) { return node.put(key, value); } else return null;except that this is atomic.
key
- key with which the specified value is associated.value
- value to be associated with the specified key.boolean replace(K key, V oldValue, V newValue)
if (node.get(key).equals(oldValue)) { node.put(key, newValue); return true; } else return false;except that this is atomic.
key
- key with which the specified value is associated.oldValue
- value expected to be associated with the specified key.newValue
- value to be associated with the specified key.void putAll(Map<? extends K,? extends V> map)
Node node; for (Map.Entry me : map.entrySet()) node.put(me.getKey(), me.getValue());
map
- map to copy fromvoid replaceAll(Map<? extends K,? extends V> map)
putAll(java.util.Map)
except that it removes any entries that exists in the data map first.
Note that this happens atomically, under a single lock. This is the analogous to doing a clearData()
followed by a putAll(java.util.Map)
in the same transaction.map
- map to copy fromV get(K key)
null
if the node contains no
mapping for this key.key
- key of the data to returnnull
if the map contains no mapping
for this keyV remove(K key)
null
if the node contained no mapping for this keykey
- key whose mapping is to be removednull
if there was no mapping for keyvoid clearData()
void clearData(Flag... flags)
int dataSize()
int dataSize(Flag... flags)
boolean hasChild(Fqn f)
Fqn
passed in exists.boolean hasChild(Object o)
o
- name of the child, relative to the current nodeboolean isValid()
NodeNotValidException
.void removeChildren()
void removeChildren(Flag... flags)
Copyright © 2014 JBoss, a division of Red Hat. All Rights Reserved.