All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.xavax.util.IterableEnumeration Maven / Gradle / Ivy

There is a newer version: 1.1.6
Show newest version
//
// Copyright 2011 by Xavax, Inc. All Rights Reserved.
// Use of this software is allowed under the Xavax Open Software License.
// http://www.xavax.com/xosl.html
//
package com.xavax.util;

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

/**
 * IterableEnumeration is an adaptor that allows an Enumeration to
 * implement Iterable so it can be used in a for-each statement.
 * The design was originally described by Dr. Heinz M. Kabutz in
 * the following article.
 *   http://www.javaspecialists.eu/archive/Issue107.html
 *
 * @param   the enumeration element type.
 */
public class IterableEnumeration implements Iterable {
  private final Enumeration enumeration;

  /**
   * Construct an InterableEnumeration from an existing enumeration.
   *
   * @param enumeration  the enumeration to be iterated.
   */
  public IterableEnumeration(final Enumeration enumeration) {
    this.enumeration = enumeration;
  }

  /**
   * Returns an Iterator for the underlying Enumeration, thereby
   * making it iterable.
   *
   * @return an Iterator for this enumeration.
   */
  public Iterator iterator() {
    return new Iterator() {
      /**
       * Returns true if this iterator has more items.
       *
       * @return true if this iterator has more items.
       */
      @Override
      @SuppressWarnings("PMD.CommentRequired")
      public boolean hasNext() {
        return enumeration.hasMoreElements();
      }

      /**
       * Returns the next item.
       *
       * @return the next item.
       */
      public T next() {
        return enumeration.nextElement();
      }

      /**
       * This method of the Iterator interface is not supported.
       */
      public void remove() {
        throw new UnsupportedOperationException();
      }
    };
  }

  /**
   * Returns an IterableEnumeration created from the enumeration.
   *
   * @param   the enumeration element type.
   * @param enumeration  the enumeration to be iterated.
   * @return an IterableEnumeration created from the enumeration.
   */
  public static  IterableEnumeration create(final Enumeration enumeration) {
    return new IterableEnumeration(enumeration);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy