code: public final T readBuffer(byte[] buffer) {
          if (buffer == null) {
              throw new InvalidArgument("buffer", buffer);
          } else if (buffer.length != recordSize) {
              final String fmt = "invalid buffer (%d bytes, expected %d)";
              final String msg = format(fmt, buffer.length, recordSize);
              throw new InvalidArgument(msg);
          }
          return read(buffer);
      }
docs: Reads {@code <T>} from a byte buffer.
  
  @param buffer {@code byte[]}; of size {@link #getRecordSize()}
  @return {@code <T>}
  @throws InvalidArgument Thrown if {@code buffer} is null or invalid