package io.izenecloud.msgpack; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; import org.msgpack.annotation.Message; @Message public class AdClusteringsInfo { private List<SparseVector> infos; public Iterator<SparseVector> iterator() { return infos.iterator(); } public int size() { return infos.size(); } public void write(DataOutputStream out) throws IOException { ObjectOutputStream oos = new ObjectOutputStream(out); synchronized (this) { oos.writeInt(infos.size()); Iterator<SparseVector> iterator = infos.iterator(); while (iterator.hasNext()) { SparseVector sv = iterator.next(); oos.writeObject(sv.index); oos.writeObject(sv.value); } } oos.close(); } public static AdClusteringsInfo read(DataInputStream in) throws IOException, ClassNotFoundException { ObjectInputStream ois = new ObjectInputStream(in); AdClusteringsInfo clustering = new AdClusteringsInfo(); int size = ois.readInt(); clustering.infos = new ArrayList<SparseVector>(size); for (int i = 0; i < size; i++) { SparseVector sv = new SparseVector(); sv.index = (List<Integer>) ois.readObject(); sv.value = (List<Float>) ois.readObject(); } return clustering; } }