X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Futil%2Fdata%2FNodeImpl.java;h=266cea1f49533e958b57c5101c88abd103cf0160;hb=c647e3c2d780c95c1668068a86b7dc29536adf8d;hp=2d578766a5f5929c7dbed5827e6398aa92467e04;hpb=364659907c0364092e78824d3eea4a13fecd831b;p=jSite2.git diff --git a/src/net/pterodactylus/util/data/NodeImpl.java b/src/net/pterodactylus/util/data/NodeImpl.java index 2d57876..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) { @@ -148,6 +174,13 @@ class NodeImpl implements Node { /** * {@inheritDoc} */ + public void removeAllChildren() { + children.clear(); + } + + /** + * {@inheritDoc} + */ public Iterator> iterator() { return children.iterator(); } @@ -168,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