public final PhylogenyNode getNextExternalNodeWhileTakingIntoAccountCollapsedNodes() {
//TODO work on me ~~
- if ( isInternal() && !isCollapse() ) {
- throw new UnsupportedOperationException( "attempt to get next external node of an uncollapsed internal node" );
- }
if ( isRoot() ) {
return null;
}
+ if ( isInternal() && !isCollapse() ) {
+ throw new UnsupportedOperationException( "attempt to get next external node of an uncollapsed internal node" );
+ }
if ( getParent().isCollapse() ) {
throw new UnsupportedOperationException( "attempt to get next external node of node with a collapsed parent" );
}
/**
* Returns whether this PhylogenyNode should be drawn as collapsed.
+ * Root can not be collapsed.
*/
final public boolean isCollapse() {
- return _collapse;
+ return _collapse && _parent != null;
}
/**
}
/**
- * Inserts PhylogenyNode n at the specified position i into the list of
+ * Inserts PhylogenyNode node at the specified position i into the list of
* child nodes. This does not allow null slots in the list of child nodes:
- * If i is larger than the number of child nodes, n is just added to the
- * list, not place at index i.
+ * If i is larger than the number of child nodes, node is just added to the
+ * list, not placed at index i.
*
* @param i
* the index of position where to add the child
- * @param n
+ * @param node
* the PhylogenyNode to add
*/
final public void setChildNode( final int i, final PhylogenyNode node ) {