package com.bagri.client.hazelcast.serialize.model; import java.io.IOException; import com.bagri.client.hazelcast.serialize.DataSerializationFactoryImpl; import com.bagri.core.api.TransactionIsolation; import com.bagri.core.api.TransactionState; import com.bagri.core.model.Transaction; import com.hazelcast.nio.ObjectDataInput; import com.hazelcast.nio.ObjectDataOutput; import com.hazelcast.nio.serialization.StreamSerializer; public class TransactionSerializer implements StreamSerializer<Transaction> { @Override public void destroy() { } @Override public int getTypeId() { return DataSerializationFactoryImpl.cli_XDMTransaction; } @Override public Transaction read(ObjectDataInput in) throws IOException { Transaction xTrans = new Transaction(in.readLong(), in.readLong(), in.readLong(), in.readUTF(), TransactionIsolation.values()[in.readInt()], TransactionState.values()[in.readInt()]); xTrans.updateCounters(in.readInt(), in.readInt(), in.readInt()); return xTrans; } @Override public void write(ObjectDataOutput out, Transaction xTrans) throws IOException { out.writeLong(xTrans.getTxId()); out.writeLong(xTrans.getStartedAt()); out.writeLong(xTrans.getFinishedAt()); out.writeUTF(xTrans.getStartedBy()); out.writeInt(xTrans.getTxIsolation().ordinal()); out.writeInt(xTrans.getTxState().ordinal()); out.writeInt(xTrans.getDocsCreated()); out.writeInt(xTrans.getDocsUpdated()); out.writeInt(xTrans.getDocsDeleted()); } }