X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Futil%2Fdata%2FNodeImpl.java;h=266cea1f49533e958b57c5101c88abd103cf0160;hb=b794bd6781463774f3a8ff4b86988b5288db2a72;hp=283a66326a836a16515863eb41477366645780d4;hpb=299e8850c53af29ce6c122169c76f10e89dd67bd;p=jSite2.git diff --git a/src/net/pterodactylus/util/data/NodeImpl.java b/src/net/pterodactylus/util/data/NodeImpl.java index 283a663..266cea1 100644 --- a/src/net/pterodactylus/util/data/NodeImpl.java +++ b/src/net/pterodactylus/util/data/NodeImpl.java @@ -2,6 +2,8 @@ package net.pterodactylus.util.data; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.Iterator; import java.util.List; @@ -12,7 +14,7 @@ import java.util.List; * @param * The type of the element to store */ -class NodeImpl implements Node { +class NodeImpl> implements Node { /** The parent node of this node. */ private final Node parentNode; @@ -87,13 +89,37 @@ class NodeImpl implements Node { /** * {@inheritDoc} */ - public boolean hasChildNode(Node childNode) { + public Node getChild(E element) { + for (Node childNode: children) { + if (childNode.getElement().equals(element)) { + return childNode; + } + } + return null; + } + + /** + * {@inheritDoc} + */ + public boolean hasChild(Node childNode) { return children.contains(childNode); } /** * {@inheritDoc} */ + public boolean hasChild(E element) { + for (Node childNode: children) { + if (childNode.getElement().equals(element)) { + return true; + } + } + return false; + } + + /** + * {@inheritDoc} + */ public int getIndexOfChild(Node childNode) { int childIndex = 0; for (Node node: children) { @@ -175,4 +201,29 @@ class NodeImpl implements Node { return null; } + /** + * {@inheritDoc} + */ + public void sortChildren() { + Collections.sort(children); + } + + /** + * {@inheritDoc} + */ + public void sortChildren(Comparator> comparator) { + Collections.sort(children, comparator); + } + + // + // INTERFACE Comparable + // + + /** + * {@inheritDoc} + */ + public int compareTo(Node otherNode) { + return element.compareTo(otherNode.getElement()); + } + } \ No newline at end of file