net.esper.filter
Class IndexTreeBuilder

java.lang.Object
  extended by net.esper.filter.IndexTreeBuilder

public final class IndexTreeBuilder
extends Object

Builder manipulates a tree structure consisting of FilterCallbackSetNode and FilterParamIndex instances. Filters can be added to a top node (an instance of FilterCallbackSetNode) via the add method. This method returns an instance of IndexTreePath which represents the tree path (list of indizes) that the filter callback was added to. To remove filters the same IndexTreePath instance must be passed in.

The implementation is designed to be multithread-safe in conjunction with the node classes manipulated by this class.


Constructor Summary
IndexTreeBuilder()
          Constructor.
 
Method Summary
 IndexTreePath add(FilterValueSet filterValueSet, FilterCallback filterCallback, FilterCallbackSetNode topNode)
          Add a filter callback according to the filter specification to the top node returning information to be used to remove the filter callback.
protected static SortedSet<FilterValueSetParam> copySortParameters(List<FilterValueSetParam> parameters)
          Copy the parameter list - this also sorts the parameter list.
 void remove(FilterCallback filterCallback, IndexTreePath treePathInfo, FilterCallbackSetNode topNode)
          Remove an filterCallback from the given top node.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

IndexTreeBuilder

public IndexTreeBuilder()
Constructor.

Method Detail

add

public final IndexTreePath add(FilterValueSet filterValueSet,
                               FilterCallback filterCallback,
                               FilterCallbackSetNode topNode)
Add a filter callback according to the filter specification to the top node returning information to be used to remove the filter callback.

Parameters:
filterValueSet - is the filter definition
filterCallback - is the callback to be added
topNode - node to be added to any subnode beneath it
Returns:
an encapsulation of information need to allow for safe removal of the filter tree.

remove

public final void remove(FilterCallback filterCallback,
                         IndexTreePath treePathInfo,
                         FilterCallbackSetNode topNode)
Remove an filterCallback from the given top node. The IndexTreePath instance passed in must be the same as obtained when the same filterCallback was added.

Parameters:
filterCallback - filter callback to be removed
treePathInfo - encapsulates information need to allow for safe removal of the filterCallback
topNode - The top tree node beneath which the filterCallback was added

copySortParameters

protected static SortedSet<FilterValueSetParam> copySortParameters(List<FilterValueSetParam> parameters)
Copy the parameter list - this also sorts the parameter list.

Parameters:
parameters - is a list of filter parameters
Returns:
sorted set of filter parameters