My favorites | Sign in
Project Home Wiki Issues Source
Checkout   Browse   Changes    
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package serializers;

import serializers.protobuf.MediaContentHolder;

import java.io.IOException;
import java.nio.charset.Charset;

import com.google.protobuf.JsonFormat;

public class ProtobufJsonSerializer implements ObjectSerializer<MediaContentHolder.MediaContent>
{
private final Charset _charset = Charset.forName("UTF-8");

public MediaContentHolder.MediaContent deserialize (byte[] array) throws Exception
{
MediaContentHolder.MediaContent.Builder builder = MediaContentHolder.MediaContent.newBuilder();
JsonFormat.merge(new String(array, _charset.name()), builder);
return builder.build();
}

public byte[] serialize(MediaContentHolder.MediaContent content) throws IOException
{
return JsonFormat.printToString(content).getBytes(_charset.name());
}

public MediaContentHolder.MediaContent create()
{
MediaContentHolder.MediaContent content = MediaContentHolder.MediaContent.newBuilder().
setMedia(
MediaContentHolder.Media.newBuilder().setUri("http://javaone.com/keynote.mpg").setFormat("video/mpg4").setTitle("Javaone Keynote").setDuration(1234567).
setBitrate(123).addPerson("Bill Gates").addPerson("Steve Jobs").setPlayer(MediaContentHolder.Media.Player.JAVA).build()).
addImage(
MediaContentHolder.Image.newBuilder().setUri("http://javaone.com/keynote_large.jpg").setSize(MediaContentHolder.Image.Size.LARGE).setTitle("Javaone Keynote").build()).
addImage(
MediaContentHolder.Image.newBuilder().setUri("http://javaone.com/keynote_thumbnail.jpg").setSize(MediaContentHolder.Image.Size.SMALL).setTitle("Javaone Keynote").build()).
build();
return content;
}

public String getName ()
{
return "protobuf-json";
}
}

Change log

r126 by bl...@orcaware.com on Jan 24, 2010   Diff
Use svn_apply_autoprops to apply a
standard set of Subversion properties to
all files.  The 'svn:eol-style' is set to
'native' and 'svn:keywords' is set
to 'HeadURL Id LastChangedBy
LastChangedDate LastChangedRevision'.
Go to: 

Older revisions

r78 by eishay on Aug 10, 2009   Diff
adding protobuf json serializer
All revisions of this file

File info

Size: 1722 bytes, 44 lines

File properties

svn:eol-style
native
svn:keywords
HeadURL Id LastChangedBy LastChangedD...Revision
Powered by Google Project Hosting