package com.codepoetics.octarine.json.serialisation;
import com.fasterxml.jackson.core.JsonGenerator;
import java.io.IOException;
import java.util.Collection;
public final class ListSerialiser<T> implements SafeSerialiser<Collection<? extends T>> {
public static <T> ListSerialiser<T> writingItemsWith(Serialiser<? super T> itemSerialiser) {
return new ListSerialiser<>(itemSerialiser);
}
private final Serialiser<? super T> itemSerialiser;
private ListSerialiser(Serialiser<? super T> itemSerialiser) {
this.itemSerialiser = itemSerialiser;
}
@Override
public void unsafeAccept(JsonGenerator j, Collection<? extends T> ts) throws IOException {
j.writeStartArray();
ts.forEach(t -> itemSerialiser.accept(j, t));
j.writeEndArray();
}
}