package edu.sc.seis.sod.subsetter.channel;
import org.w3c.dom.Element;
import edu.iris.Fissures.IfNetwork.ChannelNotFound;
import edu.iris.Fissures.network.ChannelImpl;
import edu.sc.seis.fissuresUtil.sac.InvalidResponse;
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;
/**
* @author oliverpa
*
* Created on Jul 7, 2005
*/
public class SensorModel extends SensorSubsetter {
public SensorModel(Element config) {
acceptedModel = SodUtil.getNestedText(config);
}
public StringTree accept(ChannelImpl channel, NetworkSource network)
throws Exception {
boolean accept;
try {
accept = acceptedModel.equals(getSeismicHardware(channel, network).model);
if (accept) {
return new StringTreeLeaf(this, true);
} else {
return new StringTreeLeaf(this, false, getSeismicHardware(channel, network).model);
}
} catch(ChannelNotFound ex) {
return new StringTreeLeaf(this, false, getChannelNotFoundMsg());
} catch(InvalidResponse ex) {
return new StringTreeLeaf(this, false, getInstrumentationInvalidMsg());
}
}
private String acceptedModel;
}