public class NodeImpl<K,V> extends TreeStructureSupport implements Node<K,V>
AtomicMap
cache
batchContainer
Constructor and Description |
---|
NodeImpl(Fqn fqn,
AdvancedCache<?,?> cache,
BatchContainer batchContainer) |
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) |
boolean |
equals(Object o) |
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) |
int |
hashCode() |
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(AdvancedCache<?,?> cache,
Fqn f) |
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
Node.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) |
String |
toString() |
createNodeInCache, exists, exists, getAtomicMap, getAtomicMap, isLocked, printTree
assertBatchingSupported, endAtomic, failAtomic, startAtomic
public NodeImpl(Fqn fqn, AdvancedCache<?,?> cache, BatchContainer batchContainer)
public Node<K,V> getParent()
Node
this
.public Set<Node<K,V>> getChildren()
Node
public Set<Node<K,V>> getChildren(Flag... flags)
getChildren
in interface Node<K,V>
public Set<Object> getChildrenNames()
Node
public Set<Object> getChildrenNames(Flag... flags)
getChildrenNames
in interface Node<K,V>
public Map<K,V> getData()
Node
Node
.public Node<K,V> addChild(Fqn f)
Node
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.public boolean removeChild(Fqn f)
Node
Fqn
.
If you wish to remove children based on absolute Fqn
s, use the TreeCache
interface instead.removeChild
in interface Node<K,V>
f
- Fqn
of the child node, relative to the current node.public boolean removeChild(Fqn f, Flag... flags)
removeChild
in interface Node<K,V>
public boolean removeChild(AdvancedCache<?,?> cache, Fqn f)
public boolean removeChild(Object childName)
Node
removeChild
in interface Node<K,V>
childName
- name of the child node, directly under the current node.public boolean removeChild(Object childName, Flag... flags)
removeChild
in interface Node<K,V>
public Node<K,V> getChild(Fqn f)
Node
public V put(K key, V value)
Node
public V putIfAbsent(K key, V value)
Node
if (!node.getKeys().contains(key)) return node.put(key, value); else return node.get(key);except that this is atomic.
putIfAbsent
in interface Node<K,V>
key
- key with which the specified value is to be associated.value
- value to be associated with the specified key.public V putIfAbsent(K key, V value, Flag... flags)
putIfAbsent
in interface Node<K,V>
public V replace(K key, V value)
Node
if ((node.getKeys().contains(key)) { return node.put(key, value); } else return null;except that this is atomic.
public boolean replace(K key, V oldValue, V newValue)
Node
if (node.get(key).equals(oldValue)) { node.put(key, newValue); return true; } else return false;except that this is atomic.
public void putAll(Map<? extends K,? extends V> map)
Node
Node node; for (Map.Entry me : map.entrySet()) node.put(me.getKey(), me.getValue());
public void replaceAll(Map<? extends K,? extends V> map)
Node
Node.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 Node.clearData()
followed by a Node.putAll(java.util.Map)
in the same transaction.replaceAll
in interface Node<K,V>
map
- map to copy frompublic void replaceAll(Map<? extends K,? extends V> map, Flag... flags)
replaceAll
in interface Node<K,V>
public V get(K key)
Node
null
if the node contains no
mapping for this key.public V remove(K key)
Node
null
if the node contained no mapping for this keypublic void clearData()
Node
public int dataSize()
public boolean hasChild(Fqn f)
Node
Fqn
passed in exists.public boolean hasChild(Object o)
Node
public boolean isValid()
Node
NodeNotValidException
.public void removeChildren()
removeChildren
in interface Node<K,V>
public void removeChildren(Flag... flags)
removeChildren
in interface Node<K,V>
Copyright © 2014 JBoss, a division of Red Hat. All Rights Reserved.