Package org.forum.server.specific_code
Class DataFetchersDelegatePostImpl
java.lang.Object
org.forum.server.specific_code.DataFetchersDelegatePostImpl
- All Implemented Interfaces:
DataFetchersDelegatePost
@Component
public class DataFetchersDelegatePostImpl
extends Object
implements DataFetchersDelegatePost
- Author:
- etienne-sf
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionreactor.core.publisher.Flux<Member>
author
(org.dataloader.BatchLoaderEnvironment batchLoaderEnvironment, graphql.GraphQLContext graphQLContext, List<Post> keys) This methods loads the data for ${dataFetcher.graphQLType}.author.unorderedReturnBatchLoader
(List<Long> keys, org.dataloader.BatchLoaderEnvironment env) This method loads a list of ${dataFetcher.field.name}, based on the list of id to be fetched.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.forum.server.graphql.util.DataFetchersDelegatePost
batchLoader
-
Field Details
-
logger
protected org.slf4j.Logger loggerThe logger for this instance
-
-
Constructor Details
-
DataFetchersDelegatePostImpl
public DataFetchersDelegatePostImpl()
-
-
Method Details
-
author
public reactor.core.publisher.Flux<Member> author(org.dataloader.BatchLoaderEnvironment batchLoaderEnvironment, graphql.GraphQLContext graphQLContext, List<Post> keys) Description copied from interface:DataFetchersDelegatePost
This methods loads the data for ${dataFetcher.graphQLType}.author. It is generated as thegenerateBatchMappingDataFetchers
plugin parameter is true.- Specified by:
author
in interfaceDataFetchersDelegatePost
- Parameters:
batchLoaderEnvironment
- The environement for this batch loaded. You can extract the GraphQLContext from this parameter.keys
- The objects for which the value for the author field must be retrieved.- Returns:
- This method returns
${dataFetcher.batchMappingReturnType.value}
, as defined by thebatchMappingDataFetcherReturnType
plugin parameter.
Please look at the spring-graphql annotation for a documentation on how to return the proper values
-
unorderedReturnBatchLoader
public List<Post> unorderedReturnBatchLoader(List<Long> keys, org.dataloader.BatchLoaderEnvironment env) Description copied from interface:DataFetchersDelegatePost
This method loads a list of ${dataFetcher.field.name}, based on the list of id to be fetched. This method is used by graphql-java java-dataloader to highly optimize the number of requests to the server, when recursing down through the object associations.
You can find more information on this page: graphql-java batching
Important notes:- The list returned may be in any order: this method is called by the default implementation of
batchLoader
, which will sort the value return by this method, according to the given keys list. - There may be missing values (no value for a given key): the default implementation of
batchLoader
will replace these missing values by a null value at this key's position. - One of
batchLoader
orunorderedReturnBatchLoader
must be overriden in the data fetcher implementation. If not, then a NullPointerException will be thrown at runtime, with a proper error message. - If your data storage implementation makes it complex to return values in the same order as the keys list, then it's
easier to override
unorderedReturnBatchLoader
, and let the default implementation ofbatchLoader
order the values - If your data storage implementation makes it easy to return values in the same order as the keys list, then the
execution is a little quicker if you override
batchLoader
, as there would be no sort of the returned list.
- Specified by:
unorderedReturnBatchLoader
in interfaceDataFetchersDelegatePost
- Parameters:
keys
- A list of ID's id, for which the matching objects must be returnedenv
- The Data Loader environment- Returns:
- The list returned may be in any order: this method is called by the default implementation of
-