    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    }