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 voidclear()Clear all the items stored inside this map.Set<Map.Entry<String,DataNode>>entrySet()Return all the entries inside this map.DataNodeget(String path)Return the data node associated with the path.longgetDigest()Return the digest value.voidpostChange(String path, DataNode node)Called after making the changes on the node, which will update the digest.voidpreChange(String path, DataNode node)Called before we made the change on the node, which will clear the digest associated with it.DataNodeput(String path, DataNode node)Add the node into the map and update the digest with the new node.DataNodeputWithoutDigest(String path, DataNode node)Add the node into the map without update the digest.DataNoderemove(String path)Remove the path from the internal nodes map.intsize()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:NodeHashMapAdd the node into the map and update the digest with the new node.- Specified by:
putin 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:NodeHashMapAdd the node into the map without update the digest.- Specified by:
putWithoutDigestin 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:NodeHashMapReturn the data node associated with the path.- Specified by:
getin interfaceNodeHashMap- Parameters:
path- the path to read from
-
remove
public DataNode remove(String path)
Description copied from interface:NodeHashMapRemove the path from the internal nodes map.- Specified by:
removein interfaceNodeHashMap- Parameters:
path- the path to remove- Returns:
- the node being removed
-
entrySet
public Set<Map.Entry<String,DataNode>> entrySet()
Description copied from interface:NodeHashMapReturn all the entries inside this map.- Specified by:
entrySetin interfaceNodeHashMap
-
clear
public void clear()
Description copied from interface:NodeHashMapClear all the items stored inside this map.- Specified by:
clearin interfaceNodeHashMap
-
size
public int size()
Description copied from interface:NodeHashMapReturn the size of the nodes stored in this map.- Specified by:
sizein interfaceNodeHashMap
-
preChange
public void preChange(String path, DataNode node)
Description copied from interface:NodeHashMapCalled before we made the change on the node, which will clear the digest associated with it.- Specified by:
preChangein 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:NodeHashMapCalled after making the changes on the node, which will update the digest.- Specified by:
postChangein interfaceNodeHashMap- Parameters:
path- the path being changednode- the node associated with the path
-
getDigest
public long getDigest()
Description copied from interface:NodeHashMapReturn the digest value.- Specified by:
getDigestin interfaceNodeHashMap
-
-