/** * 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.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; import com.galaxy.meetup.server.client.domain.DataAction; import com.galaxy.meetup.server.client.domain.DataActor; import com.galaxy.meetup.server.client.domain.DataItem; /** * * @author sihai * */ public class DbDataAction extends DbSerializer { public static List deserializeDataActionList(byte abyte0[]) { Object obj; if (abyte0 == null) { obj = null; } else { ByteBuffer bytebuffer = ByteBuffer.wrap(abyte0); obj = new ArrayList(); int i = bytebuffer.getInt(); int j = 0; while (j < i) { ((List) (obj)).add(getDataAction(bytebuffer)); j++; } } return ((List) (obj)); } public static List deserializeDataActorList(byte abyte0[]) { Object obj; if (abyte0 == null) { obj = null; } else { ByteBuffer bytebuffer = ByteBuffer.wrap(abyte0); obj = new ArrayList(); int i = bytebuffer.getInt(); int j = 0; while (j < i) { ((List) (obj)).add(getDataActor(bytebuffer)); j++; } } return ((List) (obj)); } private static DataAction getDataAction(ByteBuffer bytebuffer) { DataAction dataaction = new DataAction(); dataaction.type = getShortString(bytebuffer); List<DataItem> arraylist = new ArrayList<DataItem>(); int i = bytebuffer.getInt(); for (int j = 0; j < i; j++) { DataItem dataitem = new DataItem(); dataitem.id = getShortString(bytebuffer); dataitem.notificationType = getShortString(bytebuffer); dataitem.actor = getDataActor(bytebuffer); arraylist.add(dataitem); } dataaction.item = arraylist; return dataaction; } private static DataActor getDataActor(ByteBuffer bytebuffer) { DataActor dataactor = new DataActor(); dataactor.gender = getShortString(bytebuffer); dataactor.name = getShortString(bytebuffer); dataactor.obfuscatedGaiaId = getShortString(bytebuffer); dataactor.photoUrl = getShortString(bytebuffer); dataactor.profileType = getShortString(bytebuffer); dataactor.profileUrl = getShortString(bytebuffer); return dataactor; } public static List<DataActor> getDataActorList(List<DataAction> list) { Set<String> hashset = new HashSet<String>(); List<DataActor> arraylist = new ArrayList<DataActor>(); if (list != null && !list.isEmpty()) { Iterator<DataAction> iterator = list.iterator(); while (iterator.hasNext()) { DataAction dataaction = iterator.next(); if (dataaction != null && dataaction.item != null) { Iterator<DataItem> iterator1 = dataaction.item.iterator(); while (iterator1.hasNext()) { DataItem dataitem = iterator1.next(); if (dataitem != null && dataitem.actor != null) { DataActor dataactor = dataitem.actor; String s = dataactor.obfuscatedGaiaId; if (!hashset.contains(s)) { arraylist.add(dataactor); hashset.add(s); } } } } } } return arraylist; } private static void putDataAction(DataOutputStream dataoutputstream, DataAction dataaction) throws IOException { putShortString(dataoutputstream, dataaction.type); List list = dataaction.item; if(list == null) { dataoutputstream.writeInt(0); } else { dataoutputstream.writeInt(list.size()); Iterator iterator = list.iterator(); while(iterator.hasNext()) { DataItem dataitem = (DataItem)iterator.next(); putShortString(dataoutputstream, dataitem.id); putShortString(dataoutputstream, dataitem.notificationType); putDataActor(dataoutputstream, dataitem.actor); } } } private static void putDataActor(DataOutputStream dataoutputstream, DataActor dataactor) throws IOException { putShortString(dataoutputstream, dataactor.gender); putShortString(dataoutputstream, dataactor.name); putShortString(dataoutputstream, dataactor.obfuscatedGaiaId); putShortString(dataoutputstream, dataactor.photoUrl); putShortString(dataoutputstream, dataactor.profileType); putShortString(dataoutputstream, dataactor.profileUrl); } public static byte[] serializeDataActionList(List list) throws IOException { ByteArrayOutputStream bytearrayoutputstream = new ByteArrayOutputStream(); DataOutputStream dataoutputstream = new DataOutputStream(bytearrayoutputstream); byte abyte0[]; if(list == null) { abyte0 = null; } else { dataoutputstream.writeInt(list.size()); for(Iterator iterator = list.iterator(); iterator.hasNext(); putDataAction(dataoutputstream, (DataAction)iterator.next())); abyte0 = bytearrayoutputstream.toByteArray(); dataoutputstream.close(); } return abyte0; } public static byte[] serializeDataActorList(List list) throws IOException { ByteArrayOutputStream bytearrayoutputstream = new ByteArrayOutputStream(); DataOutputStream dataoutputstream = new DataOutputStream(bytearrayoutputstream); byte abyte0[]; if(list == null) { abyte0 = null; } else { dataoutputstream.writeInt(list.size()); for(Iterator iterator = list.iterator(); iterator.hasNext(); putDataActor(dataoutputstream, (DataActor)iterator.next())); abyte0 = bytearrayoutputstream.toByteArray(); dataoutputstream.close(); } return abyte0; } }