class ChainedDeserializer {

    public Operand deserialize(JsonNode jsonNode, ObjectMapper objectMapper) throws JsonProcessingException {
        Deserializer deserializer = deserializers.stream()
                .filter(d -> d.isApplicable(jsonNode))
                .findFirst()
                .orElseThrow(() -> new IllegalArgumentException(String.format("Node %s could not be deserialized to any known operand", jsonNode)));
        return deserializer.deserialize(jsonNode, objectMapper);
    }

    public  ChainedDeserializer(List<Deserializer> deserializers);

}