Class AbstractStreamProcessor<S extends State>
- java.lang.Object
-
- io.siddhi.core.query.processor.stream.AbstractStreamProcessor<S>
-
- Type Parameters:
S- current state of the processor
- All Implemented Interfaces:
Processor,ExternalReferencedHolder
- Direct Known Subclasses:
StreamFunctionProcessor,StreamProcessor,WindowProcessor
public abstract class AbstractStreamProcessor<S extends State> extends Object implements Processor, ExternalReferencedHolder
Abstract implementation ofProcessorintended to be used by any Stream Processors.
-
-
Field Summary
Fields Modifier and Type Field Description protected ExpressionExecutor[]attributeExpressionExecutorsprotected intattributeExpressionLengthprotected ComplexEventPopulatercomplexEventPopulaterprotected io.siddhi.query.api.definition.AbstractDefinitioninputDefinitionprotected MetaStreamEventmetaStreamEventprotected ProcessornextProcessorprotected SiddhiQueryContextsiddhiQueryContextprotected StateHolder<S>stateHolderprotected StreamEventClonerHolderstreamEventClonerHolder
-
Constructor Summary
Constructors Constructor Description AbstractStreamProcessor()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidconstructStreamEventPopulater(MetaStreamEvent metaStreamEvent, int streamEventChainIndex)ProcessorgetNextProcessor()Get next processor element in the processor chain.abstract ProcessingModegetProcessingMode()Defines the behaviour of the processing, will be called after the initabstract List<io.siddhi.query.api.definition.Attribute>getReturnAttributes()protected abstract StateFactory<S>init(MetaStreamEvent metaStreamEvent, io.siddhi.query.api.definition.AbstractDefinition inputDefinition, ExpressionExecutor[] attributeExpressionExecutors, ConfigReader configReader, StreamEventClonerHolder streamEventClonerHolder, boolean outputExpectsExpiredEvents, boolean findToBeExecuted, SiddhiQueryContext siddhiQueryContext)The init method of the StreamProcessor, this method will be called before other methodsvoidinitProcessor(MetaStreamEvent metaStreamEvent, ExpressionExecutor[] attributeExpressionExecutors, ConfigReader configReader, boolean outputExpectsExpiredEvents, boolean findToBeExecuted, boolean groupBy, io.siddhi.query.api.SiddhiElement siddhiElement, SiddhiQueryContext siddhiQueryContext)booleanisStateful()voidprocess(ComplexEventChunk streamEventChunk)Process the handed StreamEventvoidprocess(List<ComplexEventChunk> complexEventChunks)Process the handed StreamEventprotected abstract voidprocessEventChunk(ComplexEventChunk<StreamEvent> streamEventChunk, Processor nextProcessor, StreamEventCloner streamEventCloner, ComplexEventPopulater complexEventPopulater, S state)The main processing method that will be called upon event arrivalvoidsetNextProcessor(Processor processor)Set next processor element in processor chainvoidsetStreamEventCloner(StreamEventCloner streamEventCloner)voidsetToLast(Processor processor)Set as the last element of the processor chain-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.siddhi.core.util.extension.holder.ExternalReferencedHolder
start, stop
-
-
-
-
Field Detail
-
nextProcessor
protected Processor nextProcessor
-
metaStreamEvent
protected MetaStreamEvent metaStreamEvent
-
siddhiQueryContext
protected SiddhiQueryContext siddhiQueryContext
-
streamEventClonerHolder
protected StreamEventClonerHolder streamEventClonerHolder
-
inputDefinition
protected io.siddhi.query.api.definition.AbstractDefinition inputDefinition
-
attributeExpressionExecutors
protected ExpressionExecutor[] attributeExpressionExecutors
-
attributeExpressionLength
protected int attributeExpressionLength
-
complexEventPopulater
protected ComplexEventPopulater complexEventPopulater
-
stateHolder
protected StateHolder<S extends State> stateHolder
-
-
Method Detail
-
initProcessor
public void initProcessor(MetaStreamEvent metaStreamEvent, ExpressionExecutor[] attributeExpressionExecutors, ConfigReader configReader, boolean outputExpectsExpiredEvents, boolean findToBeExecuted, boolean groupBy, io.siddhi.query.api.SiddhiElement siddhiElement, SiddhiQueryContext siddhiQueryContext)
-
init
protected abstract StateFactory<S> init(MetaStreamEvent metaStreamEvent, io.siddhi.query.api.definition.AbstractDefinition inputDefinition, ExpressionExecutor[] attributeExpressionExecutors, ConfigReader configReader, StreamEventClonerHolder streamEventClonerHolder, boolean outputExpectsExpiredEvents, boolean findToBeExecuted, SiddhiQueryContext siddhiQueryContext)
The init method of the StreamProcessor, this method will be called before other methods- Parameters:
metaStreamEvent- the stream event metainputDefinition- the incoming stream definitionattributeExpressionExecutors- the executors of each function parametersconfigReader- this hold theAbstractStreamProcessorextensions configurationstreamEventClonerHolder- stream event cloner holderoutputExpectsExpiredEvents- is expired events sent as outputfindToBeExecuted- find will be executedsiddhiQueryContext- current siddhi query context
-
getReturnAttributes
public abstract List<io.siddhi.query.api.definition.Attribute> getReturnAttributes()
-
process
public void process(ComplexEventChunk streamEventChunk)
Description copied from interface:ProcessorProcess the handed StreamEvent
-
process
public void process(List<ComplexEventChunk> complexEventChunks)
Description copied from interface:ProcessorProcess the handed StreamEvent
-
processEventChunk
protected abstract void processEventChunk(ComplexEventChunk<StreamEvent> streamEventChunk, Processor nextProcessor, StreamEventCloner streamEventCloner, ComplexEventPopulater complexEventPopulater, S state)
The main processing method that will be called upon event arrival- Parameters:
streamEventChunk- the event chunk that need to be processednextProcessor- the next processor to which the success events need to be passedstreamEventCloner- helps to clone the incoming event for local storage or modificationcomplexEventPopulater- helps to populate the events with the resultant attributesstate- current state of the processor
-
getNextProcessor
public Processor getNextProcessor()
Description copied from interface:ProcessorGet next processor element in the processor chain. Processed event should be sent to next processor- Specified by:
getNextProcessorin interfaceProcessor- Returns:
- next processor
-
setNextProcessor
public void setNextProcessor(Processor processor)
Description copied from interface:ProcessorSet next processor element in processor chain- Specified by:
setNextProcessorin interfaceProcessor- Parameters:
processor- Processor to be set as next element of processor chain
-
constructStreamEventPopulater
public void constructStreamEventPopulater(MetaStreamEvent metaStreamEvent, int streamEventChainIndex)
-
setStreamEventCloner
public void setStreamEventCloner(StreamEventCloner streamEventCloner)
-
setToLast
public void setToLast(Processor processor)
Description copied from interface:ProcessorSet as the last element of the processor chain
-
getProcessingMode
public abstract ProcessingMode getProcessingMode()
Defines the behaviour of the processing, will be called after the init- Returns:
- ProcessingMode processing mode of the processor
-
isStateful
public boolean isStateful()
-
-