A parent/children data structure
Find a file
dependabot-preview[bot] 386cb72c0c
Bump tiles-maven-plugin from 2.17 to 2.18 (#74)
* Bump tiles-maven-plugin from 2.17 to 2.18

Bumps [tiles-maven-plugin](https://github.com/repaint-io/maven-tiles) from 2.17 to 2.18.
- [Release notes](https://github.com/repaint-io/maven-tiles/releases)
- [Changelog](https://github.com/repaint-io/maven-tiles/blob/master/CHANGELOG.adoc)
- [Commits](https://github.com/repaint-io/maven-tiles/compare/tiles-maven-plugin-2.17...tiles-maven-plugin-2.18)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

* Test build with JDK 15

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Co-authored-by: Paul Campbell <pcampbell@kemitix.net>
2020-10-05 12:22:47 +01:00
.github Bump tiles-maven-plugin from 2.17 to 2.18 (#74) 2020-10-05 12:22:47 +01:00
src Use list-head-tail (#64) 2020-04-03 09:14:57 +01:00
.gitignore Switch to trunk-based-development (#34) 2018-10-09 22:08:43 +01:00
CHANGELOG.org Test build on JDK 13 (#62) 2020-03-22 21:59:56 +00:00
LICENSE.txt Switch to trunk-based-development (#34) 2018-10-09 22:08:43 +01:00
pom.xml Bump tiles-maven-plugin from 2.17 to 2.18 (#74) 2020-10-05 12:22:47 +01:00
README.org Clean up changelog and readme, and remove external build dependencies (#38) 2018-12-24 08:51:18 +00:00

A parent/children data structure

Usage

Add as a dependency in your pom.xml:

  <dependency>
    <groupId>net.kemitix</groupId>
    <artifactId>node</artifactId>
    <version>${node.version}</version>
  </dependency>

The library consits of an interface Node and an implementation NodeItem.

Create a root node

  Node<String> root = new NodeItem<>("[root]");

Get the contents of the node

  String rootData = root.getData(); // returns "[root]"

Add a child node

  Node<String> child = root.createChild("child");

Which is shorthand for:

  Node<String> child = new NodeItem<>("child");
  root.addChild(child);

The tree now looks like:

"[root]"
\-> "child"

Get the child node

  Node<String> childNode = root.getChild("child");

Create a chain of nodes

  root.createDescendantLine(Arrays.asList("alpha", "beta", "gamma"));
"[root]"
\-> "alpha"
 \-> "beta"
  \-> "gamma"

Walk the tree to find a node

  Optional<Node<String>> 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<Node<String>> children = root.getChildren();
  children.size();
  // returns 2 ("child" and "alpha")