package edu.sc.seis.sod.process.waveform;
import edu.iris.Fissures.IfSeismogramDC.RequestFilter;
import edu.iris.Fissures.network.ChannelImpl;
import edu.iris.Fissures.seismogramDC.LocalSeismogramImpl;
import edu.sc.seis.fissuresUtil.cache.CacheEvent;
import edu.sc.seis.sod.CookieJar;
import edu.sc.seis.sod.subsetter.availableData.AvailableDataSubsetter;
public class WaveformAsAvailableData implements WaveformProcess {
public WaveformAsAvailableData(AvailableDataSubsetter availData) {
this.availData = availData;
}
@Override
public WaveformResult accept(CacheEvent event,
ChannelImpl channel,
RequestFilter[] original,
RequestFilter[] available,
LocalSeismogramImpl[] seismograms,
CookieJar cookieJar) throws Exception {
RequestFilter[] seisAvailable = toRequestFilter(seismograms);
return new WaveformResult(seismograms,
availData.accept(event, channel, original, seisAvailable, cookieJar));
}
public static RequestFilter[] toRequestFilter(LocalSeismogramImpl[] seismograms) {
RequestFilter[] seisAvailable = new RequestFilter[seismograms.length];
for (int i = 0; i < seisAvailable.length; i++) {
seisAvailable[i] = new RequestFilter(seismograms[i].getChannelID(),
seismograms[i].begin_time,
seismograms[i].getEndTime().getFissuresTime());
}
return seisAvailable;
}
AvailableDataSubsetter availData;
}