01: /**
02: * Copyright (c) 2001, Sergey A. Samokhodkin
03: * All rights reserved.
04: *
05: * Redistribution and use in source and binary forms, with or without modification,
06: * are permitted provided that the following conditions are met:
07: *
08: * - Redistributions of source code must retain the above copyright notice,
09: * this list of conditions and the following disclaimer.
10: * - Redistributions in binary form
11: * must reproduce the above copyright notice, this list of conditions and the following
12: * disclaimer in the documentation and/or other materials provided with the distribution.
13: * - Neither the name of jregex nor the names of its contributors may be used
14: * to endorse or promote products derived from this software without specific prior
15: * written permission.
16: *
17: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
18: * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20: * IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
21: * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
23: * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24: * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
25: * WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26: *
27: * @version 1.2_01
28: */package jregex.util.io;
29:
30: import java.util.Enumeration;
31: import java.util.NoSuchElementException;
32:
33: abstract class Enumerator implements Enumeration {
34: protected Object currObj;
35:
36: protected abstract boolean find();
37:
38: public boolean hasMoreElements() {
39: return currObj != null || find();
40: }
41:
42: public Object nextElement() {
43: if (currObj == null && !find())
44: throw new NoSuchElementException();
45: Object tmp = currObj;
46: currObj = null;
47: return tmp;
48: }
49: }
|