public abstract class PropertyIndexedEventTableSingle extends Object implements EventTable
MultiKeyUntyped
keys that store the property values.Modifier and Type | Field and Description |
---|---|
protected EventTableOrganization |
organization |
protected EventPropertyGetter |
propertyGetter |
Constructor and Description |
---|
PropertyIndexedEventTableSingle(EventPropertyGetter propertyGetter,
EventTableOrganization organization) |
Modifier and Type | Method and Description |
---|---|
void |
add(EventBean[] events)
Add an array of events.
|
void |
addRemove(EventBean[] newData,
EventBean[] oldData)
Add and remove events from table.
|
protected Object |
getKey(EventBean theEvent)
Determine multikey for index access.
|
EventTableOrganization |
getOrganization() |
abstract Set<EventBean> |
lookup(Object key) |
void |
remove(EventBean[] events)
Remove events.
|
String |
toQueryPlan() |
String |
toString() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
add, clear, destroy, getIndex, getNumberOfEvents, getNumKeys, getProviderClass, isEmpty, iterator, remove
forEach, spliterator
protected final EventPropertyGetter propertyGetter
protected final EventTableOrganization organization
public PropertyIndexedEventTableSingle(EventPropertyGetter propertyGetter, EventTableOrganization organization)
protected Object getKey(EventBean theEvent)
theEvent
- to get properties from for keypublic void addRemove(EventBean[] newData, EventBean[] oldData)
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 removepublic void add(EventBean[] events)
add
in interface EventTable
events
- to addIllegalArgumentException
- if the event was already existed in the indexpublic void remove(EventBean[] events)
remove
in interface EventTable
events
- to be removed, can be null instead of an empty array.IllegalArgumentException
- when the event could not be removed as its not in the indexpublic String toQueryPlan()
toQueryPlan
in interface EventTable
public EventTableOrganization getOrganization()
getOrganization
in interface EventTable