com.espertech.esper.epl.join.base
Class JoinSetComposerImpl

java.lang.Object
  extended by com.espertech.esper.epl.join.base.JoinSetComposerImpl
All Implemented Interfaces:
JoinSetComposer
Direct Known Subclasses:
JoinSetComposerFAFImpl

public class JoinSetComposerImpl
extends java.lang.Object
implements JoinSetComposer

Implements the function to determine a join result set using tables/indexes and query strategy instances for each stream.


Field Summary
protected  java.util.Set<MultiKey<EventBean>> newResults
           
protected  java.util.Set<MultiKey<EventBean>> oldResults
           
protected  QueryStrategy[] queryStrategies
           
protected  EventTable[][] repositories
           
 
Constructor Summary
JoinSetComposerImpl(boolean allowInitIndex, java.util.Map<TableLookupIndexReqKey,EventTable>[] repositories, QueryStrategy[] queryStrategies, boolean isPureSelfJoin, ExprEvaluatorContext exprEvaluatorContext, boolean joinRemoveStream)
          Ctor.
 
Method Summary
 boolean allowsInit()
          Returns true whether initialization events per stream to populate join indexes can be processed (init method).
 void destroy()
          Destroy stateful index tables, if any.
protected  QueryStrategy[] getQueryStrategies()
          Returns query strategies.
protected  EventTable[][] getTables()
          Returns tables.
 void init(EventBean[][] eventsPerStream)
          Provides initialization events per stream to composer to populate join indexes, if required
 UniformPair<java.util.Set<MultiKey<EventBean>>> join(EventBean[][] newDataPerStream, EventBean[][] oldDataPerStream, ExprEvaluatorContext exprEvaluatorContext)
          Return join tuple result set from new data and old data for each stream.
 java.util.Set<MultiKey<EventBean>> staticJoin()
          For use in iteration over join statements, this must build a join tuple result set from all events in indexes, executing query strategies for each.
 void visitIndexes(StatementAgentInstancePostLoadIndexVisitor visitor)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

repositories

protected final EventTable[][] repositories

queryStrategies

protected final QueryStrategy[] queryStrategies

oldResults

protected java.util.Set<MultiKey<EventBean>> oldResults

newResults

protected java.util.Set<MultiKey<EventBean>> newResults
Constructor Detail

JoinSetComposerImpl

public JoinSetComposerImpl(boolean allowInitIndex,
                           java.util.Map<TableLookupIndexReqKey,EventTable>[] repositories,
                           QueryStrategy[] queryStrategies,
                           boolean isPureSelfJoin,
                           ExprEvaluatorContext exprEvaluatorContext,
                           boolean joinRemoveStream)
Ctor.

Parameters:
repositories - - for each stream an array of (indexed/unindexed) tables for lookup.
queryStrategies - - for each stream a strategy to execute the join
isPureSelfJoin - - for self-join only
exprEvaluatorContext - expression evaluation context
Method Detail

allowsInit

public boolean allowsInit()
Description copied from interface: JoinSetComposer
Returns true whether initialization events per stream to populate join indexes can be processed (init method).

Specified by:
allowsInit in interface JoinSetComposer

init

public void init(EventBean[][] eventsPerStream)
Description copied from interface: JoinSetComposer
Provides initialization events per stream to composer to populate join indexes, if required

Specified by:
init in interface JoinSetComposer
Parameters:
eventsPerStream - is an array of events for each stream, with null elements to indicate no events for a stream

destroy

public void destroy()
Description copied from interface: JoinSetComposer
Destroy stateful index tables, if any.

Specified by:
destroy in interface JoinSetComposer

join

public UniformPair<java.util.Set<MultiKey<EventBean>>> join(EventBean[][] newDataPerStream,
                                                            EventBean[][] oldDataPerStream,
                                                            ExprEvaluatorContext exprEvaluatorContext)
Description copied from interface: JoinSetComposer
Return join tuple result set from new data and old data for each stream.

Specified by:
join in interface JoinSetComposer
Parameters:
newDataPerStream - - for each stream the event array (can be null).
oldDataPerStream - - for each stream the event array (can be null).
exprEvaluatorContext - expression evaluation context
Returns:
join tuples

getTables

protected EventTable[][] getTables()
Returns tables.

Returns:
tables for stream.

getQueryStrategies

protected QueryStrategy[] getQueryStrategies()
Returns query strategies.

Returns:
query strategies

staticJoin

public java.util.Set<MultiKey<EventBean>> staticJoin()
Description copied from interface: JoinSetComposer
For use in iteration over join statements, this must build a join tuple result set from all events in indexes, executing query strategies for each.

Specified by:
staticJoin in interface JoinSetComposer
Returns:
static join result

visitIndexes

public void visitIndexes(StatementAgentInstancePostLoadIndexVisitor visitor)
Specified by:
visitIndexes in interface JoinSetComposer

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