package edu.sc.seis.sod.source.event; import org.w3c.dom.Element; import edu.sc.seis.fissuresUtil.cache.CacheEvent; import edu.sc.seis.fissuresUtil.chooser.ClockUtil; import edu.sc.seis.fissuresUtil.mockFissures.IfEvent.MockEventAttr; import edu.sc.seis.fissuresUtil.mockFissures.IfEvent.MockOrigin; import edu.sc.seis.fissuresUtil.time.MicroSecondTimeRange; import edu.sc.seis.sod.ConfigurationException; import edu.sc.seis.sod.SodUtil; public class NowFakeEventSource extends PeriodicFakeEventSource { public NowFakeEventSource(Element config) throws ConfigurationException { super(ClockUtil.now(), SodUtil.loadTimeInterval(SodUtil.getElement(config, "interval")), SodUtil.loadInt(config, "numEvents", -1)); } public String getDescription() { return "Events starting now, with "+numEvents+" new events at the current request time but no more frequent than "+interval; } public MicroSecondTimeRange getEventTimeRange() { return new MicroSecondTimeRange(startTime, ClockUtil.wayFuture()); } public CacheEvent[] next() { if (nextEventTime.before(ClockUtil.now())) { eventCounter++; prevEventTime = ClockUtil.now(); nextEventTime = prevEventTime.add(interval); return new CacheEvent[] { new CacheEvent(MockEventAttr.create(-1), MockOrigin.create(prevEventTime, mags)) }; } return new CacheEvent[0]; } }