Package org.apache.zookeeper.server
Class NodeHashMapImpl
- java.lang.Object
-
- org.apache.zookeeper.server.NodeHashMapImpl
-
- All Implemented Interfaces:
NodeHashMap
public class NodeHashMapImpl extends Object implements NodeHashMap
a simple wrapper to ConcurrentHashMap that recalculates a digest after each mutation.
-
-
Constructor Summary
Constructors Constructor Description NodeHashMapImpl(DigestCalculator digestCalculator)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clear()
Clear all the items stored inside this map.Set<Map.Entry<String,DataNode>>
entrySet()
Return all the entries inside this map.DataNode
get(String path)
Return the data node associated with the path.long
getDigest()
Return the digest value.void
postChange(String path, DataNode node)
Called after making the changes on the node, which will update the digest.void
preChange(String path, DataNode node)
Called before we made the change on the node, which will clear the digest associated with it.DataNode
put(String path, DataNode node)
Add the node into the map and update the digest with the new node.DataNode
putWithoutDigest(String path, DataNode node)
Add the node into the map without update the digest.DataNode
remove(String path)
Remove the path from the internal nodes map.int
size()
Return the size of the nodes stored in this map.
-
-
-
Constructor Detail
-
NodeHashMapImpl
public NodeHashMapImpl(DigestCalculator digestCalculator)
-
-
Method Detail
-
put
public DataNode put(String path, DataNode node)
Description copied from interface:NodeHashMap
Add the node into the map and update the digest with the new node.- Specified by:
put
in interfaceNodeHashMap
- Parameters:
path
- the path of the nodenode
- the actual node associated with this path
-
putWithoutDigest
public DataNode putWithoutDigest(String path, DataNode node)
Description copied from interface:NodeHashMap
Add the node into the map without update the digest.- Specified by:
putWithoutDigest
in interfaceNodeHashMap
- Parameters:
path
- the path of the nodenode
- the actual node associated with this path
-
get
public DataNode get(String path)
Description copied from interface:NodeHashMap
Return the data node associated with the path.- Specified by:
get
in interfaceNodeHashMap
- Parameters:
path
- the path to read from
-
remove
public DataNode remove(String path)
Description copied from interface:NodeHashMap
Remove the path from the internal nodes map.- Specified by:
remove
in interfaceNodeHashMap
- Parameters:
path
- the path to remove- Returns:
- the node being removed
-
entrySet
public Set<Map.Entry<String,DataNode>> entrySet()
Description copied from interface:NodeHashMap
Return all the entries inside this map.- Specified by:
entrySet
in interfaceNodeHashMap
-
clear
public void clear()
Description copied from interface:NodeHashMap
Clear all the items stored inside this map.- Specified by:
clear
in interfaceNodeHashMap
-
size
public int size()
Description copied from interface:NodeHashMap
Return the size of the nodes stored in this map.- Specified by:
size
in interfaceNodeHashMap
-
preChange
public void preChange(String path, DataNode node)
Description copied from interface:NodeHashMap
Called before we made the change on the node, which will clear the digest associated with it.- Specified by:
preChange
in interfaceNodeHashMap
- Parameters:
path
- the path being changednode
- the node associated with the path
-
postChange
public void postChange(String path, DataNode node)
Description copied from interface:NodeHashMap
Called after making the changes on the node, which will update the digest.- Specified by:
postChange
in interfaceNodeHashMap
- Parameters:
path
- the path being changednode
- the node associated with the path
-
getDigest
public long getDigest()
Description copied from interface:NodeHashMap
Return the digest value.- Specified by:
getDigest
in interfaceNodeHashMap
-
-