/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.commons.collections4.iterators;

import java.util.Enumeration;
import java.util.Iterator;

Adapter to make an Iterator instance appear to be an Enumeration instance.
Since:1.0
/** * Adapter to make an {@link Iterator Iterator} instance appear to be an * {@link Enumeration Enumeration} instance. * * @since 1.0 */
public class IteratorEnumeration<E> implements Enumeration<E> {
The iterator being decorated.
/** The iterator being decorated. */
private Iterator<? extends E> iterator;
Constructs a new IteratorEnumeration that will not function until setIterator is invoked.
/** * Constructs a new <code>IteratorEnumeration</code> that will not function * until {@link #setIterator(Iterator) setIterator} is invoked. */
public IteratorEnumeration() { }
Constructs a new IteratorEnumeration that will use the given iterator.
Params:
  • iterator – the iterator to use
/** * Constructs a new <code>IteratorEnumeration</code> that will use the given * iterator. * * @param iterator the iterator to use */
public IteratorEnumeration(final Iterator<? extends E> iterator) { this.iterator = iterator; } // Iterator interface //-------------------------------------------------------------------------
Returns true if the underlying iterator has more elements.
Returns:true if the underlying iterator has more elements
/** * Returns true if the underlying iterator has more elements. * * @return true if the underlying iterator has more elements */
@Override public boolean hasMoreElements() { return iterator.hasNext(); }
Returns the next element from the underlying iterator.
Throws:
Returns:the next element from the underlying iterator.
/** * Returns the next element from the underlying iterator. * * @return the next element from the underlying iterator. * @throws java.util.NoSuchElementException if the underlying iterator has * no more elements */
@Override public E nextElement() { return iterator.next(); } // Properties //-------------------------------------------------------------------------
Returns the underlying iterator.
Returns:the underlying iterator
/** * Returns the underlying iterator. * * @return the underlying iterator */
public Iterator<? extends E> getIterator() { return iterator; }
Sets the underlying iterator.
Params:
  • iterator – the new underlying iterator
/** * Sets the underlying iterator. * * @param iterator the new underlying iterator */
public void setIterator(final Iterator<? extends E> iterator) { this.iterator = iterator; } }