public BufferedSeekableSource(SeekableSource wrapped) {
   super(
       ofNullable(wrapped)
           .map(SeekableSource::id)
           .orElseThrow(
               () -> {
                 return new IllegalArgumentException(
                     "Input decorated SeekableSource cannot be null");
               }));
   this.wrapped = wrapped;
   this.size = wrapped.size();
   this.buffer.limit(0);
 }