RemoteDataPayload { @NonNull static Set<RemoteDataPayload> parsePayloads(@NonNull JsonValue value, @NonNull JsonMap metadata) { JsonList list = value.optList(); try { Set<RemoteDataPayload> payloads = new HashSet<>(); for (JsonValue payload : list) { payloads.add(parsePayload(payload, metadata)); } return payloads; } catch (JsonException e) { Logger.error("Unable to parse remote data payloads: %s", value.toString()); } return Collections.emptySet(); } private  RemoteDataPayload(@NonNull Builder builder); @Override boolean equals(@Nullable Object o); @Override int hashCode(); @Override @NonNull String toString(); @NonNull final String getType(); final long getTimestamp(); @NonNull final JsonMap getData(); @NonNull final JsonMap getMetadata(); @NonNull static Builder newBuilder(); @NonNull
    static final String METADATA_LANGUAGE; @NonNull
    static final String METADATA_COUNTRY; @NonNull
    static final String METADATA_SDK_VERSION; }
@Test public void testParsePayloads() { Set<RemoteDataPayload> parsedPayloads = RemoteDataPayload.parsePayloads(payloads, metadata); Assert.assertEquals("Parsed payloads should have a size of one", parsedPayloads.size(), 1); for (RemoteDataPayload parsedPayload : parsedPayloads) { verifyPayload(parsedPayload); } }