Interface Coercing<I,​O>

    • Method Summary

      All Methods Instance Methods Default Methods Deprecated Methods 
      Modifier and Type Method Description
      default @Nullable I parseLiteral​(@NonNull Value<?> input, @NonNull CoercedVariables variables, @NonNull GraphQLContext graphQLContext, @NonNull java.util.Locale locale)
      Called during query execution to convert a query input AST node into a Java object acceptable for the scalar type.
      default @Nullable I parseLiteral​(@NonNull java.lang.Object input)
      Deprecated.
      default @Nullable I parseLiteral​(java.lang.Object input, java.util.Map<java.lang.String,​java.lang.Object> variables)
      Deprecated.
      default @Nullable I parseValue​(@NonNull java.lang.Object input)
      Deprecated.
      default @Nullable I parseValue​(@NonNull java.lang.Object input, @NonNull GraphQLContext graphQLContext, @NonNull java.util.Locale locale)
      Called to resolve an input from a query variable into a Java object acceptable for the scalar type.
      default @Nullable O serialize​(@NonNull java.lang.Object dataFetcherResult)
      Deprecated.
      default @Nullable O serialize​(@NonNull java.lang.Object dataFetcherResult, @NonNull GraphQLContext graphQLContext, @NonNull java.util.Locale locale)
      Called to convert a Java object result of a DataFetcher to a valid runtime value for the scalar type.
      default @NonNull Value valueToLiteral​(@NonNull java.lang.Object input)
      Deprecated.
      default @NonNull Value<?> valueToLiteral​(@NonNull java.lang.Object input, @NonNull GraphQLContext graphQLContext, @NonNull java.util.Locale locale)
      Converts an external input value to a literal (Ast Value).
    • Method Detail

      • serialize

        @Deprecated(since="2022-08-22")
        default @Nullable O serialize​(@NonNull java.lang.Object dataFetcherResult)
                               throws CoercingSerializeException
        Deprecated.
        This is deprecated and you should implement serialize(Object, GraphQLContext, Locale) instead

        Called to convert a Java object result of a DataFetcher to a valid runtime value for the scalar type.

        Note : Throw CoercingSerializeException if there is fundamental problem during serialization, don't return null to indicate failure.

        Note : You should not allow RuntimeExceptions to come out of your serialize method, but rather catch them and fire them as CoercingSerializeException instead as per the method contract.

        Parameters:
        dataFetcherResult - is never null
        Returns:
        a serialized value which may be null.
        Throws:
        CoercingSerializeException - if value input can't be serialized
      • serialize

        default @Nullable O serialize​(@NonNull java.lang.Object dataFetcherResult,
                                      @NonNull GraphQLContext graphQLContext,
                                      @NonNull java.util.Locale locale)
                               throws CoercingSerializeException
        Called to convert a Java object result of a DataFetcher to a valid runtime value for the scalar type.

        Note : Throw CoercingSerializeException if there is fundamental problem during serialization, don't return null to indicate failure.

        Note : You should not allow RuntimeExceptions to come out of your serialize method, but rather catch them and fire them as CoercingSerializeException instead as per the method contract.

        Parameters:
        dataFetcherResult - is never null
        graphQLContext - the graphql context in place
        locale - the locale to use
        Returns:
        a serialized value which may be null.
        Throws:
        CoercingSerializeException - if value input can't be serialized
      • parseValue

        @Deprecated(since="2022-08-22")
        default @Nullable I parseValue​(@NonNull java.lang.Object input)
                                throws CoercingParseValueException
        Deprecated.
        This is deprecated and you should implement parseValue(Object, GraphQLContext, Locale) instead

        Called to resolve an input from a query variable into a Java object acceptable for the scalar type.

        Note : You should not allow RuntimeExceptions to come out of your parseValue method, but rather catch them and fire them as CoercingParseValueException instead as per the method contract.

        Note : if input is explicit/raw value null, input coercion will return null before this method is called

        Parameters:
        input - is never null
        Returns:
        a parsed value which may be null
        Throws:
        CoercingParseValueException - if value input can't be parsed
      • parseValue

        default @Nullable I parseValue​(@NonNull java.lang.Object input,
                                       @NonNull GraphQLContext graphQLContext,
                                       @NonNull java.util.Locale locale)
                                throws CoercingParseValueException
        Called to resolve an input from a query variable into a Java object acceptable for the scalar type.

        Note : You should not allow RuntimeExceptions to come out of your parseValue method, but rather catch them and fire them as CoercingParseValueException instead as per the method contract. Note : if input is explicit/raw value null, input coercion will return null before this method is called

        Parameters:
        input - is never null
        graphQLContext - the graphql context in place
        locale - the locale to use
        Returns:
        a parsed value which may be null
        Throws:
        CoercingParseValueException - if value input can't be parsed
      • parseLiteral

        @Deprecated(since="2022-08-22")
        default @Nullable I parseLiteral​(@NonNull java.lang.Object input)
                                  throws CoercingParseLiteralException
        Deprecated.
        This is deprecated and you should implement parseLiteral(Value, CoercedVariables, GraphQLContext, Locale) instead

        Called during query validation to convert a query input AST node into a Java object acceptable for the scalar type. The input object will be an instance of Value.

        Note : You should not allow RuntimeExceptions to come out of your parseLiteral method, but rather catch them and fire them as CoercingParseLiteralException instead as per the method contract.

        Note : if input is literal NullValue, input coercion will return null before this method is called

        Parameters:
        input - is never null
        Returns:
        a parsed value which may be null
        Throws:
        CoercingParseLiteralException - if input literal can't be parsed
      • parseLiteral

        @Deprecated(since="2022-08-22")
        default @Nullable I parseLiteral​(java.lang.Object input,
                                         java.util.Map<java.lang.String,​java.lang.Object> variables)
                                  throws CoercingParseLiteralException
        Deprecated.
        This is deprecated and you should implement parseLiteral(Value, CoercedVariables, GraphQLContext, Locale) instead

        Called during query execution to convert a query input AST node into a Java object acceptable for the scalar type. The input object will be an instance of Value.

        Note : You should not allow RuntimeExceptions to come out of your parseLiteral method, but rather catch them and fire them as CoercingParseLiteralException instead as per the method contract.

        Many scalar types don't need to implement this method because they don't take AST VariableReference objects and convert them into actual values. But for those scalar types that want to do this, then this method should be implemented. Note : if input is literal NullValue, input coercion will return null before this method is called

        Parameters:
        input - is never null
        variables - the resolved variables passed to the query
        Returns:
        a parsed value which may be null
        Throws:
        CoercingParseLiteralException - if input literal can't be parsed
      • parseLiteral

        default @Nullable I parseLiteral​(@NonNull Value<?> input,
                                         @NonNull CoercedVariables variables,
                                         @NonNull GraphQLContext graphQLContext,
                                         @NonNull java.util.Locale locale)
                                  throws CoercingParseLiteralException
        Called during query execution to convert a query input AST node into a Java object acceptable for the scalar type. The input object will be an instance of Value.

        Note : You should not allow RuntimeExceptions to come out of your parseLiteral method, but rather catch them and fire them as CoercingParseLiteralException instead as per the method contract.

        Many scalar types don't need to implement this method because they don't take AST VariableReference objects and convert them into actual values. But for those scalar types that want to do this, then this method should be implemented. Note : if input is literal NullValue, input coercion will return null before this method is called

        Parameters:
        input - is never null
        variables - the resolved variables passed to the query
        graphQLContext - the graphql context in place
        locale - the locale to use
        Returns:
        a parsed value which may be null
        Throws:
        CoercingParseLiteralException - if input literal can't be parsed
      • valueToLiteral

        @Deprecated(since="2022-08-22")
        default @NonNull Value valueToLiteral​(@NonNull java.lang.Object input)
        Deprecated.
        This is deprecated and you should implement valueToLiteral(Object, GraphQLContext, Locale) instead

        Converts an external input value to a literal (Ast Value).

        IMPORTANT: the argument is validated before by calling parseValue(Object).

        Parameters:
        input - an external input value
        Returns:
        The literal matching the external input value.
      • valueToLiteral

        default @NonNull Value<?> valueToLiteral​(@NonNull java.lang.Object input,
                                                 @NonNull GraphQLContext graphQLContext,
                                                 @NonNull java.util.Locale locale)
        Converts an external input value to a literal (Ast Value).

        IMPORTANT: the argument is validated before by calling parseValue(Object).

        Parameters:
        input - an external input value
        graphQLContext - the graphql context in place
        locale - the locale to use
        Returns:
        The literal matching the external input value.