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

graphql.execution.instrumentation.fieldvalidation.FieldAndArguments Maven / Gradle / Ivy

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

import graphql.PublicApi;
import graphql.execution.ResultPath;
import graphql.language.Field;
import graphql.schema.GraphQLCompositeType;
import graphql.schema.GraphQLFieldDefinition;

import java.util.Map;

/**
 * This represents a field and its arguments that may be validated.
 */
@PublicApi
public interface FieldAndArguments {

    /**
     * @return the field in play
     */
    Field getField();

    /**
     * @return the runtime type definition of the field
     */
    GraphQLFieldDefinition getFieldDefinition();

    /**
     * @return the containing type of the field
     */
    GraphQLCompositeType getParentType();

    /**
     * @return the parent arguments or null if there is no parent
     */
    FieldAndArguments getParentFieldAndArguments();

    /**
     * @return the path to this field
     */
    ResultPath getPath();

    /**
     * This will be a map of argument names to argument values.  This will contain any variables transferred
     * along with any default values ready for execution.  This is what you use to do most of your validation against
     *
     * @return a map of argument names to values
     */
    Map getArgumentValuesByName();

    /**
     * This will return the named field argument value and cast it to the desired type.
     *
     * @param argumentName the name of the argument
     * @param           the type of the underlying value object
     *
     * @return a cast object of type T
     */
    @SuppressWarnings("TypeParameterUnusedInFormals")
     T getArgumentValue(String argumentName);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy