package edu.sc.seis.sod.subsetter.requestGenerator; import java.util.ArrayList; import java.util.List; import org.w3c.dom.Element; import org.w3c.dom.NodeList; import edu.iris.Fissures.IfSeismogramDC.RequestFilter; import edu.iris.Fissures.network.ChannelImpl; import edu.sc.seis.fissuresUtil.cache.CacheEvent; import edu.sc.seis.sod.ConfigurationException; import edu.sc.seis.sod.CookieJar; import edu.sc.seis.sod.SodUtil; public class CombineRequest implements RequestGenerator { public CombineRequest(Element config) throws ConfigurationException { NodeList kids = config.getChildNodes(); for (int i = 0; i< kids.getLength(); i++) { if (kids.item(i) instanceof Element) { Object obj = SodUtil.load((Element)kids.item(i), packages); if(obj instanceof RequestGenerator){ generators.add((RequestGenerator)obj); } } } } public RequestFilter[] generateRequest(CacheEvent event, ChannelImpl channel, CookieJar cookieJar) throws Exception { List<RequestFilter> out = new ArrayList<RequestFilter>(); for (RequestGenerator gen : generators) { RequestFilter[] subout = gen.generateRequest(event, channel, cookieJar); for (int i = 0; i < subout.length; i++) { out.add(subout[i]); } } return out.toArray(new RequestFilter[0]); } protected List<RequestGenerator> generators = new ArrayList<RequestGenerator>(); protected String[] packages = new String[] {"requestGenerator"}; }