001 /* 002 * LAPIS lightweight structured text processing system 003 * 004 * Copyright (C) 1998-2002 Carnegie Mellon University, 005 * Copyright (C) 2003 Massachusetts Institute of Technology. 006 * All rights reserved. 007 * 008 * This library is free software; you can redistribute it 009 * and/or modify it under the terms of the GNU General 010 * Public License as published by the Free Software 011 * Foundation, version 2. 012 * 013 * LAPIS homepage: http://graphics.lcs.mit.edu/lapis/ 014 */ 015 016 017 package lapisx.enum; 018 import java.util.Enumeration; 019 import java.util.NoSuchElementException; 020 021 /** 022 * Enumeration of an arbitrary array. 023 */ 024 public class ArrayEnumeration implements Enumeration { 025 Object[] array; 026 int i = 0; 027 028 /** 029 * Make an ArrayEnumeration. 030 * @param array Array to enumerate. May be null, if desired. 031 * (This is sometimes useful for producing an empty enumeration.) 032 */ 033 public ArrayEnumeration (Object[] array) { 034 this.array = array; 035 } 036 037 /** 038 * Test if enumeration has reached end. 039 * @return true if more elements are available to be enumerated, false 040 * if all elements have been yielded by nextElement() 041 */ 042 public boolean hasMoreElements () { 043 return array != null ? i < array.length : false; 044 } 045 046 /** 047 * Get next element of enumeration. 048 * @return next element of enumeration, advancing the enumeration pointer 049 * @exception java.util.NoSuchElementException if no more elements 050 */ 051 public Object nextElement () { 052 if (array == null || i >= array.length) 053 throw new NoSuchElementException (); 054 return array[i++]; 055 } 056 }