package com.bagri.client.hazelcast.serialize.model; import java.io.IOException; import java.util.ArrayList; import java.util.List; import com.bagri.client.hazelcast.serialize.DataSerializationFactoryImpl; import com.bagri.core.model.IndexedDocument; import com.bagri.support.util.CollectionUtils; import com.hazelcast.nio.ObjectDataInput; import com.hazelcast.nio.ObjectDataOutput; import com.hazelcast.nio.serialization.StreamSerializer; public class IndexedDocumentSerializer implements StreamSerializer<IndexedDocument> { @Override public void destroy() { } @Override public int getTypeId() { return DataSerializationFactoryImpl.cli_XDMIndexedDocument; } @Override public IndexedDocument read(ObjectDataInput in) throws IOException { long[] ids = in.readLongArray(); List<Long> docIds = new ArrayList<Long>(ids.length); for (long docId: ids) { docIds.add(docId); } return new IndexedDocument(docIds); } @Override public void write(ObjectDataOutput out, IndexedDocument xIndex) throws IOException { long[] ids = CollectionUtils.toLongArray(xIndex.getDocumentKeys()); out.writeLongArray(ids); } }