package zk.support.treeerror; import java.util.ArrayList; import java.util.List; public class Hierarchy { private Hierarchy parent; private List> children; private T data; private boolean leaf; public Hierarchy(T childData, boolean leaf) { this.data = childData; this.leaf = leaf; } public Hierarchy getParent() { return parent; } public void setParent(Hierarchy parent) { this.parent = parent; } public List> getChildren() { return children; } public T getData() { return data; } public void addChildData(T childData, boolean leaf) { if(children == null) { children = new ArrayList<>(); } Hierarchy child = new Hierarchy(childData, leaf); child.setParent(this); this.getChildren().add(child); } public int getLevel() { if(this.parent == null) { return 0; } else { return this.getParent().getLevel() + 1; } } public boolean isLeaf() { return leaf; } }