package com.codepoetics.octarine.json.example; import com.codepoetics.octarine.records.ListKey; import com.codepoetics.octarine.json.deserialisation.RecordDeserialiser; import com.codepoetics.octarine.json.serialisation.RecordSerialiser; import com.codepoetics.octarine.json.serialisation.Serialisers; import com.codepoetics.octarine.records.KeySet; import com.codepoetics.octarine.records.Schema; import static com.codepoetics.octarine.Octarine.$L; import static com.codepoetics.octarine.json.deserialisation.Deserialisers.ofString; public interface Address { public static final KeySet mandatoryKeys = new KeySet(); public static final ListKey<String> addressLines = mandatoryKeys.add($L("addressLines")); public static final RecordSerialiser serialiser = RecordSerialiser.builder() .writeList(addressLines, Serialisers.toString) .get(); public static final RecordDeserialiser deserialiser = RecordDeserialiser.builder() .readList(addressLines, ofString) .get(); public static final Schema<Address> schema = (record, validationErrors) -> mandatoryKeys.accept(record, validationErrors); }