@Override public PhoneNumber readFrom(ProtoStreamReader reader) throws IOException { String number = reader.readString("number"); PhoneType type = reader.readObject("type", PhoneType.class); PhoneNumber phoneNumber = new PhoneNumber(); phoneNumber.setNumber(number); phoneNumber.setType(type); return phoneNumber; }
@Override public Address readFrom(ProtoStreamReader reader) throws IOException { String street = reader.readString("street"); String postCode = reader.readString("postCode"); Address address = new Address(); address.setStreet(street); address.setPostCode(postCode); return address; }
@Override public User readFrom(ProtoStreamReader reader) throws IOException { int id = reader.readInt("id"); Set<Integer> accountIds = reader.readCollection("accountIds", new HashSet<>(), Integer.class); // Read them out of order. It still works but logs a warning! String surname = reader.readString("surname"); String name = reader.readString("name"); List<Address> addresses = reader.readCollection("addresses", new ArrayList<>(), Address.class); Integer age = reader.readInt("age"); User.Gender gender = reader.readEnum("gender", User.Gender.class); String notes = reader.readString("notes"); User user = new User(); user.setId(id); user.setAccountIds(accountIds); user.setName(name); user.setSurname(surname); user.setAge(age); user.setGender(gender); user.setAddresses(addresses); user.setNotes(notes); return user; }