public class SingleReferenceEventTable extends Object implements EventTable, EventTableAsSet
Constructor and Description |
---|
SingleReferenceEventTable(EventTableOrganization organization,
AtomicReference<ObjectArrayBackedEventBean> eventReference) |
Modifier and Type | Method and Description |
---|---|
void |
add(EventBean[] events,
ExprEvaluatorContext exprEvaluatorContext)
Add events to table.
|
void |
add(EventBean event,
ExprEvaluatorContext exprEvaluatorContext)
Add event to table.
|
void |
addRemove(EventBean[] newData,
EventBean[] oldData,
ExprEvaluatorContext exprEvaluatorContext)
Add and remove events from table.
|
Set<EventBean> |
allValues() |
void |
clear()
Clear out index.
|
void |
destroy()
Destroy index.
|
Object |
getIndex()
Return the index object itself, or an object-array for multiple index structures.
|
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.
|
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.
|
EventTableOrganization |
getOrganization() |
Class |
getProviderClass() |
boolean |
isEmpty()
Returns true if the index is definitely empty,
or false if is not definitely empty but we can not certain.
|
Iterator<EventBean> |
iterator()
Returns an iterator over events in the table.
|
void |
remove(EventBean[] events,
ExprEvaluatorContext exprEvaluatorContext)
Remove events from table.
|
void |
remove(EventBean event,
ExprEvaluatorContext exprEvaluatorContext)
Remove event from table.
|
String |
toQueryPlan() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
forEach, spliterator
public SingleReferenceEventTable(EventTableOrganization organization, AtomicReference<ObjectArrayBackedEventBean> eventReference)
public void addRemove(EventBean[] newData, EventBean[] oldData, ExprEvaluatorContext exprEvaluatorContext)
EventTable
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.
addRemove
in interface EventTable
newData
- to addoldData
- to removeexprEvaluatorContext
- evaluator contextpublic void add(EventBean[] events, ExprEvaluatorContext exprEvaluatorContext)
EventTable
add
in interface EventTable
events
- to addexprEvaluatorContext
- evaluator contextpublic void add(EventBean event, ExprEvaluatorContext exprEvaluatorContext)
EventTable
add
in interface EventTable
event
- to addexprEvaluatorContext
- evaluator contextpublic void remove(EventBean[] events, ExprEvaluatorContext exprEvaluatorContext)
EventTable
remove
in interface EventTable
events
- to removeexprEvaluatorContext
- evaluator contextpublic void remove(EventBean event, ExprEvaluatorContext exprEvaluatorContext)
EventTable
remove
in interface EventTable
event
- to removeexprEvaluatorContext
- evaluator contextpublic Iterator<EventBean> iterator()
EventTable
iterator
in interface EventTable
iterator
in interface Iterable<EventBean>
public boolean isEmpty()
EventTable
isEmpty
in interface EventTable
public void clear()
EventTable
clear
in interface EventTable
public void destroy()
EventTable
destroy
in interface EventTable
public String toQueryPlan()
toQueryPlan
in interface EventTable
public Integer getNumberOfEvents()
EventTable
getNumberOfEvents
in interface EventTable
public int getNumKeys()
EventTable
The number returned can be an estimate and may not be accurate.
getNumKeys
in interface EventTable
public Object getIndex()
EventTable
May return null if the information is not readily available, i.e. externally maintained index
getIndex
in interface EventTable
public EventTableOrganization getOrganization()
getOrganization
in interface EventTable
public Set<EventBean> allValues()
allValues
in interface EventTableAsSet
public Class getProviderClass()
getProviderClass
in interface EventTable