Package graphql.schema
Interface LightDataFetcher<T>
- Type Parameters:
T
- for two
- All Superinterfaces:
DataFetcher<T>
,TrivialDataFetcher<T>
- All Known Implementing Classes:
PropertyDataFetcher
,SingletonPropertyDataFetcher
A
LightDataFetcher
is a specialised version of DataFetcher
that is passed more lightweight arguments
when it is asked to fetch values. The most common example of this is the PropertyDataFetcher
which does not need
all the DataFetchingEnvironment
values to perform its duties.-
Method Summary
Modifier and TypeMethodDescriptionget
(GraphQLFieldDefinition fieldDefinition, Object sourceObject, Supplier<DataFetchingEnvironment> environmentSupplier) This is called to by the engine to get a value from the source object in a lightweight fashion.Methods inherited from interface graphql.schema.DataFetcher
get
-
Method Details
-
get
T get(GraphQLFieldDefinition fieldDefinition, Object sourceObject, Supplier<DataFetchingEnvironment> environmentSupplier) throws Exception This is called to by the engine to get a value from the source object in a lightweight fashion. Only the field and source object are passed in a materialised way. The more heavy weightDataFetchingEnvironment
is wrapped in a supplier that is only created on demand.If you are a lightweight data fetcher (like
PropertyDataFetcher
is) then you can implement this method to have a more lightweight method invocation. However, if you need field arguments etc. during fetching (most custom fetchers will) then you should use implementDataFetcher.get(DataFetchingEnvironment)
.- Parameters:
fieldDefinition
- the graphql field definitionsourceObject
- the source object to get a value fromenvironmentSupplier
- a supplier of theDataFetchingEnvironment
that creates it lazily- Returns:
- a value of type T. May be wrapped in a
DataFetcherResult
- Throws:
Exception
- to relieve the implementations from having to wrap checked exceptions. Any exception thrown from aDataFetcher
will eventually be handled by the registeredDataFetcherExceptionHandler
and the related field will have a value ofnull
in the result.
-