mirror of
https://github.com/msgpack/msgpack-c.git
synced 2025-04-16 06:56:39 +02:00
69 lines
1.6 KiB
Java
69 lines
1.6 KiB
Java
package serializers.msgpack;
|
|
|
|
import java.io.*;
|
|
import java.util.*;
|
|
import org.msgpack.*;
|
|
import serializers.ObjectSerializer;
|
|
|
|
public class MessagePackDynamicSerializer implements ObjectSerializer<Object>
|
|
{
|
|
public String getName() {
|
|
return "msgpack-dynamic";
|
|
}
|
|
|
|
public Object create() throws Exception {
|
|
ArrayList media = new ArrayList(11);
|
|
media.add("http://javaone.com/keynote.mpg");
|
|
media.add("video/mpg4");
|
|
media.add("Javaone Keynote");
|
|
media.add(1234567L);
|
|
media.add(0);
|
|
ArrayList<String> person = new ArrayList<String>(2);
|
|
person.add("Bill Gates");
|
|
person.add("Steve Jobs");
|
|
media.add(person);
|
|
media.add(0);
|
|
media.add(0);
|
|
media.add(0);
|
|
media.add(123L);
|
|
media.add("");
|
|
|
|
ArrayList image1 = new ArrayList(5);
|
|
image1.add("http://javaone.com/keynote_large.jpg");
|
|
image1.add(0);
|
|
image1.add(0);
|
|
image1.add(2);
|
|
image1.add("Javaone Keynote");
|
|
|
|
ArrayList image2 = new ArrayList(5);
|
|
image2.add("http://javaone.com/keynote_thumbnail.jpg");
|
|
image2.add(0);
|
|
image2.add(0);
|
|
image2.add(1);
|
|
image2.add("Javaone Keynote");
|
|
|
|
ArrayList content = new ArrayList(2);
|
|
content.add(media);
|
|
ArrayList<Object> images = new ArrayList<Object>(2);
|
|
images.add(image1);
|
|
images.add(image2);
|
|
content.add(images);
|
|
|
|
return content;
|
|
}
|
|
|
|
public byte[] serialize(Object content) throws Exception {
|
|
ByteArrayOutputStream os = new ByteArrayOutputStream();
|
|
Packer pk = new Packer(os);
|
|
pk.pack(content);
|
|
return os.toByteArray();
|
|
}
|
|
|
|
public Object deserialize(byte[] array) throws Exception {
|
|
UnbufferedUnpacker pac = new UnbufferedUnpacker();
|
|
pac.execute(array);
|
|
return (Object)pac.getData();
|
|
}
|
|
}
|
|
|