com.espertech.esper.epl.join.table
Class PropertyIndexedEventTableUnique

java.lang.Object
  extended by com.espertech.esper.epl.join.table.PropertyIndexedEventTable
      extended by com.espertech.esper.epl.join.table.PropertyIndexedEventTableUnique
All Implemented Interfaces:
EventTable, java.lang.Iterable<EventBean>

public class PropertyIndexedEventTableUnique
extends PropertyIndexedEventTable


Field Summary
protected  java.util.Map<MultiKeyUntyped,EventBean> propertyIndex
           
 
Fields inherited from class com.espertech.esper.epl.join.table.PropertyIndexedEventTable
organization, propertyGetters
 
Constructor Summary
PropertyIndexedEventTableUnique(EventPropertyGetter[] propertyGetters, EventTableOrganization organization)
           
 
Method Summary
 void add(EventBean[] events)
          Add an array of events.
 void addRemove(EventBean[] newData, EventBean[] oldData)
          Remove then add events.
 void clear()
          Clear out index.
 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.
protected static EPException handleUniqueIndexViolation(java.lang.String indexName, java.lang.Object key)
           
 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[] keys)
          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()
           
 
Methods inherited from class com.espertech.esper.epl.join.table.PropertyIndexedEventTable
getIndex, getMultiKey, getNumKeys, getOrganization
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

propertyIndex

protected final java.util.Map<MultiKeyUntyped,EventBean> propertyIndex
Constructor Detail

PropertyIndexedEventTableUnique

public PropertyIndexedEventTableUnique(EventPropertyGetter[] propertyGetters,
                                       EventTableOrganization organization)
Method Detail

addRemove

public void addRemove(EventBean[] newData,
                      EventBean[] oldData)
Remove then add events.

Specified by:
addRemove in interface EventTable
Overrides:
addRemove in class PropertyIndexedEventTable
Parameters:
newData - to add
oldData - to remove

add

public void add(EventBean[] events)
Add an array of events. Same event instance is not added twice. Event properties should be immutable. Allow null passed instead of an empty array.

Specified by:
add in interface EventTable
Overrides:
add in class PropertyIndexedEventTable
Parameters:
events - to add
Throws:
java.lang.IllegalArgumentException - if the event was already existed in the index

remove

public void remove(EventBean[] events)
Remove events.

Specified by:
remove in interface EventTable
Overrides:
remove in class PropertyIndexedEventTable
Parameters:
events - to be removed, can be null instead of an empty array.
Throws:
java.lang.IllegalArgumentException - when the event could not be removed as its not in the index

lookup

public java.util.Set<EventBean> lookup(java.lang.Object[] keys)
Returns the set of events that have the same property value as the given event.

Overrides:
lookup in class PropertyIndexedEventTable
Parameters:
keys - to compare against
Returns:
set of events with property value, or null if none found (never returns zero-sized set)

handleUniqueIndexViolation

protected static EPException handleUniqueIndexViolation(java.lang.String indexName,
                                                        java.lang.Object key)

isEmpty

public boolean isEmpty()
Description copied from interface: EventTable
Returns true if the index is empty, or false if not

Specified by:
isEmpty in interface EventTable
Overrides:
isEmpty in class PropertyIndexedEventTable
Returns:
true for empty index

iterator

public java.util.Iterator<EventBean> iterator()
Description copied from interface: EventTable
Returns an iterator over events in the table.

Specified by:
iterator in interface EventTable
Specified by:
iterator in interface java.lang.Iterable<EventBean>
Overrides:
iterator in class PropertyIndexedEventTable
Returns:
table iterator

clear

public void clear()
Description copied from interface: EventTable
Clear out index.

Specified by:
clear in interface EventTable
Overrides:
clear in class PropertyIndexedEventTable

getNumberOfEvents

public java.lang.Integer getNumberOfEvents()
Description copied from interface: EventTable
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.

Specified by:
getNumberOfEvents in interface EventTable
Overrides:
getNumberOfEvents in class PropertyIndexedEventTable
Returns:
number of events

toQueryPlan

public java.lang.String toQueryPlan()
Specified by:
toQueryPlan in interface EventTable
Overrides:
toQueryPlan in class PropertyIndexedEventTable

© 2006-2014 EsperTech Inc.
All rights reserved.
Visit us at espertech.com