All Downloads are FREE. Search and download functionalities are using the official Maven repository.

graphql.execution.conditional.ConditionalNodeDecisionEnvironment Maven / Gradle / Ivy

There is a newer version: 230521-nf-execution
Show newest version
package graphql.execution.conditional;

import graphql.GraphQLContext;
import graphql.execution.CoercedVariables;
import graphql.language.Directive;
import graphql.language.DirectivesContainer;
import graphql.schema.GraphQLSchema;
import org.jetbrains.annotations.Nullable;

import java.util.List;

/**
 * The parameters given to a {@link ConditionalNodeDecision}
 */
public interface ConditionalNodeDecisionEnvironment {

    /**
     * This is an AST {@link graphql.language.Node} that has directives on it.
     * {@link graphql.language.Field}, @{@link graphql.language.FragmentSpread} and
     * {@link graphql.language.InlineFragment} are examples of nodes
     * that can be conditionally included.
     *
     * @return the AST element in question
     */
    DirectivesContainer getDirectivesContainer();

    /**
     * @return the list of directives associated with the {@link #getDirectivesContainer()}
     */
    default List getDirectives() {
        return getDirectivesContainer().getDirectives();
    }

    /**
     * @return a map of the current variables
     */
    CoercedVariables getVariables();

    /**
     * @return the {@link GraphQLSchema} in question - this can be null for certain call paths
     */
    @Nullable GraphQLSchema getGraphQlSchema();

    /**
     * @return a graphql context
     */
    GraphQLContext getGraphQLContext();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy