Interface Coercing<I,​O>

    • Method Summary

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

      • serialize

        @Deprecated(since="2022-08-22")
        @Nullable
        default O serialize​(@NotNull
                            @NotNull 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

        @Nullable
        default O serialize​(@NotNull
                            @NotNull java.lang.Object dataFetcherResult,
                            @NotNull
                            @NotNull GraphQLContext graphQLContext,
                            @NotNull
                            @NotNull 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")
        @Nullable
        default I parseValue​(@NotNull
                             @NotNull 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

        @Nullable
        default I parseValue​(@NotNull
                             @NotNull java.lang.Object input,
                             @NotNull
                             @NotNull GraphQLContext graphQLContext,
                             @NotNull
                             @NotNull 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")
        @Nullable
        default I parseLiteral​(@NotNull
                               @NotNull 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")
        @Nullable
        default 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

        @Nullable
        default I parseLiteral​(@NotNull
                               @NotNull Value<?> input,
                               @NotNull
                               @NotNull CoercedVariables variables,
                               @NotNull
                               @NotNull GraphQLContext graphQLContext,
                               @NotNull
                               @NotNull 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")
        @NotNull
        default @NotNull Value valueToLiteral​(@NotNull
                                              @NotNull 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

        @NotNull
        default @NotNull Value<?> valueToLiteral​(@NotNull
                                                 @NotNull java.lang.Object input,
                                                 @NotNull
                                                 @NotNull GraphQLContext graphQLContext,
                                                 @NotNull
                                                 @NotNull 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.