All Superinterfaces:
Iterable<EventBean>
All Known Subinterfaces:
EventTableAsSet, EventTableQuadTree
All Known Implementing Classes:
EventTableQuadTreeMXCIFImpl, EventTableQuadTreePointRegionImpl, MultiIndexEventTable, PropertyCompositeEventTable, PropertyCompositeEventTableImpl, PropertyHashedEventTable, PropertyHashedEventTableUnadorned, PropertyHashedEventTableUnique, PropertySortedEventTable, PropertySortedEventTableImpl, SingleReferenceEventTable, UnindexedEventTable, UnindexedEventTableImpl, UnindexedEventTableList, VirtualDWEventTable

public interface EventTable extends Iterable<EventBean>
Table of events allowing add and remove. Lookup in table is coordinated through the underlying implementation.
  • Method Details

    • addRemove

      void addRemove(EventBean[] newData, EventBean[] oldData, ExprEvaluatorContext exprEvaluatorContext)
      Add and remove events from table.

      It is up to the index to decide whether to add first and then remove, or whether to remove and then add.

      It is important to note that a given event can be in both the removed and the added events. This means that unique indexes probably need to remove first and then add. Most other non-unique indexes will add first and then remove since the an event can be both in the add and the remove stream.

      Parameters:
      newData - to add
      oldData - to remove
      exprEvaluatorContext - evaluator context
    • add

      void add(EventBean[] events, ExprEvaluatorContext exprEvaluatorContext)
      Add events to table.
      Parameters:
      events - to add
      exprEvaluatorContext - evaluator context
    • add

      void add(EventBean event, ExprEvaluatorContext exprEvaluatorContext)
      Add event to table.
      Parameters:
      event - to add
      exprEvaluatorContext - evaluator context
    • remove

      void remove(EventBean[] events, ExprEvaluatorContext exprEvaluatorContext)
      Remove events from table.
      Parameters:
      events - to remove
      exprEvaluatorContext - evaluator context
    • remove

      void remove(EventBean event, ExprEvaluatorContext exprEvaluatorContext)
      Remove event from table.
      Parameters:
      event - to remove
      exprEvaluatorContext - evaluator context
    • iterator

      Iterator<EventBean> iterator()
      Returns an iterator over events in the table. Not required to be implemented for all indexes. Full table scans and providers that have easy access to an iterator may implement.
      Specified by:
      iterator in interface Iterable<EventBean>
      Returns:
      table iterator
      Throws:
      UnsupportedOperationException - for operation not supported for this type of index
    • isEmpty

      boolean isEmpty()
      Returns true if the index is definitely empty, or false if is not definitely empty but we can not certain.
      Returns:
      true for definitely empty index, false for there-may-be-rows and please-check-by-iterating
    • clear

      void clear()
      Clear out index.
    • destroy

      void destroy()
      Destroy index.
    • toQueryPlan

      String toQueryPlan()
    • getProviderClass

      Class getProviderClass()
    • getNumberOfEvents

      Integer getNumberOfEvents()
      If the number of events is readily available, an implementation will return that number or it may return null to indicate that the count is not readily available.
      Returns:
      number of events
    • getNumKeys

      int getNumKeys()
      If the index retains events using some key-based organization this returns the number of keys, and may return -1 to indicate that either the number of keys is not available or costly to obtain.

      The number returned can be an estimate and may not be accurate.

      Returns:
      number of keys
    • getIndex

      Object getIndex()
      Return the index object itself, or an object-array for multiple index structures.

      May return null if the information is not readily available, i.e. externally maintained index

      Returns:
      index object
    • getOrganization

      EventTableOrganization getOrganization()