package org.iplantc.phyloviewer.viewer.server; import org.iplantc.phyloviewer.viewer.client.model.RemoteNode; public interface ITreeData { /** * Get the root node for the given tree id * @param the id of the tree to get the root node. * @return the node. */ public abstract RemoteNode getRootNode(int treeID); /** * Get a list of loaded trees. * @return Gets a json string of all loaded trees. */ public abstract String getTrees(); /** * @param depth the number of levels below the root to include. Use Integer.MAX_VALUE to guarantee getting the whole tree. * @return the subtree rooted at rootID, to <strong>at least</strong> the given depth. */ public abstract RemoteNode getSubtree(int rootID, int depth); /** * Gets the children of the parent node with id parentID. (The order of the children is not defined * in the current implementation.) * * @param parentID * @return the children of parentID. Null if the node had no children */ public abstract RemoteNode[] getChildren(int parentID); }