package edu.sc.seis.sod.subsetter;
import edu.iris.Fissures.Time;
import edu.iris.Fissures.TimeRange;
import edu.iris.Fissures.IfEvent.NoPreferredOrigin;
import edu.iris.Fissures.IfNetwork.Channel;
import edu.iris.Fissures.IfNetwork.NetworkAttr;
import edu.iris.Fissures.IfNetwork.Site;
import edu.iris.Fissures.IfNetwork.Station;
import edu.iris.Fissures.model.MicroSecondDate;
import edu.iris.Fissures.model.TimeInterval;
import edu.iris.Fissures.model.UnitImpl;
import edu.sc.seis.sod.hibernate.StatefulEvent;
/**
* EventEffectiveTimeOverlap.java Created: Wed Mar 19 10:49:54 2003
*
* @author <a href="mailto:crotwell@owl.seis.sc.edu">Philip Crotwell </a>
* @version 1.0
*/
public class EventEffectiveTimeOverlap extends EffectiveTimeOverlap {
public EventEffectiveTimeOverlap(StatefulEvent event)
throws NoPreferredOrigin {
super(createTimeRange(event));
} // EventEffectiveTimeOverlap constructor
static TimeRange createTimeRange(StatefulEvent event)
throws NoPreferredOrigin {
Time otime = event.getOrigin().getOriginTime();
if (otime == null) {throw new RuntimeException("origin time is null");}
MicroSecondDate originTime = new MicroSecondDate(otime);
return new TimeRange(originTime.getFissuresTime(),
originTime.add(DEFAULT_OFFSET).getFissuresTime());
}
public boolean overlaps(NetworkAttr net) {
return overlaps(net.getEffectiveTime());
}
public boolean overlaps(Station station) {
return overlaps(station.getEffectiveTime());
}
public boolean overlaps(Site site) {
return overlaps(site.getEffectiveTime());
}
public boolean overlaps(Channel channel) {
return overlaps(channel.getEffectiveTime());
}
static final TimeInterval DEFAULT_OFFSET = new TimeInterval(3, UnitImpl.DAY);
} // EventEffectiveTimeOverlap