|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.espertech.esper.epl.join.table.PropertySortedEventTable
public class PropertySortedEventTable
Index that organizes events by the event property values into a single TreeMap sortable non-nested index with Object keys that store the property values.
Field Summary | |
---|---|
protected java.util.HashSet<EventBean> |
nullKeyedValues
|
protected EventTableOrganization |
organization
|
protected EventPropertyGetter |
propertyGetter
|
protected java.util.TreeMap<java.lang.Object,java.util.Set<EventBean>> |
propertyIndex
Index table. |
Constructor Summary | |
---|---|
PropertySortedEventTable(EventPropertyGetter propertyGetter,
EventTableOrganization organization)
Ctor. |
Method Summary | |
---|---|
void |
add(EventBean theEvent)
Add event to table. |
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 |
coerce(java.lang.Object value)
|
java.lang.Object |
getIndex()
Return the index object itself, or an object-array for multiple index structures. |
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. |
int |
getNumKeys()
If the index retains events using some key-based organization this returns the number of keys, and may return null to indicate that either the number of keys is not available or costly to obtain. |
EventTableOrganization |
getOrganization()
|
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> |
lookupConstants(RangeIndexLookupValue lookupValueBase)
|
java.util.Set<EventBean> |
lookupGreater(java.lang.Object keyStart)
|
java.util.Collection<EventBean> |
lookupGreaterColl(java.lang.Object keyStart)
|
java.util.Set<EventBean> |
lookupGreaterEqual(java.lang.Object keyStart)
|
java.util.Collection<EventBean> |
lookupGreaterEqualColl(java.lang.Object keyStart)
|
java.util.Set<EventBean> |
lookupLess(java.lang.Object keyStart)
|
java.util.Set<EventBean> |
lookupLessEqual(java.lang.Object keyStart)
|
java.util.Collection<EventBean> |
lookupLessEqualColl(java.lang.Object keyStart)
|
java.util.Collection<EventBean> |
lookupLessThenColl(java.lang.Object keyStart)
|
java.util.Set<EventBean> |
lookupRange(java.lang.Object keyStart,
boolean includeStart,
java.lang.Object keyEnd,
boolean includeEnd,
boolean allowRangeReversal)
Returns the set of events that have the same property value as the given event. |
java.util.Collection<EventBean> |
lookupRangeColl(java.lang.Object keyStart,
boolean includeStart,
java.lang.Object keyEnd,
boolean includeEnd,
boolean allowRangeReversal)
|
java.util.Set<EventBean> |
lookupRangeInverted(java.lang.Object keyStart,
boolean includeStart,
java.lang.Object keyEnd,
boolean includeEnd)
|
java.util.Collection<EventBean> |
lookupRangeInvertedColl(java.lang.Object keyStart,
boolean includeStart,
java.lang.Object keyEnd,
boolean includeEnd)
|
void |
remove(EventBean theEvent)
Remove event from table. |
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 |
Field Detail |
---|
protected final EventPropertyGetter propertyGetter
protected final EventTableOrganization organization
protected final java.util.TreeMap<java.lang.Object,java.util.Set<EventBean>> propertyIndex
protected final java.util.HashSet<EventBean> nullKeyedValues
Constructor Detail |
---|
public PropertySortedEventTable(EventPropertyGetter propertyGetter, EventTableOrganization organization)
Method Detail |
---|
protected java.lang.Object coerce(java.lang.Object value)
protected java.lang.Object getIndexedValue(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> lookupRange(java.lang.Object keyStart, boolean includeStart, java.lang.Object keyEnd, boolean includeEnd, boolean allowRangeReversal)
keyStart
- to compare againstkeyEnd
- to compare againstallowRangeReversal
- indicate whether "a between 60 and 50" should return no results (equivalent to a>= X and a <=Y) or should return results (equivalent to 'between' and 'in'
public java.util.Collection<EventBean> lookupRangeColl(java.lang.Object keyStart, boolean includeStart, java.lang.Object keyEnd, boolean includeEnd, boolean allowRangeReversal)
public java.util.Set<EventBean> lookupRangeInverted(java.lang.Object keyStart, boolean includeStart, java.lang.Object keyEnd, boolean includeEnd)
public java.util.Collection<EventBean> lookupRangeInvertedColl(java.lang.Object keyStart, boolean includeStart, java.lang.Object keyEnd, boolean includeEnd)
public java.util.Set<EventBean> lookupLess(java.lang.Object keyStart)
public java.util.Collection<EventBean> lookupLessThenColl(java.lang.Object keyStart)
public java.util.Set<EventBean> lookupLessEqual(java.lang.Object keyStart)
public java.util.Collection<EventBean> lookupLessEqualColl(java.lang.Object keyStart)
public java.util.Set<EventBean> lookupGreaterEqual(java.lang.Object keyStart)
public java.util.Collection<EventBean> lookupGreaterEqualColl(java.lang.Object keyStart)
public java.util.Set<EventBean> lookupGreater(java.lang.Object keyStart)
public java.util.Collection<EventBean> lookupGreaterColl(java.lang.Object keyStart)
public java.lang.Integer getNumberOfEvents()
EventTable
getNumberOfEvents
in interface EventTable
public int getNumKeys()
EventTable
The number returned can be an estimate and may not be accurate.
getNumKeys
in interface EventTable
public java.lang.Object getIndex()
EventTable
May return null if the information is not readily available, i.e. externally maintained index
getIndex
in interface EventTable
public void add(EventBean theEvent)
EventTable
add
in interface EventTable
theEvent
- to addpublic void remove(EventBean theEvent)
EventTable
remove
in interface EventTable
theEvent
- to removepublic 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 toQueryPlan()
toQueryPlan
in interface EventTable
public EventTableOrganization getOrganization()
getOrganization
in interface EventTable
public java.util.Set<EventBean> lookupConstants(RangeIndexLookupValue lookupValueBase)
|
© 2006-2015 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 |