|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.espertech.esper.epl.join.table.PropertyIndexedEventTable
public abstract class PropertyIndexedEventTable
Index that organizes events by the event property values into hash buckets. Based on a HashMap
with MultiKeyUntyped
keys that store the property values.
Takes a list of property names as parameter. Doesn't care which event type the events have as long as the properties
exist. If the same event is added twice, the class throws an exception on add.
Field Summary | |
---|---|
protected EventTableOrganization |
organization
|
protected EventPropertyGetter[] |
propertyGetters
|
Constructor Summary | |
---|---|
PropertyIndexedEventTable(EventPropertyGetter[] propertyGetters,
EventTableOrganization organization)
|
Method Summary | |
---|---|
void |
add(EventBean[] events)
Add an array of events. |
void |
addRemove(EventBean[] newData,
EventBean[] oldData)
Add and remove events from table. |
protected MultiKeyUntyped |
getMultiKey(EventBean theEvent)
Determine multikey for index access. |
EventTableOrganization |
getOrganization()
|
abstract java.util.Set<EventBean> |
lookup(java.lang.Object[] keys)
|
void |
remove(EventBean[] events)
Remove events. |
java.lang.String |
toQueryPlan()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface com.espertech.esper.epl.join.table.EventTable |
---|
add, clear, destroy, getIndex, getNumberOfEvents, getNumKeys, getProviderClass, isEmpty, iterator, remove |
Field Detail |
---|
protected final EventPropertyGetter[] propertyGetters
protected final EventTableOrganization organization
Constructor Detail |
---|
public PropertyIndexedEventTable(EventPropertyGetter[] propertyGetters, EventTableOrganization organization)
Method Detail |
---|
public abstract java.util.Set<EventBean> lookup(java.lang.Object[] keys)
protected MultiKeyUntyped getMultiKey(EventBean theEvent)
theEvent
- to get properties from for key
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 add
java.lang.IllegalArgumentException
- 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.
java.lang.IllegalArgumentException
- when the event could not be removed as its not in the indexpublic java.lang.String toQueryPlan()
toQueryPlan
in interface EventTable
public EventTableOrganization getOrganization()
getOrganization
in interface EventTable
|
© 2006-2016 EsperTech Inc. All rights reserved. Visit us at espertech.com |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |