package edu.sc.seis.sod.source.network;
import java.util.ArrayList;
import java.util.List;
import org.w3c.dom.Element;
import edu.iris.Fissures.IfNetwork.ChannelId;
import edu.iris.Fissures.IfNetwork.ChannelNotFound;
import edu.iris.Fissures.IfNetwork.Instrumentation;
import edu.iris.Fissures.IfNetwork.NetworkId;
import edu.iris.Fissures.IfNetwork.NetworkNotFound;
import edu.iris.Fissures.model.QuantityImpl;
import edu.iris.Fissures.model.TimeInterval;
import edu.iris.Fissures.model.UnitImpl;
import edu.iris.Fissures.network.ChannelImpl;
import edu.iris.Fissures.network.NetworkAttrImpl;
import edu.iris.Fissures.network.StationImpl;
import edu.sc.seis.fissuresUtil.cache.CacheNetworkAccess;
import edu.sc.seis.fissuresUtil.sac.InvalidResponse;
import edu.sc.seis.sod.ConfigurationException;
import edu.sc.seis.sod.SodUtil;
import edu.sc.seis.sod.source.AbstractSource;
public abstract class AbstractNetworkSource extends AbstractSource implements NetworkSource {
public AbstractNetworkSource(String name, int retries) {
super(name, retries);
refreshInterval = new TimeInterval(1, UnitImpl.FORTNIGHT);
}
public AbstractNetworkSource(NetworkSource wrapped) {
this(wrapped.getName(), wrapped.getRetries());
}
public AbstractNetworkSource(Element config) throws ConfigurationException {
super(config, "default", -1);
Element subElement = SodUtil.getElement(config, REFRESH_ELEMENT);
if(subElement != null) {
refreshInterval = SodUtil.loadTimeInterval(subElement);
} else {
refreshInterval = new TimeInterval(1, UnitImpl.FORTNIGHT);
}
}
public TimeInterval getRefreshInterval() {
return this.refreshInterval;
}
public void setConstraints(NetworkQueryConstraints constraints) {
this.constraints = constraints;
}
protected NetworkQueryConstraints constraints;
protected TimeInterval refreshInterval;
public static final String REFRESH_ELEMENT = "refreshInterval";
}