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

graphql.execution.preparsed.PreparsedDocumentProvider Maven / Gradle / Ivy

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


import graphql.ExecutionInput;
import graphql.PublicSpi;

import java.util.concurrent.CompletableFuture;
import java.util.function.Function;

/**
 * Interface that allows clients to hook in Document caching and/or the whitelisting of queries.
 */
@PublicSpi
public interface PreparsedDocumentProvider {
    /**
     * This is called to get a "cached" pre-parsed query and if its not present, then the "parseAndValidateFunction"
     * can be called to parse and validate the query.
     * 

* Note - the "parseAndValidateFunction" MUST be called if you dont have a per parsed version of the query because it not only parses * and validates the query, it invokes {@link graphql.execution.instrumentation.Instrumentation} calls as well for parsing and validation. * if you dont make a call back on this then these wont happen. * * @param executionInput The {@link graphql.ExecutionInput} containing the query * @param parseAndValidateFunction If the query has not be pre-parsed, this function MUST be called to parse and validate it * @return an instance of {@link PreparsedDocumentEntry} *

* @deprecated - use {@link #getDocumentAsync(ExecutionInput executionInput, Function parseAndValidateFunction)} */ @Deprecated PreparsedDocumentEntry getDocument(ExecutionInput executionInput, Function parseAndValidateFunction); /** * This is called to get a "cached" pre-parsed query and if its not present, then the "parseAndValidateFunction" * can be called to parse and validate the query. *

* Note - the "parseAndValidateFunction" MUST be called if you dont have a per parsed version of the query because it not only parses * and validates the query, it invokes {@link graphql.execution.instrumentation.Instrumentation} calls as well for parsing and validation. * if you dont make a call back on this then these wont happen. * * @param executionInput The {@link graphql.ExecutionInput} containing the query * @param parseAndValidateFunction If the query has not be pre-parsed, this function MUST be called to parse and validate it * @return a promise to an {@link PreparsedDocumentEntry} */ default CompletableFuture getDocumentAsync(ExecutionInput executionInput, Function parseAndValidateFunction) { return CompletableFuture.completedFuture(getDocument(executionInput, parseAndValidateFunction)); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy