Class AbstractObjectDefinition<T extends graphql.language.TypeDefinition<T>,U extends FieldSpecification>

java.lang.Object
no.sikt.graphitron.definitions.objects.AbstractObjectDefinition<T,U>
All Implemented Interfaces:
ObjectSpecification<U>
Direct Known Subclasses:
ConnectionObjectDefinition, EdgeObjectDefinition, EnumDefinition, ExceptionDefinition, InterfaceDefinition, OrderByEnumDefinition, RecordObjectDefinition, UnionDefinition

public abstract class AbstractObjectDefinition<T extends graphql.language.TypeDefinition<T>,U extends FieldSpecification> extends Object implements ObjectSpecification<U>
A generalized implementation of ObjectSpecification. Contains functionality that is common between the different kinds of GraphQL objects.
  • Constructor Details

    • AbstractObjectDefinition

      public AbstractObjectDefinition(T objectDefinition)
  • Method Details

    • getName

      public String getName()
      Specified by:
      getName in interface ObjectSpecification<T extends graphql.language.TypeDefinition<T>>
      Returns:
      The name of the type as specified in the schema.
    • getClassReference

      public Class<?> getClassReference()
      Specified by:
      getClassReference in interface ObjectSpecification<T extends graphql.language.TypeDefinition<T>>
      Returns:
      The pre-generated class for this GraphQL-type.
    • getGraphClassName

      public ClassName getGraphClassName()
      Specified by:
      getGraphClassName in interface ObjectSpecification<T extends graphql.language.TypeDefinition<T>>
      Returns:
      The javapoet ClassName for the imported generated GraphQL type.
    • createFields

      protected abstract List<U> createFields(T objectDefinition)
    • getFields

      public List<U> getFields()
      Specified by:
      getFields in interface ObjectSpecification<T extends graphql.language.TypeDefinition<T>>
      Returns:
      The fields contained within this type.
    • getFieldByName

      public U getFieldByName(String name)
      Specified by:
      getFieldByName in interface ObjectSpecification<T extends graphql.language.TypeDefinition<T>>
      Returns:
      The field with this name. Null if it does not exist.
    • hasField

      public boolean hasField(String name)
      Returns:
      Does this object contain this field?
    • getObjectDefinition

      public T getObjectDefinition()
    • isOperationRoot

      public boolean isOperationRoot()
      Specified by:
      isOperationRoot in interface ObjectSpecification<T extends graphql.language.TypeDefinition<T>>
      Returns:
      Is this type the top node? That should be either the Query or the Mutation type.
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object