001    /*
002     * Licensed to the Apache Software Foundation (ASF) under one or more
003     * contributor license agreements.  See the NOTICE file distributed with
004     * this work for additional information regarding copyright ownership.
005     * The ASF licenses this file to You under the Apache License, Version 2.0
006     * (the "License"); you may not use this file except in compliance with
007     * the License.  You may obtain a copy of the License at
008     *
009     *      http://www.apache.org/licenses/LICENSE-2.0
010     *
011     * Unless required by applicable law or agreed to in writing, software
012     * distributed under the License is distributed on an "AS IS" BASIS,
013     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014     * See the License for the specific language governing permissions and
015     * limitations under the License.
016     */
017    
018    package org.apache.commons.jexl2.internal;
019    
020    
021    import java.util.Iterator;
022    import java.util.Enumeration;
023    
024    /**
025     * An Iterator wrapper for an Enumeration.
026     * @since 1.0
027     * @author <a href="mailto:geirm@optonline.net">Geir Magnusson Jr.</a>
028     * @version $Id: EnumerationIterator.java 889223 2009-12-10 12:05:22Z henrib $
029     * @param <T> the type of object this iterator returns
030     */
031    public class EnumerationIterator<T> implements Iterator<T> {
032        /**
033         * The enumeration to iterate over.
034         */
035        private final Enumeration<T> enumeration;
036    
037        /**
038         * Creates a new iteratorwrapper instance for the specified 
039         * Enumeration.
040         *
041         * @param enumer  The Enumeration to wrap.
042         */
043        public EnumerationIterator(Enumeration<T> enumer) {
044            enumeration = enumer;
045        }
046    
047        /**
048         * Move to next element in the array.
049         *
050         * @return The next object in the array.
051         */
052        public T next() {
053            return enumeration.nextElement();
054        }
055        
056        /**
057         * Check to see if there is another element in the array.
058         *
059         * @return Whether there is another element.
060         */
061        public boolean hasNext() {
062            return enumeration.hasMoreElements();
063        }
064    
065        /**
066         *  Unimplemented.  No analogy in Enumeration
067         */
068        public void remove() {
069            // not implemented
070        }
071    }