@Override public void emit(String port, Object value) { if (port == null) { throw new IllegalArgumentException("Port cannot be null."); } RecordInfo record = getPipeRecord(value); for (PipeStage<RecordInfo> outputPortConsumer : outputPortConsumers.get(port)) { outputPortConsumer.consume(record); } }
@Override public void emit(Object value) { RecordInfo record = getPipeRecord(value); for (PipeStage<RecordInfo> outputConsumer : outputConsumers) { outputConsumer.consume(record); } }
public void runOneIteration(IN input) { for (String stageName : startingPoints) { PipeStage<RecordInfo> pipeStage = pipeStages.get(stageName); pipeStage.consume(RecordInfo.builder(input, stageName, RecordType.OUTPUT).build()); } }
@Override public void emitAlert(Map<String, String> payload) { Alert alert = new Alert(stageName, ImmutableMap.copyOf(payload)); RecordInfo<Alert> alertRecord = RecordInfo.builder(alert, stageName, RecordType.ALERT).build(); for (PipeStage<RecordInfo<Alert>> alertConsumer : alertConsumers) { alertConsumer.consume(alertRecord); } }
@Override public void emitError(InvalidEntry<Object> invalidEntry) { if (logWarning && errorConsumers.isEmpty()) { logWarning = false; LOG.warn("Stage {} emits error records, but has no error consumer. Error records will be dropped.", stageName); return; } ErrorRecord<Object> errorRecord = new BasicErrorRecord<>(invalidEntry.getInvalidRecord(), stageName, invalidEntry.getErrorCode(), invalidEntry.getErrorMsg()); RecordInfo<ErrorRecord<Object>> errorRecordInfo = RecordInfo.builder(errorRecord, stageName, RecordType.ERROR).build(); for (PipeStage<RecordInfo<ErrorRecord<Object>>> pipeTransform : errorConsumers) { pipeTransform.consume(errorRecordInfo); } }