package edu.sc.seis.sod.source.seismogram;
import edu.iris.Fissures.IfEvent.Magnitude;
import edu.iris.Fissures.IfSeismogramDC.RequestFilter;
import edu.iris.Fissures.model.MicroSecondDate;
import edu.iris.Fissures.model.TimeInterval;
import edu.iris.Fissures.model.UnitImpl;
import edu.iris.Fissures.network.ChannelImpl;
import edu.sc.seis.fissuresUtil.cache.CacheEvent;
import edu.sc.seis.fissuresUtil.chooser.ClockUtil;
import edu.sc.seis.sod.CookieJar;
/**
* @author groves Created on Apr 12, 2005
*/
@Deprecated
public class BestIRISDataCenter implements SeismogramSourceLocator {
public SeismogramSource getSeismogramSource(CacheEvent event,
ChannelImpl channel,
RequestFilter[] infilters,
CookieJar cookieJar) throws Exception {
MicroSecondDate oTime = event.getPreferred().getTime();
if (ClockUtil.now().subtract(THIRTY_DAY).before(oTime)) {
return bud.getSeismogramSource(event, channel , infilters, cookieJar);
} else {
Magnitude usgsMw = null;
Magnitude[] mags = event.getPreferred().getMagnitudes();
for (int i = 0; i < mags.length; i++) {
if (mags[i].contributor.equalsIgnoreCase("usgs") && mags[i].type.equalsIgnoreCase("mw")) {
usgsMw = mags[i];
}
}
if (usgsMw != null && usgsMw.value >= 5.7) {
return pond.getSeismogramSource(event, channel , infilters, cookieJar);
}
}
return everything.getSeismogramSource(event, channel , infilters, cookieJar);
}
static final FixedDataCenter bud = new FixedDataCenter("edu/iris/dmc", "IRIS_BudDataCenter");
static final FixedDataCenter pond = new FixedDataCenter("edu/iris/dmc", "IRIS_PondDataCenter");
static final FixedDataCenter everything = new FixedDataCenter("edu/iris/dmc", "IRIS_DataCenter");
static final TimeInterval THIRTY_DAY = new TimeInterval(30, UnitImpl.DAY);
}