public abstract class PropertyCompositeEventTable extends Object implements EventTable
Constructor and Description |
---|
PropertyCompositeEventTable(Class[] optKeyCoercedTypes,
Class[] optRangeCoercedTypes,
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.
|
abstract Map<Object,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.
|
Class[] |
getOptKeyCoercedTypes() |
Class[] |
getOptRangeCoercedTypes() |
EventTableOrganization |
getOrganization() |
abstract CompositeIndexQueryResultPostProcessor |
getPostProcessor() |
void |
remove(EventBean[] events)
Remove events.
|
String |
toQueryPlan() |
String |
toString() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
add, clear, destroy, getNumKeys, getProviderClass, isEmpty, iterator, remove
forEach, spliterator
public PropertyCompositeEventTable(Class[] optKeyCoercedTypes, Class[] optRangeCoercedTypes, EventTableOrganization organization)
public abstract Map<Object,Object> getIndex()
EventTable
May return null if the information is not readily available, i.e. externally maintained index
getIndex
in interface EventTable
public abstract CompositeIndexQueryResultPostProcessor getPostProcessor()
public 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 Class[] getOptRangeCoercedTypes()
public Class[] getOptKeyCoercedTypes()
public Integer getNumberOfEvents()
EventTable
getNumberOfEvents
in interface EventTable
public EventTableOrganization getOrganization()
getOrganization
in interface EventTable