package edu.sc.seis.sod.subsetter.availableData;
import org.w3c.dom.Element;
import edu.iris.Fissures.IfSeismogramDC.RequestFilter;
import edu.iris.Fissures.network.ChannelIdUtil;
import edu.iris.Fissures.network.ChannelImpl;
import edu.sc.seis.fissuresUtil.cache.CacheEvent;
import edu.sc.seis.fissuresUtil.display.configuration.DOMHelper;
import edu.sc.seis.sod.ConfigurationException;
import edu.sc.seis.sod.CookieJar;
import edu.sc.seis.sod.status.StringTree;
import edu.sc.seis.sod.status.StringTreeLeaf;
import edu.sc.seis.sod.velocity.PrintlineVelocitizer;
public class PrintlineAvailableDataProcess implements AvailableDataSubsetter {
public PrintlineAvailableDataProcess(Element config)
throws ConfigurationException {
filename = DOMHelper.extractText(config, "filename", "");
template = DOMHelper.extractText(config, "template", DEFAULT_TEMPLATE);
velocitizer = new PrintlineVelocitizer(new String[] {filename, template});
}
private PrintlineVelocitizer velocitizer;
private String template, filename;
public static final String DEFAULT_TEMPLATE = "Got $availableRequests.size() for $channel";
public StringTree accept(CacheEvent event,
ChannelImpl channel,
RequestFilter[] request,
RequestFilter[] available,
CookieJar cookieJar) throws Exception {
velocitizer.evaluate(filename,
template,
event,
channel,
request,
available,
cookieJar);
return new StringTreeLeaf(this, true);
}
}