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
propertyGetters, streamNum
 
Constructor Summary
PropertyIndexedEventTableUnique(int streamNum, EventPropertyGetter[] propertyGetters, java.lang.String indexName)
           
 
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.
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
getMultiKey
 
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(int streamNum,
                                       EventPropertyGetter[] propertyGetters,
                                       java.lang.String indexName)
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

toQueryPlan

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

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