package com.bagri.client.hazelcast.serialize.model;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import com.bagri.client.hazelcast.serialize.DataSerializationFactoryImpl;
import com.bagri.core.model.UniqueDocument;
import com.bagri.core.model.UniqueValue;
import com.hazelcast.nio.ObjectDataInput;
import com.hazelcast.nio.ObjectDataOutput;
import com.hazelcast.nio.serialization.StreamSerializer;
public class UniqueDocumentSerializer implements StreamSerializer<UniqueDocument> {
@Override
public void destroy() {
}
@Override
public int getTypeId() {
return DataSerializationFactoryImpl.cli_XDMUniqueDocument;
}
@Override
public UniqueDocument read(ObjectDataInput in) throws IOException {
UniqueDocument xIndex = new UniqueDocument();
int size = in.readInt();
List<UniqueValue> vals = new ArrayList<>(size);
for (int i=0; i < size; i++) {
UniqueValue val = in.readObject();
vals.add(val);
}
xIndex.setDocumentValues(vals);
return xIndex;
}
@Override
public void write(ObjectDataOutput out, UniqueDocument xIndex) throws IOException {
Collection<UniqueValue> vals = xIndex.getDocumentValues();
out.writeInt(vals.size());
for (UniqueValue val: vals) {
out.writeObject(val);
}
}
}