Package io.github.pellse.util.query
Interface QueryUtils
public interface QueryUtils
-
Method Summary
Static MethodsModifier and TypeMethodDescriptionstatic <V,ID, R, IDC extends Collection<ID>, RC extends Collection<R>, EX extends Throwable>
Map<ID,V> query(IDC ids, CheckedFunction1<IDC, RC, EX> queryFunction, Function<ID, V> defaultResultProvider, Collector<R, ?, Map<ID, V>> mapCollector) static <ID,R, IDC extends Collection<ID>, RC extends Collection<R>, EX extends Throwable>
Map<ID,RC> queryOneToMany(IDC ids, CheckedFunction1<IDC, RC, EX> queryFunction, Function<R, ID> idExtractorFromQueryResults, Supplier<RC> collectionFactory) static <ID,R, IDC extends Collection<ID>, RC extends Collection<R>, EX extends Throwable>
Map<ID,RC> queryOneToMany(IDC ids, CheckedFunction1<IDC, RC, EX> queryFunction, Function<R, ID> idExtractorFromQueryResults, Supplier<RC> collectionFactory, MapFactory<ID, RC> mapFactory) static <ID,R, IDC extends Collection<ID>, EX extends Throwable>
Map<ID,List<R>> queryOneToManyAsList(IDC ids, CheckedFunction1<IDC, List<R>, EX> queryFunction, Function<R, ID> idExtractorFromQueryResults) static <ID,R, IDC extends Collection<ID>, EX extends Throwable>
Map<ID,List<R>> queryOneToManyAsList(IDC ids, CheckedFunction1<IDC, List<R>, EX> queryFunction, Function<R, ID> idExtractorFromQueryResults, MapFactory<ID, List<R>> mapFactory) static <ID,R, IDC extends Collection<ID>, EX extends Throwable>
Map<ID,Set<R>> queryOneToManyAsSet(IDC ids, CheckedFunction1<IDC, Set<R>, EX> queryFunction, Function<R, ID> idExtractorFromQueryResults) static <ID,R, IDC extends Collection<ID>, EX extends Throwable>
Map<ID,Set<R>> queryOneToManyAsSet(IDC ids, CheckedFunction1<IDC, Set<R>, EX> queryFunction, Function<R, ID> idExtractorFromQueryResults, MapFactory<ID, Set<R>> mapFactory) static <ID,R, IDC extends Collection<ID>, RC extends Collection<R>, EX extends Throwable>
Map<ID,R> queryOneToOne(IDC ids, CheckedFunction1<IDC, RC, EX> queryFunction, Function<R, ID> idExtractorFromQueryResults) static <ID,R, IDC extends Collection<ID>, RC extends Collection<R>, EX extends Throwable>
Map<ID,R> queryOneToOne(IDC ids, CheckedFunction1<IDC, RC, EX> queryFunction, Function<R, ID> idExtractorFromQueryResults, MapFactory<ID, R> mapFactory) static <ID,R, IDC extends Collection<ID>, RC extends Collection<R>, EX extends Throwable>
Map<ID,R> queryOneToOne(IDC ids, CheckedFunction1<IDC, RC, EX> queryFunction, Function<R, ID> idExtractorFromQueryResults, Function<ID, R> defaultResultProvider) static <ID,R, IDC extends Collection<ID>, RC extends Collection<R>, EX extends Throwable>
Map<ID,R> queryOneToOne(IDC ids, CheckedFunction1<IDC, RC, EX> queryFunction, Function<R, ID> idExtractorFromQueryResults, Function<ID, R> defaultResultProvider, MapFactory<ID, R> mapFactory) static <T,R, C extends Collection<? extends T>, RC extends Collection<? extends R>, EX extends Throwable>
Stream<? extends R>safeApply(C coll, CheckedFunction1<C, RC, EX> queryFunction)
-
Method Details
-
queryOneToOne
static <ID,R, Map<ID,IDC extends Collection<ID>, RC extends Collection<R>, EX extends Throwable> R> queryOneToOne(IDC ids, CheckedFunction1<IDC, RC, throws EXEX> queryFunction, Function<R, ID> idExtractorFromQueryResults) - Throws:
EX extends Throwable
-
queryOneToOne
static <ID,R, Map<ID,IDC extends Collection<ID>, RC extends Collection<R>, EX extends Throwable> R> queryOneToOne(IDC ids, CheckedFunction1<IDC, RC, throws EXEX> queryFunction, Function<R, ID> idExtractorFromQueryResults, MapFactory<ID, R> mapFactory) - Throws:
EX extends Throwable
-
queryOneToOne
static <ID,R, Map<ID,IDC extends Collection<ID>, RC extends Collection<R>, EX extends Throwable> R> queryOneToOne(IDC ids, CheckedFunction1<IDC, RC, throws EXEX> queryFunction, Function<R, ID> idExtractorFromQueryResults, Function<ID, R> defaultResultProvider) - Throws:
EX extends Throwable
-
queryOneToOne
static <ID,R, Map<ID,IDC extends Collection<ID>, RC extends Collection<R>, EX extends Throwable> R> queryOneToOne(IDC ids, CheckedFunction1<IDC, RC, throws EXEX> queryFunction, Function<R, ID> idExtractorFromQueryResults, Function<ID, R> defaultResultProvider, MapFactory<ID, R> mapFactory) - Throws:
EX extends Throwable
-
queryOneToManyAsList
static <ID,R, Map<ID,IDC extends Collection<ID>, EX extends Throwable> List<R>> queryOneToManyAsList(IDC ids, CheckedFunction1<IDC, List<R>, throws EXEX> queryFunction, Function<R, ID> idExtractorFromQueryResults) - Throws:
EX extends Throwable
-
queryOneToManyAsList
static <ID,R, Map<ID,IDC extends Collection<ID>, EX extends Throwable> List<R>> queryOneToManyAsList(IDC ids, CheckedFunction1<IDC, List<R>, throws EXEX> queryFunction, Function<R, ID> idExtractorFromQueryResults, MapFactory<ID, List<R>> mapFactory) - Throws:
EX extends Throwable
-
queryOneToManyAsSet
static <ID,R, Map<ID,IDC extends Collection<ID>, EX extends Throwable> Set<R>> queryOneToManyAsSet(IDC ids, CheckedFunction1<IDC, Set<R>, throws EXEX> queryFunction, Function<R, ID> idExtractorFromQueryResults) - Throws:
EX extends Throwable
-
queryOneToManyAsSet
static <ID,R, Map<ID,IDC extends Collection<ID>, EX extends Throwable> Set<R>> queryOneToManyAsSet(IDC ids, CheckedFunction1<IDC, Set<R>, throws EXEX> queryFunction, Function<R, ID> idExtractorFromQueryResults, MapFactory<ID, Set<R>> mapFactory) - Throws:
EX extends Throwable
-
queryOneToMany
static <ID,R, Map<ID,IDC extends Collection<ID>, RC extends Collection<R>, EX extends Throwable> RC> queryOneToMany(IDC ids, CheckedFunction1<IDC, RC, throws EXEX> queryFunction, Function<R, ID> idExtractorFromQueryResults, Supplier<RC> collectionFactory) - Throws:
EX extends Throwable
-
queryOneToMany
static <ID,R, Map<ID,IDC extends Collection<ID>, RC extends Collection<R>, EX extends Throwable> RC> queryOneToMany(IDC ids, CheckedFunction1<IDC, RC, throws EXEX> queryFunction, Function<R, ID> idExtractorFromQueryResults, Supplier<RC> collectionFactory, MapFactory<ID, RC> mapFactory) - Throws:
EX extends Throwable
-
query
static <V,ID, Map<ID,R, IDC extends Collection<ID>, RC extends Collection<R>, EX extends Throwable> V> query(IDC ids, CheckedFunction1<IDC, RC, throws EXEX> queryFunction, Function<ID, V> defaultResultProvider, Collector<R, ?, Map<ID, V>> mapCollector) - Type Parameters:
V- Type of each value representing the result fromqueryFunctionassociated with each ID, will map to either<R>when called fromqueryOneToOneor<RC>when called fromqueryOneToManyi.e. a collection of<R>. This is conceptually a union type<R> | <RC>ID- Type of the ids passed toqueryFunctione.g.Long,StringR- Type of individual results returned from the queryFunctionIDC- Type of theCollectioncontaining the ids of type<ID>e.g.List<Long>,Set<String>, etc.RC- Type of theCollectioncontaining the results of type<R>e.g.List<Customer>,Set<Order>, etc.EX- Type of the exception that can be thrown by thequeryFunction- Parameters:
ids- The collection of ids to pass to thequeryFunctionqueryFunction- The query function to call (rest call, spring data repository method call, etc.)defaultResultProvider- The default value to generate if no result for a specific id passed to thequeryFunctione.g. an empty collection, a default value, an empty string, etc.mapCollector- The collector used to collect the stream of results returned byqueryFunction. It will transform a stream of results to aMap<ID, V>- Returns:
- A
Mapof the results from invoking thequeryFunctionwith key = correlation ID, value = result associated with ID - Throws:
EX- IfqueryFunctionthrows an exception, that exception will be propagated to the caller of this method
-
safeApply
static <T,R, Stream<? extends R> safeApplyC extends Collection<? extends T>, RC extends Collection<? extends R>, EX extends Throwable> (C coll, CheckedFunction1<C, RC, EX> queryFunction) - Type Parameters:
T-R-C-RC-EX-- Parameters:
coll- The list of arguments to pass to the queryFunction e.g.List<Long>for passing a list of IDs to query a databasequeryFunction- The function to apply the list of arguments- Returns:
-