Java ByteBuffer Decode decodeStringSequence(ByteBuffer bb)

Here you can find the source of decodeStringSequence(ByteBuffer bb)

Description

decode String Sequence

License

Open Source License

Declaration

protected static List<String> decodeStringSequence(ByteBuffer bb) 

Method Source Code

//package com.java2s;
/* Copyright (c) 2014 Reinhard Pointner, All Rights Reserved
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *//*ww  w.  ja va2 s  . co  m*/

import java.nio.ByteBuffer;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;

public class Main {
    protected static List<String> decodeStringSequence(ByteBuffer bb) {
        List<String> names = new ArrayList<String>();

        bb.mark(); // first key starts from here
        while (bb.hasRemaining()) {
            if (bb.get() == 0) {
                ByteBuffer nameBuffer = (ByteBuffer) bb.duplicate()
                        .limit(bb.position() - 1).reset();
                if (nameBuffer.hasRemaining()) {
                    names.add(decodeString(nameBuffer));
                }
                bb.mark(); // next key starts from here
            }
        }

        return names;
    }

    protected static String decodeString(ByteBuffer bb) {
        return Charset.forName("UTF-8").decode(bb).toString();
    }
}

Related

  1. decodeLength(ByteBuffer buf)
  2. decodeLong(ByteBuffer buffer, int start)
  3. decodeNIO(String encoding, ByteBuffer bbuf)
  4. decodeNumber(byte firstByte, ByteBuffer buffer)
  5. decodeStoredBits(ByteBuffer bb)
  6. decodeThrowing(Charset charset, ByteBuffer in)
  7. decodeTime(byte firstByte, ByteBuffer buffer)
  8. decodeTimeWithoutSign(byte firstByte, ByteBuffer buffer)
  9. decodeToString(ByteBuffer shaderInfoLogBuffer, IntBuffer size)