/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.content; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.List; /** * * @author sihai * */ public class DbAudienceData extends DbSerializer { private static AudienceData deserialize(ByteBuffer bytebuffer) { short word0 = bytebuffer.getShort(); List arraylist = new ArrayList(word0); for(int i = 0; i < word0; i++) arraylist.add(new PersonData(getShortString(bytebuffer), getShortString(bytebuffer), getShortString(bytebuffer), getShortString(bytebuffer))); short word1 = bytebuffer.getShort(); List arraylist1 = new ArrayList(word1); for(int j = 0; j < word1; j++) { String s = getShortString(bytebuffer); String s1 = getShortString(bytebuffer); arraylist1.add(new CircleData(s, bytebuffer.getInt(), s1, bytebuffer.getInt())); } short word2 = bytebuffer.getShort(); List arraylist2 = new ArrayList(word2); for(int k = 0; k < word2; k++) arraylist2.add(new SquareTargetData(getShortString(bytebuffer), getShortString(bytebuffer), getShortString(bytebuffer), getShortString(bytebuffer))); return new AudienceData(arraylist, arraylist1, arraylist2, bytebuffer.getInt()); } public static AudienceData deserialize(byte abyte0[]) { return deserialize(ByteBuffer.wrap(abyte0)); } public static List deserializeList(byte abyte0[]) { ByteBuffer bytebuffer = ByteBuffer.wrap(abyte0); int i = bytebuffer.getInt(); List arraylist = new ArrayList(i); for(int j = 0; j < i; j++) arraylist.add(deserialize(bytebuffer)); return arraylist; } public static byte[] serialize(AudienceData audiencedata) throws IOException { ByteArrayOutputStream bytearrayoutputstream = null; DataOutputStream dataoutputstream = null; try { bytearrayoutputstream = new ByteArrayOutputStream(); dataoutputstream = new DataOutputStream(bytearrayoutputstream); dataoutputstream.writeShort(audiencedata.getUserCount()); PersonData apersondata[] = audiencedata.getUsers(); int i = apersondata.length; for(int j = 0; j < i; j++) { PersonData persondata = apersondata[j]; putShortString(dataoutputstream, persondata.getObfuscatedId()); putShortString(dataoutputstream, persondata.getName()); putShortString(dataoutputstream, persondata.getEmail()); putShortString(dataoutputstream, persondata.getCompressedPhotoUrl()); } dataoutputstream.writeShort(audiencedata.getCircleCount()); CircleData acircledata[] = audiencedata.getCircles(); int k = acircledata.length; for(int l = 0; l < k; l++) { CircleData circledata = acircledata[l]; putShortString(dataoutputstream, circledata.getId()); putShortString(dataoutputstream, circledata.getName()); dataoutputstream.writeInt(circledata.getType()); dataoutputstream.writeInt(circledata.getSize()); } dataoutputstream.writeShort(audiencedata.getSquareTargetCount()); SquareTargetData asquaretargetdata[] = audiencedata.getSquareTargets(); int i1 = asquaretargetdata.length; for(int j1 = 0; j1 < i1; j1++) { SquareTargetData squaretargetdata = asquaretargetdata[j1]; putShortString(dataoutputstream, squaretargetdata.getSquareId()); putShortString(dataoutputstream, squaretargetdata.getSquareName()); putShortString(dataoutputstream, squaretargetdata.getSquareStreamId()); putShortString(dataoutputstream, squaretargetdata.getSquareStreamName()); } dataoutputstream.writeInt(audiencedata.getUserCount() + audiencedata.getHiddenUserCount()); return bytearrayoutputstream.toByteArray(); } finally { if(null != bytearrayoutputstream) { bytearrayoutputstream.close(); } if(null != dataoutputstream) { dataoutputstream.close(); } } } public static byte[] serialize(List arraylist) throws IOException { ByteArrayOutputStream bytearrayoutputstream = null; DataOutputStream dataoutputstream = null; try { bytearrayoutputstream = new ByteArrayOutputStream(); dataoutputstream = new DataOutputStream(bytearrayoutputstream); int i; int j; i = arraylist.size(); dataoutputstream.writeInt(i); for(j = 0; j < i; j++) { dataoutputstream.write(serialize((AudienceData)arraylist.get(j))); } return bytearrayoutputstream.toByteArray(); } finally { if(null != bytearrayoutputstream) { bytearrayoutputstream.close(); } if(null != dataoutputstream) { dataoutputstream.close(); } } } }