public abstract class PropertySortedEventTable extends java.lang.Object implements EventTable
Modifier and Type | Field and Description |
---|---|
protected EventTableOrganization |
organization |
protected EventPropertyGetter |
propertyGetter |
Constructor and Description |
---|
PropertySortedEventTable(EventPropertyGetter propertyGetter,
EventTableOrganization organization) |
Modifier and Type | Method and Description |
---|---|
void |
add(EventBean[] events,
ExprEvaluatorContext exprEvaluatorContext)
Add an array of events.
|
void |
addRemove(EventBean[] newData,
EventBean[] oldData,
ExprEvaluatorContext exprEvaluatorContext)
Add and remove events from table.
|
protected java.lang.Object |
getIndexedValue(EventBean theEvent)
Determine multikey for index access.
|
java.lang.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.
|
EventTableOrganization |
getOrganization() |
abstract java.util.Set<EventBean> |
lookupConstants(RangeIndexLookupValue lookupValueBase) |
abstract java.util.Set<EventBean> |
lookupGreater(java.lang.Object keyStart) |
abstract java.util.Collection<EventBean> |
lookupGreaterColl(java.lang.Object keyStart) |
abstract java.util.Set<EventBean> |
lookupGreaterEqual(java.lang.Object keyStart) |
abstract java.util.Collection<EventBean> |
lookupGreaterEqualColl(java.lang.Object keyStart) |
abstract java.util.Set<EventBean> |
lookupLess(java.lang.Object keyStart) |
abstract java.util.Set<EventBean> |
lookupLessEqual(java.lang.Object keyStart) |
abstract java.util.Collection<EventBean> |
lookupLessEqualColl(java.lang.Object keyStart) |
abstract java.util.Collection<EventBean> |
lookupLessThenColl(java.lang.Object keyStart) |
abstract java.util.Set<EventBean> |
lookupRange(java.lang.Object keyStart,
boolean includeStart,
java.lang.Object keyEnd,
boolean includeEnd,
boolean allowRangeReversal) |
abstract java.util.Collection<EventBean> |
lookupRangeColl(java.lang.Object keyStart,
boolean includeStart,
java.lang.Object keyEnd,
boolean includeEnd,
boolean allowRangeReversal) |
abstract java.util.Set<EventBean> |
lookupRangeInverted(java.lang.Object keyStart,
boolean includeStart,
java.lang.Object keyEnd,
boolean includeEnd) |
abstract java.util.Collection<EventBean> |
lookupRangeInvertedColl(java.lang.Object keyStart,
boolean includeStart,
java.lang.Object keyEnd,
boolean includeEnd) |
protected static java.util.Set<EventBean> |
normalize(java.util.SortedMap<java.lang.Object,java.util.Set<EventBean>> submap) |
protected static java.util.Set<EventBean> |
normalize(java.util.SortedMap<java.lang.Object,java.util.Set<EventBean>> submapOne,
java.util.SortedMap<java.lang.Object,java.util.Set<EventBean>> submapTwo) |
protected static java.util.Collection<EventBean> |
normalizeCollection(java.util.SortedMap<java.lang.Object,java.util.Set<EventBean>> submap) |
protected static java.util.Collection<EventBean> |
normalizeCollection(java.util.SortedMap<java.lang.Object,java.util.Set<EventBean>> submapOne,
java.util.SortedMap<java.lang.Object,java.util.Set<EventBean>> submapTwo) |
void |
remove(EventBean[] events,
ExprEvaluatorContext exprEvaluatorContext)
Remove events.
|
java.lang.String |
toQueryPlan() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
add, clear, destroy, getIndex, getNumKeys, getProviderClass, isEmpty, iterator, remove
protected final EventPropertyGetter propertyGetter
protected final EventTableOrganization organization
public PropertySortedEventTable(EventPropertyGetter propertyGetter, EventTableOrganization organization)
public abstract java.util.Set<EventBean> lookupRange(java.lang.Object keyStart, boolean includeStart, java.lang.Object keyEnd, boolean includeEnd, boolean allowRangeReversal)
public abstract java.util.Collection<EventBean> lookupRangeColl(java.lang.Object keyStart, boolean includeStart, java.lang.Object keyEnd, boolean includeEnd, boolean allowRangeReversal)
public abstract java.util.Set<EventBean> lookupRangeInverted(java.lang.Object keyStart, boolean includeStart, java.lang.Object keyEnd, boolean includeEnd)
public abstract java.util.Collection<EventBean> lookupRangeInvertedColl(java.lang.Object keyStart, boolean includeStart, java.lang.Object keyEnd, boolean includeEnd)
public abstract java.util.Set<EventBean> lookupLess(java.lang.Object keyStart)
public abstract java.util.Collection<EventBean> lookupLessThenColl(java.lang.Object keyStart)
public abstract java.util.Set<EventBean> lookupLessEqual(java.lang.Object keyStart)
public abstract java.util.Collection<EventBean> lookupLessEqualColl(java.lang.Object keyStart)
public abstract java.util.Set<EventBean> lookupGreaterEqual(java.lang.Object keyStart)
public abstract java.util.Collection<EventBean> lookupGreaterEqualColl(java.lang.Object keyStart)
public abstract java.util.Set<EventBean> lookupGreater(java.lang.Object keyStart)
public abstract java.util.Collection<EventBean> lookupGreaterColl(java.lang.Object keyStart)
public abstract java.util.Set<EventBean> lookupConstants(RangeIndexLookupValue lookupValueBase)
protected java.lang.Object getIndexedValue(EventBean theEvent)
theEvent
- to get properties from for keypublic 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)
add
in interface EventTable
events
- to addexprEvaluatorContext
- evaluator contextjava.lang.IllegalArgumentException
- if the event was already existed in the indexpublic void remove(EventBean[] events, ExprEvaluatorContext exprEvaluatorContext)
remove
in interface EventTable
events
- to be removed, can be null instead of an empty array.exprEvaluatorContext
- evaluator contextjava.lang.IllegalArgumentException
- when the event could not be removed as its not in the indexpublic java.lang.Integer getNumberOfEvents()
EventTable
getNumberOfEvents
in interface EventTable
protected static java.util.Set<EventBean> normalize(java.util.SortedMap<java.lang.Object,java.util.Set<EventBean>> submap)
protected static java.util.Collection<EventBean> normalizeCollection(java.util.SortedMap<java.lang.Object,java.util.Set<EventBean>> submap)
protected static java.util.Collection<EventBean> normalizeCollection(java.util.SortedMap<java.lang.Object,java.util.Set<EventBean>> submapOne, java.util.SortedMap<java.lang.Object,java.util.Set<EventBean>> submapTwo)
protected static java.util.Set<EventBean> normalize(java.util.SortedMap<java.lang.Object,java.util.Set<EventBean>> submapOne, java.util.SortedMap<java.lang.Object,java.util.Set<EventBean>> submapTwo)
public java.lang.String toQueryPlan()
toQueryPlan
in interface EventTable
public EventTableOrganization getOrganization()
getOrganization
in interface EventTable