Class GraphqlClientUtils
java.lang.Object
com.graphql_java_generator.client.GraphqlClientUtils
@Component
public class GraphqlClientUtils
extends java.lang.Object
- Author:
- EtienneSF
-
Constructor Summary
Constructors Constructor Description GraphqlClientUtils()
-
Method Summary
Modifier and Type Method Description java.lang.Class<?>
checkFieldOfGraphQLType(java.lang.String name, java.lang.Boolean shouldBeScalar, java.lang.Class<?> owningClass)
Check if the given field is owned by the class of thisObjectResponse
.java.lang.Class<?>
checkIsScalar(java.lang.reflect.Field field, java.lang.Boolean shouldBeScalar)
This method checks whether the given field (as an attribute) of the given class is a GraphQL scalar, or not, depending on shouldBeScalar.java.lang.Class<?>
checkIsScalar(java.lang.String fieldName, java.lang.reflect.Method method, java.lang.Boolean shouldBeScalar)
This method checks whether the given field (as a method: getter, query...) of the given class is a GraphQL scalar, or not, depending on shouldBeScalar.void
checkName(java.lang.String graphqlIdentifier)
Checks that the given GraphQL name is valid.java.util.Map<java.lang.String,java.lang.Object>
generatesBindVariableValuesMap(java.lang.Object[] paramsAndValues)
This method retrieves the couple of name and values given in these parameters, stores them in a map where the key is the param name, and the value is the value of theMap
.java.lang.Class<?>
getGraphQLType(java.lang.reflect.AccessibleObject fieldOrMethod)
Returns the Class indicated as the value for the graphqlType attribute of the GraphQLScalar or GraphQLNonScalar annotationboolean
isScalar(java.lang.reflect.AccessibleObject fieldOrMethod)
Indicates whether the given class is a scalar or not
-
Constructor Details
-
GraphqlClientUtils
public GraphqlClientUtils()
-
-
Method Details
-
checkName
public void checkName(java.lang.String graphqlIdentifier) throws GraphQLRequestPreparationExceptionChecks that the given GraphQL name is valid.- Parameters:
graphqlIdentifier
-- Throws:
java.lang.NullPointerException
- If name is nullGraphQLRequestPreparationException
- If the given graphqlIdentifier is not a valid identifier
-
checkIsScalar
public java.lang.Class<?> checkIsScalar(java.lang.reflect.Field field, java.lang.Boolean shouldBeScalar) throws GraphQLRequestPreparationExceptionThis method checks whether the given field (as an attribute) of the given class is a GraphQL scalar, or not, depending on shouldBeScalar.- Parameters:
field
- The field whose type should be (or not) a scalarshouldBeScalar
- if true, this method checks that field's type is a scalar (if false, checks that it is not a scalar)- Throws:
GraphQLRequestPreparationException
-
checkIsScalar
public java.lang.Class<?> checkIsScalar(java.lang.String fieldName, java.lang.reflect.Method method, java.lang.Boolean shouldBeScalar) throws GraphQLRequestPreparationExceptionThis method checks whether the given field (as a method: getter, query...) of the given class is a GraphQL scalar, or not, depending on shouldBeScalar.- Parameters:
fieldName
- the name of the field represented by the given method.method
- The method whose return should be (or not) a scalar. This method can be a setter, a getter (in which case its name is different from the fieldName), or a query/mutation/subscription (in which case its name is the fieldName)shouldBeScalar
- if true, this method checks that method return type is a scalar (if false, checks that it is not a scalar)- Throws:
GraphQLRequestPreparationException
-
isScalar
public boolean isScalar(java.lang.reflect.AccessibleObject fieldOrMethod) throws GraphQLRequestPreparationExceptionIndicates whether the given class is a scalar or not- Parameters:
fieldOrMethod
-- Returns:
- true if clazz is a scalar type
- Throws:
GraphQLRequestPreparationException
-
getGraphQLType
public java.lang.Class<?> getGraphQLType(java.lang.reflect.AccessibleObject fieldOrMethod) throws GraphQLRequestPreparationExceptionReturns the Class indicated as the value for the graphqlType attribute of the GraphQLScalar or GraphQLNonScalar annotation- Parameters:
fieldOrMethod
-- Returns:
- Throws:
GraphQLRequestPreparationException
-
checkFieldOfGraphQLType
public java.lang.Class<?> checkFieldOfGraphQLType(java.lang.String name, java.lang.Boolean shouldBeScalar, java.lang.Class<?> owningClass) throws GraphQLRequestPreparationExceptionCheck if the given field is owned by the class of thisObjectResponse
. This method returns the class for this field.- Parameters:
name
- The name of the field we want to checkshouldBeScalar
- if true: also checks that the field is a scalar (throws a GraphQLRequestPreparationException if not). If false: also checks that the field is not a scalar (throws a GraphQLRequestPreparationException if not). If null: no check whether the field is a scalar or notowningClass
- The class in which will search for name as a GraphQL field- Returns:
- the class of this field
- Throws:
java.lang.NullPointerException
- if name is nullGraphQLRequestPreparationException
- if the check is KO
-
generatesBindVariableValuesMap
public java.util.Map<java.lang.String,java.lang.Object> generatesBindVariableValuesMap(java.lang.Object[] paramsAndValues) throws GraphQLRequestExecutionException, java.lang.ClassCastExceptionThis method retrieves the couple of name and values given in these parameters, stores them in a map where the key is the param name, and the value is the value of theMap
.- Parameters:
paramsAndValues
- A series of name and values : (paramName1, paramValue1, paramName2, paramValue2...). So there must be an even number of items in this array. Empty arrays are allowed (that is no parameter name and value).
This series is sent by the developer's code, when it calls the request methods.- Returns:
- The map with paramName1, paramName2 (...) are the keys, and paramValue1, paramValue2 (...) are the associated content.
- Throws:
GraphQLRequestExecutionException
- When a non-even number of parameters is sent to this methodjava.lang.ClassCastException
- When a parameter name is not a String
-