package org.lucci.madhoc.messaging;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.Serializable;

public class TransferableByteArray extends TransferableObject
{
    private byte[] value;

    public Object clone()
    {

        TransferableByteArray clone = new TransferableByteArray();
        clone.value = this.value;
        return clone;

    }

    public int getSizeInBytes()
    {
        return value != null ? value.length : 0;
    }

    public byte[] getValue()
    {
        return value;
    }

    public void setValue(byte[] value)
    {
        this.value = value;
    }
    
    public static byte[] serialize(Serializable o)
    {
        try
        {
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            ObjectOutputStream oos = new ObjectOutputStream(baos);
            oos.writeObject(o);
            return baos.toByteArray();
        }
        catch (IOException ex)
        {
            ex.printStackTrace();
            throw new IllegalStateException();
        }
    }
}