package edu.sc.seis.sod.subsetter.channel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import edu.iris.Fissures.IfNetwork.ChannelNotFound;
import edu.iris.Fissures.model.QuantityImpl;
import edu.iris.Fissures.network.ChannelImpl;
import edu.sc.seis.fissuresUtil.cache.InstrumentationLoader;
import edu.sc.seis.fissuresUtil.sac.InvalidResponse;
import edu.sc.seis.sod.source.SodSourceException;
import edu.sc.seis.sod.source.network.NetworkSource;
import edu.sc.seis.sod.status.Fail;
import edu.sc.seis.sod.status.StringTree;
import edu.sc.seis.sod.status.StringTreeLeaf;
public class HasSensitivity implements ChannelSubsetter {
public StringTree accept(ChannelImpl channel, NetworkSource network) {
try {
QuantityImpl sens = network.getSensitivity(channel);
return new StringTreeLeaf(this, InstrumentationLoader.isValidSensitivity(sens));
} catch(ChannelNotFound e) {
return new Fail(this, "No instrumentation");
} catch (InvalidResponse e) {
return new Fail(this, "Invalid instrumentation: "+e.getMessage());
} catch(SodSourceException e) {
return new Fail(this, "Error getting instrumentation: "+e.getMessage());
}
}
private Logger logger = LoggerFactory.getLogger(HasResponse.class);
}