summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src
diff options
context:
space:
mode:
Diffstat (limited to 'BJC-Utils2/src')
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/data/ITree.java11
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/data/Tree.java13
2 files changed, 22 insertions, 2 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/ITree.java b/BJC-Utils2/src/main/java/bjc/utils/data/ITree.java
index 9132278..30d5558 100644
--- a/BJC-Utils2/src/main/java/bjc/utils/data/ITree.java
+++ b/BJC-Utils2/src/main/java/bjc/utils/data/ITree.java
@@ -18,14 +18,21 @@ import java.util.function.UnaryOperator;
*/
public interface ITree<ContainedType> {
/**
- * Add a child to this node
+ * Append a child to this node.
*
* @param child
- * The child to add to this node
+ * The child to append to this node.
*/
public void addChild(ITree<ContainedType> child);
/**
+ * Prepend a child to this node.
+ *
+ * @param child The child to prepend to this node.
+ */
+ void prependChild(ITree<ContainedType> child);
+
+ /**
* Collapse a tree into a single version
*
* @param <NewType>
diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/Tree.java b/BJC-Utils2/src/main/java/bjc/utils/data/Tree.java
index 34e074b..cf4d1fb 100644
--- a/BJC-Utils2/src/main/java/bjc/utils/data/Tree.java
+++ b/BJC-Utils2/src/main/java/bjc/utils/data/Tree.java
@@ -349,4 +349,17 @@ public class Tree<ContainedType> implements ITree<ContainedType> {
return -1;
}
+
+ @Override
+ public void prependChild(ITree<ContainedType> child) {
+ if(hasChildren == false) {
+ hasChildren = true;
+
+ children = new FunctionalList<>();
+ }
+
+ childCount++;
+
+ children.prepend(child);
+ }
}