package org.infinispan.objectfilter.test.model; import java.io.IOException; import java.util.ArrayList; import java.util.Date; import org.infinispan.protostream.MessageMarshaller; /** * @author anistor@redhat.com * @since 7.0 */ public class PersonMarshaller implements MessageMarshaller<Person> { @Override public Person readFrom(ProtoStreamReader reader) throws IOException { Person person = new Person(); person.setId(reader.readInt("id")); person.setName(reader.readString("name")); person.setSurname(reader.readString("surname")); person.setAddress(reader.readObject("address", Address.class)); person.setPhoneNumbers(reader.readCollection("phoneNumbers", new ArrayList<>(), PhoneNumber.class)); person.setAge(reader.readInt("age")); person.setFavouriteNumbers(reader.readCollection("favouriteNumbers", new ArrayList<>(), Integer.class)); person.setLicense(reader.readString("license")); person.setGender(reader.readEnum("gender", Person.Gender.class)); person.setLastUpdate(new Date(reader.readLong("lastUpdate"))); person.setDeleted(reader.readBoolean("deleted")); return person; } @Override public void writeTo(ProtoStreamWriter writer, Person person) throws IOException { writer.writeInt("id", person.getId()); writer.writeString("name", person.getName()); writer.writeString("surname", person.getSurname()); writer.writeObject("address", person.getAddress(), Address.class); writer.writeCollection("phoneNumbers", person.getPhoneNumbers(), PhoneNumber.class); writer.writeInt("age", person.getAge()); writer.writeCollection("favouriteNumbers", person.getFavouriteNumbers(), Integer.class); writer.writeString("license", person.getLicense()); writer.writeEnum("gender", person.getGender(), Person.Gender.class); if (person.getLastUpdate() != null) { writer.writeLong("lastUpdate", person.getLastUpdate().getTime()); } writer.writeBoolean("deleted", person.isDeleted()); } @Override public Class<Person> getJavaClass() { return Person.class; } @Override public String getTypeName() { return "org.infinispan.objectfilter.test.model.Person"; } }