net.esper.filter
Class FilterParamIndexIn

java.lang.Object
  extended by net.esper.filter.FilterParamIndex
      extended by net.esper.filter.FilterParamIndexIn
All Implemented Interfaces:
EventEvaluator

public final class FilterParamIndexIn
extends FilterParamIndex

Index for filter parameter constants to match using the 'in' operator to match against a supplied set of values (i.e. multiple possible exact matches). The implementation is based on a regular HashMap.


Constructor Summary
FilterParamIndexIn(String propertyName, EventType eventType)
          Constructs the index for multiple-exact matches.
 
Method Summary
 EventEvaluator get(Object filterConstant)
          Get the event evaluation instance associated with the constant.
 ReadWriteLock getReadWriteLock()
          Supplies the lock for protected access.
 void matchEvent(EventBean eventBean, List<FilterCallback> matches)
          Perform the matching of an event based on the event property values, adding any callbacks for matches found to the matches list.
 void put(Object filterConstant, EventEvaluator evaluator)
          Store the event evaluation instance for the given constant.
 boolean remove(Object filterConstant)
          Remove the event evaluation instance for the given constant.
 int size()
          Return the number of distinct filter parameter constants stored.
 
Methods inherited from class net.esper.filter.FilterParamIndex
getFilterOperator, getGetter, getPropertyBoxedType, getPropertyName, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FilterParamIndexIn

public FilterParamIndexIn(String propertyName,
                          EventType eventType)
Constructs the index for multiple-exact matches.

Parameters:
propertyName - is the name of the event property
eventType - describes the event type and is used to obtain a getter instance for the property
Method Detail

get

public final EventEvaluator get(Object filterConstant)
Description copied from class: FilterParamIndex
Get the event evaluation instance associated with the constant. Returns null if no entry found for the constant. The calling class must make sure that access to the underlying resource is protected for multi-threaded access, the getReadWriteLock() method must supply a lock for this purpose.

Specified by:
get in class FilterParamIndex
Parameters:
filterConstant - is the constant supplied in the event filter parameter
Returns:
event evaluator stored for the filter constant, or null if not found

put

public final void put(Object filterConstant,
                      EventEvaluator evaluator)
Description copied from class: FilterParamIndex
Store the event evaluation instance for the given constant. Can override an existing value for the same constant. The calling class must make sure that access to the underlying resource is protected for multi-threaded access, the getReadWriteLock() method must supply a lock for this purpose.

Specified by:
put in class FilterParamIndex
Parameters:
filterConstant - is the constant supplied in the filter parameter
evaluator - to be stored for the constant

remove

public final boolean remove(Object filterConstant)
Description copied from class: FilterParamIndex
Remove the event evaluation instance for the given constant. Returns true if the constant was found, or false if not. The calling class must make sure that access to the underlying resource is protected for multi-threaded writes, the getReadWriteLock() method must supply a lock for this purpose.

Specified by:
remove in class FilterParamIndex
Parameters:
filterConstant - is the value supplied in the filter paremeter
Returns:
true if found and removed, false if not found

size

public final int size()
Description copied from class: FilterParamIndex
Return the number of distinct filter parameter constants stored. The calling class must make sure that access to the underlying resource is protected for multi-threaded writes, the getReadWriteLock() method must supply a lock for this purpose.

Specified by:
size in class FilterParamIndex
Returns:
Number of entries in index

getReadWriteLock

public final ReadWriteLock getReadWriteLock()
Description copied from class: FilterParamIndex
Supplies the lock for protected access.

Specified by:
getReadWriteLock in class FilterParamIndex
Returns:
lock

matchEvent

public final void matchEvent(EventBean eventBean,
                             List<FilterCallback> matches)
Description copied from interface: EventEvaluator
Perform the matching of an event based on the event property values, adding any callbacks for matches found to the matches list.

Parameters:
eventBean - is the event object wrapper to obtain event property values from
matches - accumulates the matching filter callbacks