1 5 package com.opensymphony.webwork.util; 6 7 import com.opensymphony.xwork.Action; 8 9 import java.util.ArrayList ; 10 import java.util.Iterator ; 11 import java.util.List ; 12 13 14 21 public class AppendIteratorFilter extends IteratorFilterSupport implements Iterator , Action { 22 24 List iterators = new ArrayList (); 25 26 List sources = new ArrayList (); 28 29 31 public void setSource(Object anIterator) { 33 sources.add(anIterator); 34 } 35 36 public String execute() { 38 for (int i = 0; i < sources.size(); i++) { 40 Object source = sources.get(i); 41 iterators.add(getIterator(source)); 42 } 43 44 return SUCCESS; 45 } 46 47 public boolean hasNext() { 49 if (iterators.size() > 0) { 50 return (((Iterator ) iterators.get(0)).hasNext()); 51 } else { 52 return false; 53 } 54 } 55 56 public Object next() { 57 try { 58 return ((Iterator ) iterators.get(0)).next(); 59 } finally { 60 if (iterators.size() > 0) { 61 if (!((Iterator ) iterators.get(0)).hasNext()) { 62 iterators.remove(0); 63 } 64 } 65 } 66 } 67 68 public void remove() { 69 throw new UnsupportedOperationException (); 70 } 71 } 72 | Popular Tags |