Class GraphQLSchema

    • Method Detail

      • getIntrospectionSchemaFieldDefinition

        public GraphQLFieldDefinition getIntrospectionSchemaFieldDefinition()
        Returns:
        the special system field called "__schema"
      • getIntrospectionTypeFieldDefinition

        public GraphQLFieldDefinition getIntrospectionTypeFieldDefinition()
        Returns:
        the special system field called "__type"
      • getIntrospectionTypenameFieldDefinition

        public GraphQLFieldDefinition getIntrospectionTypenameFieldDefinition()
        Returns:
        the special system field called "__typename"
      • getAdditionalTypes

        public java.util.Set<GraphQLType> getAdditionalTypes()
      • getType

        @Nullable
        public @Nullable GraphQLType getType​(@NotNull
                                             @NotNull java.lang.String typeName)
        Gets the named type from the schema or null if it's not present
        Parameters:
        typeName - the name of the type to retrieve
        Returns:
        the type
      • getTypes

        public <T extends GraphQLType> java.util.List<T> getTypes​(java.util.Collection<java.lang.String> typeNames)
        All types with the provided names. throws AssertException when a type name could not be resolved
        Type Parameters:
        T - for two
        Parameters:
        typeNames - the type names to get
        Returns:
        The List of resolved types.
      • getTypeAs

        public <T extends GraphQLType> T getTypeAs​(java.lang.String typeName)
        Gets the named type from the schema or null if it's not present. Warning - you are inviting class cast errors if the types are not what you expect.
        Type Parameters:
        T - for two
        Parameters:
        typeName - the name of the type to retrieve
        Returns:
        the type cast to the target type.
      • containsType

        public boolean containsType​(java.lang.String typeName)
        Returns true if the schema contains a type with the specified name
        Parameters:
        typeName - the name of the type to check
        Returns:
        true if there is a type with the specified name
      • getObjectType

        public GraphQLObjectType getObjectType​(java.lang.String typeName)
        Called to return a named GraphQLObjectType from the schema
        Parameters:
        typeName - the name of the type
        Returns:
        a graphql object type or null if there is one
        Throws:
        GraphQLException - if the type is NOT a object type
      • getFieldDefinition

        public GraphQLFieldDefinition getFieldDefinition​(FieldCoordinates fieldCoordinates)
        Returns a GraphQLFieldDefinition as the specified co-ordinates or null if it does not exist
        Parameters:
        fieldCoordinates - the field co-ordinates
        Returns:
        the field or null if it does not exist
      • getTypeMap

        public java.util.Map<java.lang.String,​GraphQLNamedType> getTypeMap()
        Returns:
        all the named types in the scheme as a map from name to named type
      • getImplementations

        public java.util.List<GraphQLObjectType> getImplementations​(GraphQLInterfaceType type)
        This will return the list of GraphQLObjectType types that implement the given interface type.
        Parameters:
        type - interface type to obtain implementations of.
        Returns:
        list of types implementing provided interface
      • isPossibleType

        public boolean isPossibleType​(GraphQLNamedType abstractType,
                                      GraphQLObjectType concreteType)
        Returns true if a specified concrete type is a possible type of a provided abstract type. If the provided abstract type is: - an interface, it checks whether the concrete type is one of its implementations. - a union, it checks whether the concrete type is one of its possible types.
        Parameters:
        abstractType - abstract type either interface or union
        concreteType - concrete type
        Returns:
        true if possible type, false otherwise.
      • getQueryType

        public GraphQLObjectType getQueryType()
        Returns:
        the Query type of the schema
      • getMutationType

        public GraphQLObjectType getMutationType()
        Returns:
        the Mutation type of the schema of null if there is not one
      • getSubscriptionType

        public GraphQLObjectType getSubscriptionType()
        Returns:
        the Subscription type of the schema of null if there is not one
      • getDirectives

        public java.util.List<GraphQLDirective> getDirectives()
        This returns the list of directives definitions that are associated with this schema object including built in ones.
        Returns:
        a list of directives
      • getDirectivesByName

        public java.util.Map<java.lang.String,​GraphQLDirective> getDirectivesByName()
        Returns:
        a map of non repeatable directives by directive name
      • getDirective

        public GraphQLDirective getDirective​(java.lang.String directiveName)
        Returns a named directive that (for legacy reasons) will be only in the set of non repeatable directives
        Parameters:
        directiveName - the name of the directive to retrieve
        Returns:
        the directive or null if there is not one with that name
      • getSchemaDirectives

        @Deprecated
        public java.util.List<GraphQLDirective> getSchemaDirectives()
        Deprecated.
        Use the GraphQLAppliedDirective methods instead
        This returns the list of directives that have been explicitly applied to the schema object. Note that getDirectives() will return directives for all schema elements, whereas this is just for the schema element itself
        Returns:
        a list of directives
      • getSchemaDirectiveByName

        @Deprecated
        public java.util.Map<java.lang.String,​GraphQLDirective> getSchemaDirectiveByName()
        Deprecated.
        Use the GraphQLAppliedDirective methods instead
        This returns a map of non-repeatable directives that have been explicitly applied to the schema object. Note that getDirectives() will return directives for all schema elements, whereas this is just for the schema element itself
        Returns:
        a map of directives
      • getAllSchemaDirectivesByName

        @Deprecated
        public java.util.Map<java.lang.String,​java.util.List<GraphQLDirective>> getAllSchemaDirectivesByName()
        Deprecated.
        Use the GraphQLAppliedDirective methods instead
        This returns a map of non-repeatable and repeatable directives that have been explicitly applied to the schema object. Note that getDirectives() will return directives for all schema elements, whereas this is just for the schema element itself
        Returns:
        a map of directives
      • getSchemaDirective

        @Deprecated
        public GraphQLDirective getSchemaDirective​(java.lang.String directiveName)
        Deprecated.
        Use the GraphQLAppliedDirective methods instead
        This returns the named directive that have been explicitly applied to the schema object. Note that GraphQLDirectiveContainer.getDirective(String) will return directives for all schema elements, whereas this is just for the schema element itself
        Parameters:
        directiveName - the name of the directive
        Returns:
        a named directive
      • getSchemaDirectives

        @Deprecated
        public java.util.List<GraphQLDirective> getSchemaDirectives​(java.lang.String directiveName)
        Deprecated.
        Use the GraphQLAppliedDirective methods instead
        This returns the named directives that have been explicitly applied to the schema object.
        Parameters:
        directiveName - the name of the directive
        Returns:
        A list of repeated applied directives
      • getSchemaAppliedDirectives

        public java.util.List<GraphQLAppliedDirective> getSchemaAppliedDirectives()
        This returns the list of directives that have been explicitly applied to the schema object. Note that getDirectives() will return directives for all schema elements, whereas this is just for the schema element itself
        Returns:
        a map of directives
      • getAllSchemaAppliedDirectivesByName

        public java.util.Map<java.lang.String,​java.util.List<GraphQLAppliedDirective>> getAllSchemaAppliedDirectivesByName()
        This returns a map of non-repeatable and repeatable directives that have been explicitly applied to the schema object. Note that getDirectives() will return directives for all schema elements, whereas this is just for the schema element itself
        Returns:
        a map of all schema directives by directive name
      • getSchemaAppliedDirective

        public GraphQLAppliedDirective getSchemaAppliedDirective​(java.lang.String directiveName)
        This returns the named directive that have been explicitly applied to the schema object. Note that GraphQLDirectiveContainer.getDirective(String) will return directives for all schema elements, whereas this is just for the schema element itself
        Parameters:
        directiveName - the name of the directive
        Returns:
        a named directive
      • getSchemaAppliedDirectives

        public java.util.List<GraphQLAppliedDirective> getSchemaAppliedDirectives​(java.lang.String directiveName)
      • isSupportingMutations

        public boolean isSupportingMutations()
      • isSupportingSubscriptions

        public boolean isSupportingSubscriptions()
      • getDescription

        @Nullable
        public @Nullable java.lang.String getDescription()
      • transform

        public GraphQLSchema transform​(java.util.function.Consumer<GraphQLSchema.Builder> builderConsumer)
        This helps you transform the current GraphQLSchema object into another one by starting a builder with all the current values and allows you to transform it how you want.
        Parameters:
        builderConsumer - the consumer code that will be given a builder to transform
        Returns:
        a new GraphQLSchema object based on calling built on that builder
      • transformWithoutTypes

        public GraphQLSchema transformWithoutTypes​(java.util.function.Consumer<GraphQLSchema.BuilderWithoutTypes> builderConsumer)
        This helps you transform the current GraphQLSchema object into another one by using a builder that only allows you to change simple values and does not involve changing the complex schema type graph.
        Parameters:
        builderConsumer - the consumer code that will be given a builder to transform
        Returns:
        a new GraphQLSchema object based on calling built on that builder
      • newSchema

        public static GraphQLSchema.Builder newSchema​(GraphQLSchema existingSchema)
        This allows you to build a schema from an existing schema. It copies everything from the existing schema and then allows you to replace them.
        Parameters:
        existingSchema - the existing schema
        Returns:
        a new schema builder