package org.infinispan.client.hotrod.query.testdomain.protobuf.marshallers;
import java.io.IOException;
import java.util.Date;
import org.infinispan.client.hotrod.query.testdomain.protobuf.TransactionPB;
import org.infinispan.protostream.MessageMarshaller;
/**
* @author anistor@redhat.com
* @since 7.0
*/
public class TransactionMarshaller implements MessageMarshaller<TransactionPB> {
@Override
public String getTypeName() {
return "sample_bank_account.Transaction";
}
@Override
public Class<TransactionPB> getJavaClass() {
return TransactionPB.class;
}
@Override
public TransactionPB readFrom(ProtoStreamReader reader) throws IOException {
int id = reader.readInt("id");
String description = reader.readString("description");
String longDescription = reader.readString("longDescription");
int accountId = reader.readInt("accountId");
long date = reader.readLong("date");
double amount = reader.readDouble("amount");
boolean isDebit = reader.readBoolean("isDebit");
boolean isValid = reader.readBoolean("isValid");
TransactionPB transaction = new TransactionPB();
transaction.setId(id);
transaction.setDescription(description);
transaction.setLongDescription(longDescription);
transaction.setAccountId(accountId);
transaction.setDate(new Date(date));
transaction.setAmount(amount);
transaction.setDebit(isDebit);
transaction.setValid(isValid);
return transaction;
}
@Override
public void writeTo(ProtoStreamWriter writer, TransactionPB transaction) throws IOException {
writer.writeInt("id", transaction.getId());
writer.writeString("description", transaction.getDescription());
writer.writeString("longDescription", transaction.getLongDescription());
writer.writeInt("accountId", transaction.getAccountId());
writer.writeLong("date", transaction.getDate().getTime());
writer.writeDouble("amount", transaction.getAmount());
writer.writeBoolean("isDebit", transaction.isDebit());
writer.writeBoolean("isValid", transaction.isValid());
}
}