/**
* EventStationFormatter.java
*
* @author Created by Omnicore CodeGuide
*/
package edu.sc.seis.sod.status.waveformArm;
import java.text.DecimalFormat;
import org.w3c.dom.Element;
import edu.iris.Fissures.IfNetwork.Station;
import edu.iris.Fissures.network.StationImpl;
import edu.sc.seis.fissuresUtil.bag.DistAz;
import edu.sc.seis.fissuresUtil.cache.CacheEvent;
import edu.sc.seis.fissuresUtil.chooser.ThreadSafeDecimalFormat;
import edu.sc.seis.sod.ConfigurationException;
import edu.sc.seis.sod.hibernate.SodDB;
import edu.sc.seis.sod.status.StationFormatter;
import edu.sc.seis.sod.status.StationTemplate;
public class EventStationFormatter extends StationFormatter{
public EventStationFormatter(Element el) throws ConfigurationException{
super(el);
}
public Object getTemplate(String name, Element el){
if(name.equals("numSuccess")){ return new SuccessfulQuery(); }
else if(name.equals("numFailed")){ return new FailedQuery(); }
else if(name.equals("numRetry")){ return new RetryQuery(); }
else if(name.equals("distance")){ return new Distance(); }
else if(name.equals("baz")){ return new BackAz(); }
return super.getTemplate(name, el);
}
public void setEvent(CacheEvent ev){ this.ev = ev; }
private class Distance implements StationTemplate{
public String getResult(Station station) {
DistAz dAz = new DistAz(station, ev);
return df.format(dAz.getDelta());
}
private ThreadSafeDecimalFormat df = new ThreadSafeDecimalFormat("0.00");
}
private class BackAz implements StationTemplate{
public String getResult(Station station) {
DistAz dAz = new DistAz(station, ev);
return df.format(dAz.getBaz());
}
private ThreadSafeDecimalFormat df = new ThreadSafeDecimalFormat("0.00");
}
private class SuccessfulQuery implements StationTemplate{
public String getResult(Station station) {
return "" + evStatus.getNumSuccessful(ev, (StationImpl)station);
}
}
private class FailedQuery implements StationTemplate{
public String getResult(Station station) {
return "" + evStatus.getNumFailed(ev, (StationImpl)station);
}
}
private class RetryQuery implements StationTemplate{
public String getResult(Station station) {
return "" + evStatus.getNumRetry(ev, (StationImpl)station);
}
}
private CacheEvent ev;
private static SodDB evStatus = SodDB.getSingleton();;
}