package name.abuchen.portfolio.model; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Stack; import java.util.UUID; @Deprecated /* package */class Category { private String uuid; private String name; private int percentage; @SuppressWarnings("unused") private Category parent; // needed during XStream deserialization private List<Category> children = new ArrayList<Category>(); private List<Object> elements = new ArrayList<Object>(); public String getUUID() { return uuid; } /* package */void generateUUID() { // needed to assign UUIDs when loading older versions from XML uuid = UUID.randomUUID().toString(); } public String getName() { return name; } public int getPercentage() { return percentage; } public List<Category> getChildren() { return Collections.unmodifiableList(children); } public List<Object> getElements() { return elements; } public List<Category> flatten() { List<Category> answer = new ArrayList<Category>(); answer.add(this); Stack<Category> stack = new Stack<Category>(); stack.push(this); while (!stack.isEmpty()) { Category c = stack.pop(); answer.addAll(c.children); stack.addAll(c.children); } return answer; } @Override public String toString() { return name; } }