package edu.sc.seis.sod.subsetter.channel; import org.w3c.dom.Element; import edu.iris.Fissures.model.SamplingImpl; import edu.iris.Fissures.model.TimeInterval; import edu.iris.Fissures.model.UnitImpl; import edu.iris.Fissures.network.ChannelImpl; import edu.sc.seis.sod.ConfigurationException; import edu.sc.seis.sod.SodUtil; import edu.sc.seis.sod.source.network.NetworkSource; import edu.sc.seis.sod.status.StringTree; import edu.sc.seis.sod.status.StringTreeLeaf; import edu.sc.seis.sod.subsetter.RangeSubsetter; public class Sampling extends RangeSubsetter implements ChannelSubsetter { public Sampling(Element config) throws ConfigurationException { super(config, 0, Integer.MAX_VALUE); TimeInterval interval = SodUtil.loadTimeInterval(SodUtil.getElement(config, "interval")); min = getHertz((int)getMinValue(), interval); max = getHertz((int)getMaxValue(), interval); } public StringTree accept(ChannelImpl channel, NetworkSource network) throws Exception { return new StringTreeLeaf(this, accept((SamplingImpl)channel.getSamplingInfo())); } public boolean accept(SamplingImpl channelSampling) { return accept(getHertz(channelSampling)); } double getHertz(int val, TimeInterval interval) { return getHertz(new SamplingImpl(val, interval)); } double getHertz(SamplingImpl sampling) { return sampling.getFrequency().getValue(UnitImpl.HERTZ); } }