X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Fphylogeny%2FPhylogenyMethods.java;h=d48db8d446ec877376f673c2da84fcdfbdfeca12;hb=7d44b232d0b61c02ef01d96d3db1d68744015bd7;hp=dab752308c379fe420054d3c3c83c1bbef5445bd;hpb=10f90f7787d4b1287a910d4e6ae895da14866929;p=jalview.git diff --git a/forester/java/src/org/forester/phylogeny/PhylogenyMethods.java b/forester/java/src/org/forester/phylogeny/PhylogenyMethods.java index dab7523..d48db8d 100644 --- a/forester/java/src/org/forester/phylogeny/PhylogenyMethods.java +++ b/forester/java/src/org/forester/phylogeny/PhylogenyMethods.java @@ -913,20 +913,19 @@ public class PhylogenyMethods { } public static void removeNode( final PhylogenyNode remove_me, final Phylogeny phylogeny ) { - if ( remove_me.isRoot() && remove_me.getNumberOfDescendants() != 1 ) { - throw new IllegalArgumentException( "attempt to remove a root node with more than one descendants" ); - } - - if ( remove_me.isRoot() && remove_me.getNumberOfDescendants() == 1 ) { - final PhylogenyNode desc = remove_me.getDescendants().get( 0 ); - - desc.setDistanceToParent( addPhylogenyDistances( remove_me.getDistanceToParent(), - desc.getDistanceToParent() ) ); - desc.setParent( null ); - phylogeny.setRoot( desc ); - phylogeny.clearHashIdToNodeMap(); + if ( remove_me.isRoot() ) { + if ( remove_me.getNumberOfDescendants() == 1 ) { + final PhylogenyNode desc = remove_me.getDescendants().get( 0 ); + desc.setDistanceToParent( addPhylogenyDistances( remove_me.getDistanceToParent(), + desc.getDistanceToParent() ) ); + desc.setParent( null ); + phylogeny.setRoot( desc ); + phylogeny.clearHashIdToNodeMap(); + } + else { + throw new IllegalArgumentException( "attempt to remove a root node with more than one descendants" ); + } } - else if ( remove_me.isExternal() ) { phylogeny.deleteSubtree( remove_me, false ); phylogeny.clearHashIdToNodeMap();