diff --git a/README.md b/README.md index c6297e0..e5b9073 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,59 @@ # node A parent/children data structure + +# Usage + +Add as a dependency in your `pom.xml`: + + + net.kemitix + node + ${node.version} + + +The library consits of an interface `Node` and an implementation `NodeItem`. + +## Create a root node + + Node root = new NodeItem<>("[root]"); + +## Get the contents of the node + + String rootData = root.getData(); // returns "[root]" + +## Add a child node + + root.addChild("child"); + +The tree now looks like: + + "[root]" + \-> "child" + +## Get the child node + + Node childNode = root.getChild("child"); + +## Create a chain of nodes + + root.createDescendantLine(Arrays.asList("alpha", "beta", "gamma")); + + "[root]" + |-> "child" + \-> "alpha" + \-> "beta" + \-> "gamma" + +## Walk the tree to find a node + + Optional> foundNode = root.walkTree(Arrays.asList( + "alpha", "beta", "gamma")); + if (foundNode.isPresent()) { + String betaData = foundNode.get().getParent().getData(); + // returns "beta" + } + +## Get all children of a node + + Set> children = root.getChildren(); + children.size(); // returns 2 ("child" and "alpha")