Java ByteBuffer Get getListFromByteBuffer(ByteBuffer data, List classes)

Here you can find the source of getListFromByteBuffer(ByteBuffer data, List classes)

Description

list from ByteBuffer

License

Apache License

Parameter

Parameter Description
data a parameter
classes a parameter

Exception

Parameter Description
IOException an exception

Declaration

public static List<Object> getListFromByteBuffer(ByteBuffer data, List<Class> classes) throws IOException 

Method Source Code


//package com.java2s;
/*/*from   ww  w.ja v a2 s  .c  o m*/
 * Agiato: A simple no frill Cassandra API
 * Author: Pranab Ghosh
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you
 * may not use this file except in compliance with the License. You may
 * obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0 
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
 * implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */

import java.io.ByteArrayInputStream;

import java.io.DataInputStream;

import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.ArrayList;

import java.util.List;

public class Main {
    /**
     * list from ByteBuffer
     * @param data
     * @param classes
     * @return
     * @throws IOException
     */
    public static List<Object> getListFromByteBuffer(ByteBuffer data, List<Class> classes) throws IOException {
        return getListFromBytes(data.array(), classes);
    }

    /**
     * list from byte array
     * @param data
     * @param classes
     * @return
     * @throws IOException
     */
    public static List<Object> getListFromBytes(byte[] data, List<Class> classes) throws IOException {
        List<Object> values = new ArrayList<Object>();
        ByteArrayInputStream bis = new ByteArrayInputStream(data);
        DataInputStream dis = new DataInputStream(bis);
        for (Class cl : classes) {
            Object value = null;
            if (cl == String.class)
                value = dis.readUTF();
            else if (cl == Long.class)
                value = dis.readLong();
            else if (cl == Integer.class)
                value = dis.readInt();
            else if (cl == Double.class)
                value = dis.readDouble();

            if (null != value)
                values.add(value);
        }
        dis.close();
        return values;
    }
}

Related

  1. getIPv4String(ByteBuffer buffer)
  2. getJagexString(ByteBuffer buf)
  3. getJceBufArray(ByteBuffer buffer)
  4. getLength(ByteBuffer buffer)
  5. getLengthFromBuffer(ByteBuffer in)
  6. getLTriad(ByteBuffer bb)
  7. getMean(ByteBuffer simulationResults)
  8. getMedium(ByteBuffer buffer)
  9. getMediumInt(ByteBuffer buffer)