Class QueryField

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

public class QueryField
extends java.lang.Object
This class gives parsing capabilities for the QueryString for one object.
For instance, for the GraphQL query queryType.boards("{id name publiclyAvailable topics(since: \"2018-12-20\"){id}}"), it is created for the field named boards, then the #readTokenizerForResponseDefinition(StringTokenizer) is called for the whole String.
Then another QueryField is created, for the field named topics, and the (since: \"2018-12-20\") is parsed by the #readTokenizerForInputParameters(StringTokenizer), then the {id} String is parsed by #readTokenizerForResponseDefinition(StringTokenizer) .
Author:
etienne-sf
  • Constructor Summary

    Constructors 
    Constructor Description
    QueryField​(java.lang.Class<?> owningClass, java.lang.String fieldName)
    The constructor, when created by the Builder: it must provide the owningClass
    QueryField​(java.lang.Class<?> owningClass, java.lang.String fieldName, java.lang.String fieldAlias)
    The constructor, when created by the Builder: it must provide the owningClass
  • Method Summary

    Modifier and Type Method Description
    void appendToGraphQLRequests​(java.lang.StringBuilder sb, java.util.Map<java.lang.String,​java.lang.Object> parameters, boolean appendName)
    Append this query field in the StringBuilder in which the query is being written.
    java.lang.String getAlias()  
    java.lang.Class<?> getClazz()  
    java.util.List<QueryField> getFields()  
    java.lang.String getName()  
    java.lang.Class<?> getOwningClazz()  
    boolean isQueryLevel()
    Indicates whether this field is a query/mutation/subscription or not
    boolean isScalar()
    Indicates whether this field is a scalar or not.
    void readTokenizerForResponseDefinition​(QueryTokenizer qt)
    Reads the definition of the expected response definition from the server.

    Methods inherited from class java.lang.Object

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

  • Method Details

    • readTokenizerForResponseDefinition

      public void readTokenizerForResponseDefinition​(QueryTokenizer qt) throws GraphQLRequestPreparationException
      Reads the definition of the expected response definition from the server. It is recursive.
      For instance, for the GraphQL query queryType.boards("{id name publiclyAvailable topics(since: \"2018-12-20\"){id}}"), it will be called twice:
      Once for the String id name publiclyAvailable topics(since: \"2018-12-20\"){id}} (without the leading '{'), where QueryField is boards,
      Then for the String id}, where the QueryField is topics
      Parameters:
      qt - The StringTokenizer, where the next token is the first token after the '{' have already been read.
      The StringTokenizer is read until the '}' associated with this already read '{'.
      For instance, when this method is called with the StringTokenizer where these characters are still to read: id date author{name email alias} title content}}, the StringTokenizer is read until and including the first '}' that follows content. Thus, there is still a '}' to read.
      Throws:
      GraphQLRequestPreparationException
    • appendToGraphQLRequests

      public void appendToGraphQLRequests​(java.lang.StringBuilder sb, java.util.Map<java.lang.String,​java.lang.Object> parameters, boolean appendName) throws GraphQLRequestExecutionException
      Append this query field in the StringBuilder in which the query is being written. Any parameter will be replaced by its value. It's a recursive method, that calls itself when this field is not a scalar: it calls itself for each subfield.
      Parameters:
      sb -
      parameters -
      appendName - true if the name of the field must be written in the query (for regular fields for instance). False otherwise (for fragments, for instance)
      Throws:
      GraphQLRequestExecutionException
    • isScalar

      public boolean isScalar() throws GraphQLRequestPreparationException
      Indicates whether this field is a scalar or not.
      Returns:
      true if this field is a scalar (custom or not), and false otherwise.
      Throws:
      GraphQLRequestPreparationException
    • isQueryLevel

      public boolean isQueryLevel()
      Indicates whether this field is a query/mutation/subscription or not
      Returns:
      true if the QueryField is a query, a mutation or a subscription. False otherwise.
    • getFields

      public java.util.List<QueryField> getFields()
    • getOwningClazz

      public java.lang.Class<?> getOwningClazz()
    • getClazz

      public java.lang.Class<?> getClazz()
    • getName

      public java.lang.String getName()
    • getAlias

      public java.lang.String getAlias()