public List<DataFolder> folders(DataFolder parent) { LinkedList<DataFolder> folders = new LinkedList<DataFolder>(); folders.add(parent); for (DataItem child : parent.getChildren()) { if (child instanceof DataFolder) { folders.addAll(folders((DataFolder) child)); } } return folders; }
/** Return all DataBeans under this manager. */ public List<DataBean> databeans() { LinkedList<DataBean> databeans = new LinkedList<DataBean>(); for (DataFolder folder : folders()) { for (DataItem child : folder.getChildren()) { if (child instanceof DataBean) { databeans.add((DataBean) child); } } } return databeans; }
private void deleteDataFolder(DataFolder folder) { // remove children Iterable<DataItem> children = folder.getChildren(); // make a copy of the children list to avoid concurrent modification List<DataItem> childrenToBeRemoved = new LinkedList<DataItem>(); for (DataItem item : children) { childrenToBeRemoved.add(item); } // remove all children (recursively) for (DataItem item : childrenToBeRemoved) { delete(item); } // remove this folder (unless root) DataFolder parent = folder.getParent(); if (parent != null) { disconnectChild(folder, parent); } }