package com.codepoetics.octarine.json.deserialisation; import com.fasterxml.jackson.core.JsonFactory; import com.fasterxml.jackson.core.JsonParser; import java.io.IOException; import java.io.Reader; import java.io.StringReader; import java.util.function.Function; public interface Deserialiser<R> extends Function<JsonParser, R> { default R fromReader(Reader reader) { JsonFactory factory = new JsonFactory(); try (JsonParser parser = factory.createParser(reader)) { return apply(parser); } catch (IOException e) { throw new DeserialisationException(e); } } default R fromString(String input) { try (StringReader reader = new StringReader(input)) { return fromReader(reader); } } }