in progress
[jalview.git] / forester / java / src / org / forester / phylogeny / iterators / PostorderTreeIterator.java
index 1405476..9819b58 100644 (file)
@@ -5,7 +5,7 @@
 // Copyright (C) 2008-2009 Christian M. Zmasek
 // Copyright (C) 2008-2009 Burnham Institute for Medical Research
 // All rights reserved
-// 
+//
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 // Lesser General Public License for more details.
-// 
+//
 // You should have received a copy of the GNU Lesser General Public
 // License along with this library; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
 //
 // Contact: phylosoft @ gmail . com
-// WWW: www.phylosoft.org/forester
+// WWW: https://sites.google.com/site/cmzmasek/home/software/forester
 
 package org.forester.phylogeny.iterators;
 
@@ -34,7 +34,7 @@ import org.forester.phylogeny.PhylogenyNode;
 /*
  * *
  */
-public class PostorderTreeIterator implements PhylogenyNodeIterator {
+public final class PostorderTreeIterator implements PhylogenyNodeIterator {
 
     final private Phylogeny                   _tree;
     final private PhylogenyNode               _root;
@@ -55,31 +55,28 @@ public class PostorderTreeIterator implements PhylogenyNodeIterator {
         reset();
     }
 
-    private PhylogenyNode getRoot() {
+    final private PhylogenyNode getRoot() {
         return _root;
     }
 
-    private Stack<PostOrderStackObject> getStack() {
+    final private Stack<PostOrderStackObject> getStack() {
         return _stack;
     }
 
-    private Phylogeny getTree() {
+    final private Phylogeny getTree() {
         return _tree;
     }
 
-    /**
-     * DOCUMENT ME!
-     * 
-     * @return DOCUMENT ME!
-     */
-    public boolean hasNext() {
+    @Override
+    final public boolean hasNext() {
         return _has_next;
     }
 
     /**
      * Advances the Iterator by one.
      */
-    public PhylogenyNode next() throws NoSuchElementException {
+    @Override
+    final public PhylogenyNode next() throws NoSuchElementException {
         if ( !hasNext() ) {
             throw new NoSuchElementException( "Attempt to call \"next()\" on iterator which has no more next elements." );
         }
@@ -87,7 +84,6 @@ public class PostorderTreeIterator implements PhylogenyNodeIterator {
             final PostOrderStackObject si = getStack().pop();
             final PhylogenyNode node = si.getNode();
             final int phase = si.getPhase();
-            // if ( node != null ) {
             if ( phase > node.getNumberOfDescendants() ) {
                 setHasNext( node != getRoot() );
                 return node;
@@ -97,32 +93,23 @@ public class PostorderTreeIterator implements PhylogenyNodeIterator {
                 if ( node.isInternal() ) {
                     getStack().push( new PostOrderStackObject( node.getChildNode( phase - 1 ), 1 ) );
                 }
-                // else {
-                // getStack().push( new PostOrderStackObject( null, 1 ) );
-                // }
             }
-            // }
         }
     }
 
-    /**
-     * Not supported.
-     * 
-     */
-    public void remove() {
+    @Override
+    final public void remove() {
         throw new UnsupportedOperationException();
     }
 
-    /**
-     * DOCUMENT ME!
-     */
-    public void reset() {
+    @Override
+    final public void reset() {
         setHasNext( true );
         getStack().clear();
         getStack().push( new PostOrderStackObject( getTree().getRoot(), 1 ) );
     }
 
-    private void setHasNext( final boolean has_next ) {
+    final private void setHasNext( final boolean has_next ) {
         _has_next = has_next;
     }
-} // End of class PostorderTreeIterator.
+}