class MapProcessor implements Processor<I, O> {

  @Override
  public void processNextInput(final ReadPipe<I> inputPipe, final WritePipe<O> outputPipe) {
    final I value = inputPipe.get();
    if (value != null) {
      outputPipe.put(processor.apply(value));
    }
  }

  public  MapProcessor(final Function<I, O> processor);

}