// // Enumerator.java // // // Created by Maria Eugenia Occhiuto on Fri Jul 04 2003. // Copyright (c) 2003 __MyCompanyName__. All rights reserved. // import java.util.*; import java.lang.reflect.*; import java.lang.*; public class FilterEnumerator extends Enumerator { private String s; private Enumerator dom; private boolean lookahead=false; private Object next; public FilterEnumerator (String ss, Enumerator d){s=ss;dom=d;lookahead=false;} public boolean hasMoreElements(){ try{ while (!lookahead || dom.hasMoreElements()){ next=dom.nextElement(); Class [] Parm={}; Method m=next.getClass().getMethod(s,Parm); lookahead=((Boolean)m.invoke(next,Parm)).booleanValue();} } catch(Exception e){System.out.println(e);} return lookahead;} public Object nextElement() { if (lookahead || hasMoreElements()) { lookahead=false; return next;} throw new NoSuchElementException(); } }