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 fromqueryFunction
associated with each ID, will map to either<R>
when called fromqueryOneToOne
or<RC>
when called fromqueryOneToMany
i.e. a collection of<R>
. This is conceptually a union type<R> | <RC>
ID
- Type of the ids passed toqueryFunction
e.g.Long
,String
R
- Type of individual results returned from the queryFunctionIDC
- Type of theCollection
containing the ids of type<ID>
e.g.List<Long>
,Set<String>
, etc.RC
- Type of theCollection
containing 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 thequeryFunction
queryFunction
- 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 thequeryFunction
e.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
Map
of the results from invoking thequeryFunction
with key = correlation ID, value = result associated with ID - Throws:
EX
- IfqueryFunction
throws 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:
-