package edu.sc.seis.sod.subsetter.request;
import java.io.IOException;
import java.io.Writer;
import java.util.TimeZone;
import org.w3c.dom.Element;
import edu.iris.Fissures.IfEvent.EventAccessOperations;
import edu.iris.Fissures.IfNetwork.Channel;
import edu.iris.Fissures.IfSeismogramDC.RequestFilter;
import edu.iris.Fissures.model.MicroSecondDate;
import edu.sc.seis.fissuresUtil.chooser.ThreadSafeSimpleDateFormat;
import edu.sc.seis.sod.ConfigurationException;
public class NetDCRequest extends BreqFastRequest {
public NetDCRequest(Element config) throws ConfigurationException {
super(config);
}
protected void insertRequest(Channel channel,
RequestFilter[] request,
Writer out,
int i) throws IOException {
MicroSecondDate start = new MicroSecondDate(request[i].start_time);
MicroSecondDate end = new MicroSecondDate(request[i].end_time);
out.write(".DATA * " + channel.get_id().network_id.network_code + " "
+ channel.get_id().station_code + " "
+ channel.get_id().site_code + " "
+ channel.get_code() + " "
+ netDCTimeFormat.format(start) + " "
+ netDCTimeFormat.format(end)
+ nl);
}
protected void insertEventHeader(EventAccessOperations event, Writer out, String label)
throws IOException {
out.write(".NETDC_REQUEST" + nl);
insert(out, "name");
insert(out, "inst");
optInsert(out, "mail");
insert(out, "email");
optInsert(out, "phone");
optInsert(out, "fax");
out.write(".LABEL " + label + nl);
optInsert(out, "media");
optInsert(out, "altmedia", "ALTERNATIVE MEDIA");
optInsert(out, "format_waveform");
optInsert(out, "format_response");
optInsert(out, "merge_data");
optInsert(out, "disposition");
out.write(".END" + nl);
out.write(nl);
}
protected String getDefaultWorkingDir(){
return "netdc";
}
protected String getDefaultFileTemplate(){
return "${event.getTime('yyyy.DDD.HH.mm.ss.SSSS')}.netdc";
}
private ThreadSafeSimpleDateFormat netDCTimeFormat = new ThreadSafeSimpleDateFormat("'\"'yyyy MM dd HH mm ss.SSSS'\"'", TimeZone.getTimeZone("GMT"));
}