@Override
public Channel convert(Channel sourceChannel,
Configuration configuration,
Collection<OptimizationContext> optimizationContexts,
CardinalityEstimate optCardinality) {
final ExecutionOperator executionOperator = this.executionOperatorFactory.apply(sourceChannel, configuration);
assert executionOperator.getNumInputs() <= 1 && executionOperator.getNumOutputs() <= 1;
executionOperator.setAuxiliary(true);
final ExecutionTask task = new ExecutionTask(executionOperator, 1, 1);
sourceChannel.addConsumer(task, 0);
final Channel outputChannel = task.initializeOutputChannel(0, configuration);
sourceChannel.addSibling(outputChannel);
setCardinalityAndTimeEstimates(sourceChannel, optimizationContexts, optCardinality, task);
return outputChannel;
}