Mega Code Archive

 
Categories / Java / Collections Data Structure
 

Single Item Enumeration

/**  * The utillib library.  * More information is available at http://www.jinchess.com/.  * Copyright (C) 2002 Alexander Maryanovsky.  * All rights reserved.  *  * The utillib library is free software; you can redistribute  * it and/or modify it under the terms of the GNU Lesser General Public License  * as published by the Free Software Foundation; either version 2 of the  * License, or (at your option) any later version.  *  * The utillib library is distributed in the hope that it will  * be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser  * General Public License for more details.  *  * You should have received a copy of the GNU Lesser General Public License  * along with utillib library; if not, write to the Free Software  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA  */ import java.util.Enumeration; import java.util.NoSuchElementException; /**  * An implementation of the Enumeration interface which enumerates a single  * item. Note: This class is not thread safe.  */ public class SingleItemEnumeration implements Enumeration{   /**    * The sole item.    */   private Object item;   /**    * Becomes true when we've returned the sole item.    */   private boolean done = false;   /**    * Creates a new SingleItemEnumeration which enumerates the specified item.    */   public SingleItemEnumeration(Object item){     this.item = item;   }   /**    * Returns the sole item or throws a <code>NoSuchElementException</code>.    */   public Object nextElement(){     if (!hasMoreElements())       throw new NoSuchElementException();            done = true;     Object item = this.item;     this.item = null; // We don't want to hold a reference to it any longer than we need.     return item;   }   /**    * Returns true if there are more elements in the enumeration.    */   public boolean hasMoreElements(){     return !done;   } }