Class JoinSetComposerImpl
java.lang.Object
com.espertech.esper.common.internal.epl.join.base.JoinSetComposerImpl
- All Implemented Interfaces:
JoinSetComposer
- Direct Known Subclasses:
JoinSetComposerFAFImpl
Implements the function to determine a join result set using tables/indexes and query strategy
instances for each stream.
-
Field Summary
Modifier and TypeFieldDescriptionprotected Set<MultiKeyArrayOfKeys<EventBean>>
protected Set<MultiKeyArrayOfKeys<EventBean>>
protected final QueryStrategy[]
protected final EventTable[][]
-
Constructor Summary
ConstructorDescriptionJoinSetComposerImpl
(boolean allowInitIndex, Map<TableLookupIndexReqKey, EventTable>[] repositories, QueryStrategy[] queryStrategies, boolean isPureSelfJoin, ExprEvaluatorContext exprEvaluatorContext, boolean joinRemoveStream) -
Method Summary
Modifier and TypeMethodDescriptionvoid
accept
(EventTableVisitor visitor) boolean
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[]
Returns query strategies.protected EventTable[][]
Returns tables.void
init
(EventBean[][] eventsPerStream, ExprEvaluatorContext exprEvaluatorContext) Provides initialization events per stream to composer to populate join indexes, if requiredjoin
(EventBean[][] newDataPerStream, EventBean[][] oldDataPerStream, ExprEvaluatorContext exprEvaluatorContext) Return join tuple result set from new data and old data for each stream.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.
-
Field Details
-
repositories
-
queryStrategies
-
oldResults
-
newResults
-
-
Constructor Details
-
JoinSetComposerImpl
public JoinSetComposerImpl(boolean allowInitIndex, Map<TableLookupIndexReqKey, EventTable>[] repositories, QueryStrategy[] queryStrategies, boolean isPureSelfJoin, ExprEvaluatorContext exprEvaluatorContext, boolean joinRemoveStream)
-
-
Method Details
-
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 interfaceJoinSetComposer
- Returns:
- whether init is supported
-
init
Description copied from interface:JoinSetComposer
Provides initialization events per stream to composer to populate join indexes, if required- Specified by:
init
in interfaceJoinSetComposer
- Parameters:
eventsPerStream
- is an array of events for each stream, with null elements to indicate no events for a streamexprEvaluatorContext
- evaluator context
-
destroy
public void destroy()Description copied from interface:JoinSetComposer
Destroy stateful index tables, if any.- Specified by:
destroy
in interfaceJoinSetComposer
-
join
public UniformPair<Set<MultiKeyArrayOfKeys<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 interfaceJoinSetComposer
- 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
Returns tables.- Returns:
- tables for stream.
-
getQueryStrategies
Returns query strategies.- Returns:
- query strategies
-
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 interfaceJoinSetComposer
- Returns:
- static join result
-
accept
- Specified by:
accept
in interfaceJoinSetComposer
-