try to fix some minor dropdown bugs
[potlatch2.git] / org / idmedia / as3commons / util / Iterator.as
1 /*
2  * Copyright the original author or authors.
3  * 
4  * Licensed under the MOZILLA PUBLIC LICENSE, Version 1.1 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  * 
8  *      http://www.mozilla.org/MPL/MPL-1.1.html
9  * 
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.idmedia.as3commons.util {
17   
18   /**
19    * An iterator over a collection.  
20    * <ul>
21    *    <li> Iterators allow the caller to remove elements from the
22    *         underlying collection during the iteration with well-defined
23    *         semantics.
24    *    <li> Method names have been improved.
25    * </ul><p>
26    *      
27    * @author sleistner
28    */
29   public interface Iterator {
30     
31     /**
32      * Returns <tt>true</tt> if the iteration has more elements. (In other
33      * words, returns <tt>true</tt> if <tt>next</tt> would return an element
34      * rather than throwing an exception.)
35      *
36      * @return <tt>true</tt> if the iterator has more elements.
37      */
38     function hasNext():Boolean;
39     
40     /**
41      * Returns the next element in the iteration.  Calling this method
42      * repeatedly until the {@link #hasNext()} method returns false will
43      * return each element in the underlying collection exactly once.
44      *
45      * @return the next element in the iteration.
46      * @exception NoSuchElementException iteration has no more elements.
47      */
48     function next():*;
49     
50     /**
51      * 
52      * Removes from the underlying collection the last element returned by the
53      * iterator(optional operation).  This method can be called only once per
54      * call to <tt>next</tt>.  The behavior of an iterator is unspecified if
55      * the underlying collection is modified while the iteration is in
56      * progress in any way other than by calling this method.
57      *
58      * @exception UnsupportedOperationException if the <tt>remove</tt>
59      *            operation is not supported by this Iterator.
60                 
61      * @exception IllegalStateException if the <tt>next</tt> method has not
62      *            yet been called, or the <tt>remove</tt> method has already
63      *            been called after the last call to the <tt>next</tt>
64      *            method.
65      */
66     function remove():void;
67   }
68 }