@Test public void testReadStringFromEmptyBuffer() throws CharacterCodingException { CompositeReadableBuffer buffer = new CompositeReadableBuffer(); assertEquals("", buffer.readString(StandardCharsets.UTF_8.newDecoder())); }
@Override public String readString(CharsetDecoder decoder) throws CharacterCodingException { if (!hasRemaining()) { return ""; } CharBuffer decoded = null; if (hasArray()) { decoded = decoder.decode(ByteBuffer.wrap(currentArray, currentOffset, remaining())); } else { decoded = readStringFromComponents(decoder); } return decoded.toString(); }
CompositeReadableBuffer implements ReadableBuffer { @Override public String readString(CharsetDecoder decoder) throws CharacterCodingException { if (!hasRemaining()) { return ""; } CharBuffer decoded = null; if (hasArray()) { decoded = decoder.decode(ByteBuffer.wrap(currentArray, currentOffset, remaining())); } else { decoded = readStringFromComponents(decoder); } return decoded.toString(); } }
CompositeReadableBuffer implements ReadableBuffer { @Override public String readString(CharsetDecoder decoder) throws CharacterCodingException { if (!hasRemaining()) { return ""; } CharBuffer decoded = null; if (hasArray()) { decoded = decoder.decode(ByteBuffer.wrap(currentArray, currentOffset, remaining())); } else { decoded = readStringFromComponents(decoder); } return decoded.toString(); } CompositeReadableBuffer(); private  CompositeReadableBuffer(byte[] array, int offset); private  CompositeReadableBuffer(boolean compactable); }
CompositeReadableBuffer implements ReadableBuffer { @Override public String readString(CharsetDecoder decoder) throws CharacterCodingException { if (!hasRemaining()) { return ""; } CharBuffer decoded = null; if (hasArray()) { decoded = decoder.decode(ByteBuffer.wrap(currentArray, currentOffset, remaining())); } else { decoded = readStringFromComponents(decoder); } return decoded.toString(); } CompositeReadableBuffer(); private  CompositeReadableBuffer(byte[] array, int offset); private  CompositeReadableBuffer(boolean compactable); List<byte[]> getArrays(); int getCurrentIndex(); int getCurrentArrayPosition(); @Override boolean hasArray(); @Override int capacity(); @Override byte[] array(); @Override int arrayOffset(); @Override byte get(); @Override byte get(int index); @Override int getInt(); @Override long getLong(); @Override short getShort(); @Override float getFloat(); @Override double getDouble(); @Override CompositeReadableBuffer get(byte[] data); @Override CompositeReadableBuffer get(byte[] data, int offset, int length); @Override CompositeReadableBuffer get(WritableBuffer target); @Override CompositeReadableBuffer position(int position); @Override int position(); @Override CompositeReadableBuffer slice(); @Override CompositeReadableBuffer flip(); @Override CompositeReadableBuffer limit(int limit); @Override int limit(); @Override CompositeReadableBuffer mark(); @Override CompositeReadableBuffer reset(); @Override CompositeReadableBuffer rewind(); @Override CompositeReadableBuffer clear(); @Override int remaining(); @Override boolean hasRemaining(); @Override CompositeReadableBuffer duplicate(); @Override ByteBuffer byteBuffer(); @Override String readUTF8(); @Override String readString(CharsetDecoder decoder); @Override CompositeReadableBuffer reclaimRead(); CompositeReadableBuffer append(byte[] array); CompositeReadableBuffer append(CompositeReadableBuffer buffer); CompositeReadableBuffer append(ReadableBuffer buffer); @Override int hashCode(); @Override boolean equals(Object other); @Override String toString(); }
CompositeReadableBuffer implements ReadableBuffer { @Override public String readString(CharsetDecoder decoder) throws CharacterCodingException { if (!hasRemaining()) { return ""; } CharBuffer decoded = null; if (hasArray()) { decoded = decoder.decode(ByteBuffer.wrap(currentArray, currentOffset, remaining())); } else { decoded = readStringFromComponents(decoder); } return decoded.toString(); } CompositeReadableBuffer(); private  CompositeReadableBuffer(byte[] array, int offset); private  CompositeReadableBuffer(boolean compactable); List<byte[]> getArrays(); int getCurrentIndex(); int getCurrentArrayPosition(); @Override boolean hasArray(); @Override int capacity(); @Override byte[] array(); @Override int arrayOffset(); @Override byte get(); @Override byte get(int index); @Override int getInt(); @Override long getLong(); @Override short getShort(); @Override float getFloat(); @Override double getDouble(); @Override CompositeReadableBuffer get(byte[] data); @Override CompositeReadableBuffer get(byte[] data, int offset, int length); @Override CompositeReadableBuffer get(WritableBuffer target); @Override CompositeReadableBuffer position(int position); @Override int position(); @Override CompositeReadableBuffer slice(); @Override CompositeReadableBuffer flip(); @Override CompositeReadableBuffer limit(int limit); @Override int limit(); @Override CompositeReadableBuffer mark(); @Override CompositeReadableBuffer reset(); @Override CompositeReadableBuffer rewind(); @Override CompositeReadableBuffer clear(); @Override int remaining(); @Override boolean hasRemaining(); @Override CompositeReadableBuffer duplicate(); @Override ByteBuffer byteBuffer(); @Override String readUTF8(); @Override String readString(CharsetDecoder decoder); @Override CompositeReadableBuffer reclaimRead(); CompositeReadableBuffer append(byte[] array); CompositeReadableBuffer append(CompositeReadableBuffer buffer); CompositeReadableBuffer append(ReadableBuffer buffer); @Override int hashCode(); @Override boolean equals(Object other); @Override String toString();  }