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 which transforms the elements of another enumeration.
023 */
024 public class ConcatEnumeration implements Enumeration {
025 Enumeration[] e;
026 int i = 0; // current enumeration in e
027
028 public ConcatEnumeration (Enumeration e1, Enumeration e2) {
029 this.e = new Enumeration[] { e1, e2 };
030 }
031
032 public ConcatEnumeration (Enumeration[] e) {
033 this.e = e;
034 }
035
036 public boolean hasMoreElements () {
037 while (i < e.length) {
038 if (e[i].hasMoreElements ())
039 return true;
040 else
041 ++i;
042 }
043 return false;
044 }
045
046 public Object nextElement () {
047 while (i < e.length) {
048 try {
049 return e[i].nextElement ();
050 } catch (NoSuchElementException e) {
051 ++i;
052 }
053 }
054
055 throw new NoSuchElementException ();
056 }
057 }