SI - DI - public abstract class ControlMessageInjector<SI,DI> extends Object implements Closeable, RecordStreamProcessor<SI,SI,DI,DI>
RecordStreamProcessor that inspects an input record and outputs control messages before, after, or around
the input recordRecordStreamProcessor.StreamProcessingException| Constructor and Description |
|---|
ControlMessageInjector() |
| Modifier and Type | Method and Description |
|---|---|
void |
close() |
protected ControlMessageHandler |
getMessageHandler() |
protected ControlMessageInjector<SI,DI> |
init(WorkUnitState workUnitState)
Initialize this
ControlMessageInjector. |
protected abstract Iterable<ControlMessage<DI>> |
injectControlMessagesAfter(RecordEnvelope<DI> inputRecordEnvelope,
WorkUnitState workUnitState)
Inject
ControlMessages after the record |
protected abstract Iterable<ControlMessage<DI>> |
injectControlMessagesBefore(RecordEnvelope<DI> inputRecordEnvelope,
WorkUnitState workUnitState)
Inject
ControlMessages before the record |
RecordStreamWithMetadata<DI,SI> |
processStream(RecordStreamWithMetadata<DI,SI> inputStream,
WorkUnitState workUnitState)
Apply injections to the input
RecordStreamWithMetadata. |
protected void |
setInputGlobalMetadata(GlobalMetadata<SI> inputGlobalMetadata,
WorkUnitState workUnitState)
Set the global metadata of the input messages.
|
protected ControlMessageInjector<SI,DI> init(WorkUnitState workUnitState)
ControlMessageInjector.workUnitState - a WorkUnitState object carrying configuration propertiesControlMessageInjector instancepublic void close()
throws IOException
close in interface Closeableclose in interface AutoCloseableIOExceptionprotected void setInputGlobalMetadata(GlobalMetadata<SI> inputGlobalMetadata, WorkUnitState workUnitState)
GlobalMetadatainputGlobalMetadata - the global metadata for input messagesworkUnitState - protected abstract Iterable<ControlMessage<DI>> injectControlMessagesBefore(RecordEnvelope<DI> inputRecordEnvelope, WorkUnitState workUnitState)
ControlMessages before the recordinputRecordEnvelope - workUnitState - ControlMessages to inject before the recordprotected abstract Iterable<ControlMessage<DI>> injectControlMessagesAfter(RecordEnvelope<DI> inputRecordEnvelope, WorkUnitState workUnitState)
ControlMessages after the recordinputRecordEnvelope - workUnitState - ControlMessages to inject after the recordpublic RecordStreamWithMetadata<DI,SI> processStream(RecordStreamWithMetadata<DI,SI> inputStream, WorkUnitState workUnitState) throws RecordStreamProcessor.StreamProcessingException
RecordStreamWithMetadata.
ControlMessages may be injected before, after, or around the input record.
A MetadataUpdateControlMessage will update the current input GlobalMetadata and pass the
updated input GlobalMetadata to the next processor to propagate the metadata update down the pipeline.processStream in interface RecordStreamProcessor<SI,SI,DI,DI>RecordStreamProcessor.StreamProcessingExceptionprotected ControlMessageHandler getMessageHandler()
ControlMessageHandler to call for each ControlMessage received.