edu.sc.seis.sod.source.event

## Class EventFinder

- java.lang.Object
- - edu.sc.seis.sod.source.AbstractSource
  - - edu.sc.seis.sod.source.event.EventFinder

- All Implemented Interfaces:
    EventSource, Source
  Direct Known Subclasses:
    BackwardsEventFinder

      public class EventFinder
      extends AbstractSource
      implements EventSource

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected edu.iris.Fissures.model.TimeInterval` | `increment`
    `protected edu.iris.Fissures.model.TimeInterval` | `lag`
    `protected edu.iris.Fissures.model.TimeInterval` | `refreshInterval`

    - ### Fields inherited from class edu.sc.seis.sod.source.AbstractSource

      `name, NAME_ELEMENT, RETRIES_ELEMENT`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `EventFinder(org.w3c.dom.Element config)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected boolean` | `caughtUpWithRealtime()`
    `java.lang.String` | `getDescription()`
    `java.lang.String` | `getDNS()` returns the DNSName of the server.
    `edu.sc.seis.fissuresUtil.time.MicroSecondTimeRange` | `getEventTimeRange()`
    `protected edu.iris.Fissures.model.MicroSecondDate` | `getQueryEdge()`
    `protected edu.iris.Fissures.model.MicroSecondDate` | `getQueryStart()`
    `protected edu.sc.seis.fissuresUtil.time.MicroSecondTimeRange` | `getQueryTime()`
    `edu.iris.Fissures.model.TimeInterval` | `getWaitBeforeNext()` If the source needs to wait for more events to arrive, it should return the amount of time it wants to wait with this method.
    `boolean` | `hasNext()`
    `edu.sc.seis.fissuresUtil.cache.CacheEvent[]` | `next()`
    `protected void` | `processConfig(org.w3c.dom.Element config)`
    `protected void` | `setQueryEdge(edu.iris.Fissures.model.MicroSecondDate edge)` sets the latest time queried
    `protected void` | `updateQueryEdge(edu.sc.seis.fissuresUtil.time.MicroSecondTimeRange queryTime)`

    - ### Methods inherited from class edu.sc.seis.sod.source.AbstractSource

      `appendToName, getFissuresNamingService, getName, getRetries, getRetryStrategy, setRetryStrategy`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface edu.sc.seis.sod.source.Source

      `appendToName, getName, getRetries`

- - ### Field Detail

    - #### increment

          protected edu.iris.Fissures.model.TimeInterval increment

    - #### lag

          protected edu.iris.Fissures.model.TimeInterval lag

    - #### refreshInterval

          protected edu.iris.Fissures.model.TimeInterval refreshInterval

  - ### Constructor Detail

    - #### EventFinder

          public EventFinder(org.w3c.dom.Element config)
                      throws java.lang.Exception

      Throws:
        `java.lang.Exception`

  - ### Method Detail

    - #### processConfig

          protected void processConfig(org.w3c.dom.Element config)
                                throws ConfigurationException

      Throws:
        `ConfigurationException`

    - #### getDescription

          public java.lang.String getDescription()

      Specified by:
        `getDescription` in interface `EventSource`

    - #### hasNext

          public boolean hasNext()

      Specified by:
        `hasNext` in interface `EventSource`
      Returns:
        - false when this event source will return no new events from calls to next

    - #### next

          public edu.sc.seis.fissuresUtil.cache.CacheEvent[] next()

      Specified by:
        `next` in interface `EventSource`
      Returns:
        - the next set of events. Events can be returned from this method multiple times

    - #### updateQueryEdge

          protected void updateQueryEdge(edu.sc.seis.fissuresUtil.time.MicroSecondTimeRange queryTime)

    - #### getWaitBeforeNext

          public edu.iris.Fissures.model.TimeInterval getWaitBeforeNext()

      Description copied from interface: `EventSource`
      If the source needs to wait for more events to arrive, it should return the amount of time it wants to wait with this method.
      Specified by:
        `getWaitBeforeNext` in interface `EventSource`

    - #### caughtUpWithRealtime

          protected boolean caughtUpWithRealtime()

    - #### getEventTimeRange

          public edu.sc.seis.fissuresUtil.time.MicroSecondTimeRange getEventTimeRange()

      Specified by:
        `getEventTimeRange` in interface `EventSource`
      Returns:
        - a MicroSecondTimeRange starting at least as early as the earliest event and ending at least as late as the latest event. No event should be returned by this source with an origin before the begin time or after the end time of this range.

    - #### getQueryStart

          protected edu.iris.Fissures.model.MicroSecondDate getQueryStart()

      Returns:
        - the next time to start asking for events

    - #### getQueryTime

          protected edu.sc.seis.fissuresUtil.time.MicroSecondTimeRange getQueryTime()

      Returns:
        - the next time range to be queried for events

    - #### getQueryEdge

          protected edu.iris.Fissures.model.MicroSecondDate getQueryEdge()
                                                                  throws edu.sc.seis.fissuresUtil.database.NotFound

      Returns:
        - latest time queried
      Throws:
        `edu.sc.seis.fissuresUtil.database.NotFound`

    - #### setQueryEdge

          protected void setQueryEdge(edu.iris.Fissures.model.MicroSecondDate edge)

      sets the latest time queried

    - #### getDNS

          public java.lang.String getDNS()

      returns the DNSName of the server. The context under which the objectName is registered in the CORBA naming service.
      Returns:
        a `String` value