code: public void initialize(AbstractDetectorStreamProvider provider, DetectorStreamProcessor lastProcessor) {
  
      List<DetectorStreamProcessorFactory> factoryList = provider.getProcessorFactoryList();
      int factoryCount = factoryList.size();
      DetectorStreamBufferImpl buffer = new DetectorStreamBufferImpl(lastProcessor, null, this.byteArrayPool);
      for (int factoryIndex = factoryCount - 1; factoryIndex >= 0; factoryIndex--) {
        DetectorStreamProcessorFactory factory = factoryList.get(factoryIndex);
        DetectorStreamProcessor processor = factory.createProcessor();
        buffer = new DetectorStreamBufferImpl(processor, buffer, this.byteArrayPool);
      }
      this.firstBuffer = buffer;
    }
docs: This method initializes this class. It has to be called to complete the construction.
  
  @param provider is the {@link net.sf.mmm.util.io.api.DetectorStreamProvider} creating this instance.
  @param lastProcessor is the last {@link DetectorStreamProcessor} of the chain (the data-receiver).