|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.espertech.esper.epl.join.table.PropertyIndexedEventTableSingle
public class PropertyIndexedEventTableSingle
Index that organizes events by the event property values into hash buckets. Based on a HashMap
with MultiKeyUntyped
keys that store the property values.
Field Summary | |
---|---|
protected EventPropertyGetter |
propertyGetter
|
protected java.util.Map<java.lang.Object,java.util.Set<EventBean>> |
propertyIndex
|
protected int |
streamNum
|
Constructor Summary | |
---|---|
PropertyIndexedEventTableSingle(int streamNum,
EventPropertyGetter propertyGetter)
|
Method Summary | |
---|---|
void |
add(EventBean[] events)
Add an array of events. |
void |
addRemove(EventBean[] newData,
EventBean[] oldData)
Add and remove events from table. |
void |
clear()
Clear out index. |
protected java.lang.Object |
getKey(EventBean theEvent)
Determine multikey for index access. |
boolean |
isEmpty()
Returns true if the index is empty, or false if not |
java.util.Iterator<EventBean> |
iterator()
Returns an iterator over events in the table. |
java.util.Set<EventBean> |
lookup(java.lang.Object key)
Returns the set of events that have the same property value as the given event. |
void |
remove(EventBean[] events)
Remove events. |
java.lang.String |
toQueryPlan()
|
java.lang.String |
toString()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected final int streamNum
protected final EventPropertyGetter propertyGetter
protected final java.util.Map<java.lang.Object,java.util.Set<EventBean>> propertyIndex
Constructor Detail |
---|
public PropertyIndexedEventTableSingle(int streamNum, EventPropertyGetter propertyGetter)
Method Detail |
---|
protected java.lang.Object getKey(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.util.Set<EventBean> lookup(java.lang.Object key)
key
- to compare against
public boolean isEmpty()
EventTable
isEmpty
in interface EventTable
public java.util.Iterator<EventBean> iterator()
EventTable
iterator
in interface EventTable
iterator
in interface java.lang.Iterable<EventBean>
public void clear()
EventTable
clear
in interface EventTable
public java.lang.String toString()
toString
in class java.lang.Object
public java.lang.String toQueryPlan()
toQueryPlan
in interface EventTable
|
© 2006-2011 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 |