Class InputParameter

java.lang.Object
com.graphql_java_generator.client.request.InputParameter

public class InputParameter
extends java.lang.Object
Contains an input parameter, to be sent to a query (mutation...). It can be either:
    • A hard coded value
      A bind variable, which value must be provided when executing the query
  • Author:
    EtienneSF
    • Method Details

      • newBindParameter

        public static InputParameter newBindParameter​(java.lang.String name, java.lang.String bindParameterName, boolean mandatory)
        Creates and returns a new instance of InputParameter, which is bound to a bind variable. The value for this bind variable must be provided, when calling the request execution.
        Parameters:
        name -
        bindParameterName -
        mandatory - true if the parameter's value must be defined during request/mutation/subscription execution.
        If mandatory is true and the parameter's value is not provided, a GraphQLRequestExecutionException exception is thrown at execution time
        If mandatory is false and the parameter's value is not provided, this input parameter is not sent to the server
        Returns:
        See Also:
        QueryExecutorImpl#execute(String, ObjectResponse, List, Class)
      • newBindParameter

        public static InputParameter newBindParameter​(java.lang.String name, java.lang.String bindParameterName, boolean mandatory, graphql.schema.GraphQLScalarType graphQLScalarType)
        Creates and returns a new instance of InputParameter, which is bound to a bind variable. The value for this bind variable must be provided, when calling the request execution.
        Parameters:
        name -
        bindParameterName -
        mandatory - true if the parameter's value must be defined during request/mutation/subscription execution.
        If mandatory is true and the parameter's value is not provided, a GraphQLRequestExecutionException exception is thrown at execution time
        If mandatory is false and the parameter's value is not provided, this input parameter is not sent to the server
        graphQLCustomScalarType - If this input parameter's type is a GraphQL Custom Scalar, it must be provided. Otherwise, it must be null.
        graphQLCustomScalarType contains the GraphQLScalarType that allows to convert the value to a String that can be written in the GraphQL request, or convert from a String that is found in the GraphQL response. If this type is not a GraphQL Custom Scalar, it must be null.
        Returns:
        See Also:
        QueryExecutorImpl#execute(String, ObjectResponse, List, Class)
      • newHardCodedParameter

        public static InputParameter newHardCodedParameter​(java.lang.String name, java.lang.Object value)
        Creates and returns a new instance of InputParameter, which value is given, and can not be changed afterwards
        Parameters:
        name -
        value -
        Returns:
      • newHardCodedParameter

        public static InputParameter newHardCodedParameter​(java.lang.String name, java.lang.Object value, boolean mandatory, graphql.schema.GraphQLScalarType type)
        Creates and returns a new instance of InputParameter, which value is given, and can not be changed afterwards.
        Parameters:
        name -
        value -
        mandatory -
        type -
        Returns:
      • readTokenizerForInputParameters

        public static java.util.List<InputParameter> readTokenizerForInputParameters​(QueryTokenizer qt, Directive directive, java.lang.Class<?> owningClass, java.lang.String fieldName) throws GraphQLRequestPreparationException
        Reads a list of input parameters, from a QueryTokenizer. It can be the list of parameters for a Field or for a Directive. It can be either a Field of a Query, Mutation or Subscription, or a Field of a standard GraphQL Type, or any directive...
        Parameters:
        qt - The StringTokenizer, where the opening parenthesis has been read. It will be read until and including the next closing parenthesis.
        directive - if not null, then this method is reading the input parameters (arguments) for this Directive
        owningClass - if not null, then this method is reading the input parameters for the field fieldName of this class.
        fieldName - if owningClass, this is the name of the field, whose input parameters are being read.
        packageName - The package name is necessary to load the generated classes, to read the metadata that has been generated
        Throws:
        GraphQLRequestPreparationException - If the request string is invalid
      • getName

        public java.lang.String getName()
      • getValue

        public java.lang.Object getValue()
      • getValueForGraphqlQuery

        public java.lang.String getValueForGraphqlQuery​(java.util.Map<java.lang.String,​java.lang.Object> bindVariables) throws GraphQLRequestExecutionException
        Returns the parameter, as it should be written in the GraphQL query. For instance:
        • String: a "string" -> "a \"string\""
        • Enum: EPISODE -> EPISODE (no escape or double quote here)
        Parameters:
        bindVariables - The map for the bind variables. It may be null, if this input parameter is a hard coded one. If this parameter is a Bind Variable, then bindVariables is mandatory, and it must contain a value for th bind parameter which name is stored in bindParameterName.
        Returns:
        Throws:
        GraphQLRequestExecutionException
      • getBindParameterName

        public java.lang.String getBindParameterName()
      • isMandatory

        public boolean isMandatory()
      • getGraphQLScalarType

        public graphql.schema.GraphQLScalarType getGraphQLScalarType()
      • appendInputParametersToGraphQLRequests

        public static void appendInputParametersToGraphQLRequests​(java.lang.StringBuilder sb, java.util.List<InputParameter> inputParameters, java.util.Map<java.lang.String,​java.lang.Object> parameters) throws GraphQLRequestExecutionException
        Throws:
        GraphQLRequestExecutionException