Class 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 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 interface NodeHashMap
        Parameters:
        path - the path of the node
        node - 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 interface NodeHashMap
        Parameters:
        path - the path of the node
        node - 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 interface NodeHashMap
        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 interface NodeHashMap
        Parameters:
        path - the path to remove
        Returns:
        the node being removed
      • clear

        public void clear()
        Description copied from interface: NodeHashMap
        Clear all the items stored inside this map.
        Specified by:
        clear in interface NodeHashMap
      • size

        public int size()
        Description copied from interface: NodeHashMap
        Return the size of the nodes stored in this map.
        Specified by:
        size in interface NodeHashMap
      • 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 interface NodeHashMap
        Parameters:
        path - the path being changed
        node - 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 interface NodeHashMap
        Parameters:
        path - the path being changed
        node - the node associated with the path
      • getDigest

        public long getDigest()
        Description copied from interface: NodeHashMap
        Return the digest value.
        Specified by:
        getDigest in interface NodeHashMap