class DynamicCompositeByteBuf {

    public short readShortLE() {
        checkReadableBytes0(2);
        ByteBuf first = buffers.peek();
        int firstLen = first.readableBytes();
        if (firstLen >= 2) {
            short res = first.readShortLE();
            readableBytes -= 2;
            if (firstLen == 2) {
                buffers.removeFirst().release();
            }
            return res;
        } else if (order() == ByteOrder.BIG_ENDIAN) {
            return (short) (readByte() & 0xff | (readByte() & 0xff) << 8);
        } else {
            return (short) ((readByte() & 0xff) << 8 | readByte() & 0xff);
        }
    }

    public  DynamicCompositeByteBuf();
    public  DynamicCompositeByteBuf(int capacity);
    public  DynamicCompositeByteBuf(ByteBuf buf);
    public  DynamicCompositeByteBuf(ByteBuf[] bufs, int offset, int len);

}