in progress...
[jalview.git] / forester / java / src / org / forester / phylogeny / iterators / PreorderTreeIterator.java
index 18928db..3d590a7 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;
 
@@ -31,14 +31,7 @@ import java.util.Stack;
 import org.forester.phylogeny.Phylogeny;
 import org.forester.phylogeny.PhylogenyNode;
 
-// import java.util.Iterator; TODO should implement this, not some iterator of
-// this package.
-/*
- * @author Christian M. Zmasek
- * 
- * @version 1.020 -- last modified: 10/10/05
- */
-public class PreorderTreeIterator implements PhylogenyNodeIterator {
+public final class PreorderTreeIterator implements PhylogenyNodeIterator {
 
     final private Phylogeny            _tree;
     final private Stack<PhylogenyNode> _stack;
@@ -62,54 +55,50 @@ public class PreorderTreeIterator implements PhylogenyNodeIterator {
         reset( node );
     }
 
-    private Stack<PhylogenyNode> getStack() {
-        return _stack;
-    }
-
-    private Phylogeny getTree() {
-        return _tree;
-    }
-
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see java.util.Iterator#hasNext()
      */
-    public boolean hasNext() {
-        return !getStack().isEmpty();
+    @Override
+    public final boolean hasNext() {
+        return !_stack.isEmpty();
     }
 
     /**
      * Advances the Iterator by one.
      */
-    public PhylogenyNode next() throws NoSuchElementException {
+    @Override
+    public final PhylogenyNode next() throws NoSuchElementException {
         if ( !hasNext() ) {
             throw new NoSuchElementException( "Attempt to call \"next()\" on iterator which has no more next elements." );
         }
-        final PhylogenyNode node = getStack().pop();
+        final PhylogenyNode node = _stack.pop();
         if ( !node.isExternal() ) {
             for( int i = node.getNumberOfDescendants() - 1; i >= 0; --i ) {
-                getStack().push( node.getChildNode( i ) );
+                _stack.push( node.getChildNode( i ) );
             }
         }
         return node;
-    } // next()
+    }
 
     /**
      * Not supported.
-     * 
+     *
      */
-    public void remove() {
+    @Override
+    public final void remove() {
         throw new UnsupportedOperationException();
     }
 
-    public void reset() {
-        getStack().clear();
-        getStack().push( getTree().getRoot() );
+    @Override
+    public final void reset() {
+        _stack.clear();
+        _stack.push( _tree.getRoot() );
     }
 
-    private void reset( final PhylogenyNode node ) {
-        getStack().clear();
-        getStack().push( node );
+    private final void reset( final PhylogenyNode node ) {
+        _stack.clear();
+        _stack.push( node );
     }
-} // End of class PreorderTreeIterator.
+}