java.lang.Object
tools.jackson.databind.deser.DeserializationProblemHandler
com.graphql_java_generator.client.GraphQLDeserializationProblemHandler

public class GraphQLDeserializationProblemHandler extends tools.jackson.databind.deser.DeserializationProblemHandler
This class handles various deserialization problems. It's used to manage unknown properties coming in the response JSON. These unknown properties are alias defined in the GraphQL query.
Author:
etienne-sf
  • Field Summary

    Fields inherited from class tools.jackson.databind.deser.DeserializationProblemHandler

    NOT_HANDLED
  • Constructor Summary

    Constructors
    Constructor
    Description
    GraphQLDeserializationProblemHandler(String graphQLObjectsPackage, Map<Class<?>,Map<String,Field>> aliasFields, String schema)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    getAliasValue(tools.jackson.core.JsonParser parser, Field targetField, tools.jackson.core.TreeNode value)
    Parse a TreeNode, and return it as a value, according to the given classes
    boolean
    handleUnknownProperty(tools.jackson.databind.DeserializationContext ctxt, tools.jackson.core.JsonParser p, tools.jackson.databind.ValueDeserializer<?> deserializer, Object beanOrClass, String propertyName)
     
    void
    setObjectMapper(tools.jackson.databind.json.JsonMapper objectMapper)
     

    Methods inherited from class tools.jackson.databind.deser.DeserializationProblemHandler

    handleInstantiationProblem, handleMissingInstantiator, handleMissingTypeId, handleUnexpectedToken, handleUnknownTypeId, handleWeirdKey, handleWeirdNativeValue, handleWeirdNumberValue, handleWeirdStringValue

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • GraphQLDeserializationProblemHandler

      public GraphQLDeserializationProblemHandler(String graphQLObjectsPackage, Map<Class<?>,Map<String,Field>> aliasFields, String schema)
  • Method Details

    • setObjectMapper

      public void setObjectMapper(tools.jackson.databind.json.JsonMapper objectMapper)
    • handleUnknownProperty

      public boolean handleUnknownProperty(tools.jackson.databind.DeserializationContext ctxt, tools.jackson.core.JsonParser p, tools.jackson.databind.ValueDeserializer<?> deserializer, Object beanOrClass, String propertyName)
      Overrides:
      handleUnknownProperty in class tools.jackson.databind.deser.DeserializationProblemHandler
    • getAliasValue

      public Object getAliasValue(tools.jackson.core.JsonParser parser, Field targetField, tools.jackson.core.TreeNode value) throws IOException, GraphQLRequestExecutionException
      Parse a TreeNode, and return it as a value, according to the given classes
      Parameters:
      parser - The current json parser
      targetField - The field on which an alias has been set. This allows to retrieve the annotation on this field, to know everything about it's properties, as defined in the GraphQL schema.
      It may be null, in which case enumeration values won't be properly deserialized.
      value - The value to parse
      Returns:
      The parsed value. That is, according to the above sample: a String, a List or a List<List>
      Throws:
      IOException
      GraphQLRequestExecutionException