Package io.github.pellse.util.query
Interface QueryUtils
-
public interface QueryUtils
-
-
Method Summary
Static Methods Modifier and Type Method Description static <V,ID,R,IDC extends java.util.Collection<ID>,RC extends java.util.Collection<R>,EX extends java.lang.Throwable>
java.util.Map<ID,V>query(IDC ids, CheckedFunction1<IDC,RC,EX> queryFunction, java.util.function.Function<ID,V> defaultResultProvider, java.util.stream.Collector<R,?,java.util.Map<ID,V>> mapCollector)
static <ID,R,IDC extends java.util.Collection<ID>,RC extends java.util.Collection<R>,EX extends java.lang.Throwable>
java.util.Map<ID,RC>queryOneToMany(IDC ids, CheckedFunction1<IDC,RC,EX> queryFunction, java.util.function.Function<R,ID> idExtractorFromQueryResults, java.util.function.Supplier<RC> collectionFactory)
static <ID,R,IDC extends java.util.Collection<ID>,RC extends java.util.Collection<R>,EX extends java.lang.Throwable>
java.util.Map<ID,RC>queryOneToMany(IDC ids, CheckedFunction1<IDC,RC,EX> queryFunction, java.util.function.Function<R,ID> idExtractorFromQueryResults, java.util.function.Supplier<RC> collectionFactory, MapFactory<ID,RC> mapFactory)
static <ID,R,IDC extends java.util.Collection<ID>,EX extends java.lang.Throwable>
java.util.Map<ID,java.util.List<R>>queryOneToManyAsList(IDC ids, CheckedFunction1<IDC,java.util.List<R>,EX> queryFunction, java.util.function.Function<R,ID> idExtractorFromQueryResults)
static <ID,R,IDC extends java.util.Collection<ID>,EX extends java.lang.Throwable>
java.util.Map<ID,java.util.List<R>>queryOneToManyAsList(IDC ids, CheckedFunction1<IDC,java.util.List<R>,EX> queryFunction, java.util.function.Function<R,ID> idExtractorFromQueryResults, MapFactory<ID,java.util.List<R>> mapFactory)
static <ID,R,IDC extends java.util.Collection<ID>,EX extends java.lang.Throwable>
java.util.Map<ID,java.util.Set<R>>queryOneToManyAsSet(IDC ids, CheckedFunction1<IDC,java.util.Set<R>,EX> queryFunction, java.util.function.Function<R,ID> idExtractorFromQueryResults)
static <ID,R,IDC extends java.util.Collection<ID>,EX extends java.lang.Throwable>
java.util.Map<ID,java.util.Set<R>>queryOneToManyAsSet(IDC ids, CheckedFunction1<IDC,java.util.Set<R>,EX> queryFunction, java.util.function.Function<R,ID> idExtractorFromQueryResults, MapFactory<ID,java.util.Set<R>> mapFactory)
static <ID,R,IDC extends java.util.Collection<ID>,RC extends java.util.Collection<R>,EX extends java.lang.Throwable>
java.util.Map<ID,R>queryOneToOne(IDC ids, CheckedFunction1<IDC,RC,EX> queryFunction, java.util.function.Function<R,ID> idExtractorFromQueryResults)
static <ID,R,IDC extends java.util.Collection<ID>,RC extends java.util.Collection<R>,EX extends java.lang.Throwable>
java.util.Map<ID,R>queryOneToOne(IDC ids, CheckedFunction1<IDC,RC,EX> queryFunction, java.util.function.Function<R,ID> idExtractorFromQueryResults, MapFactory<ID,R> mapFactory)
static <ID,R,IDC extends java.util.Collection<ID>,RC extends java.util.Collection<R>,EX extends java.lang.Throwable>
java.util.Map<ID,R>queryOneToOne(IDC ids, CheckedFunction1<IDC,RC,EX> queryFunction, java.util.function.Function<R,ID> idExtractorFromQueryResults, java.util.function.Function<ID,R> defaultResultProvider)
static <ID,R,IDC extends java.util.Collection<ID>,RC extends java.util.Collection<R>,EX extends java.lang.Throwable>
java.util.Map<ID,R>queryOneToOne(IDC ids, CheckedFunction1<IDC,RC,EX> queryFunction, java.util.function.Function<R,ID> idExtractorFromQueryResults, java.util.function.Function<ID,R> defaultResultProvider, MapFactory<ID,R> mapFactory)
static <T,R,C extends java.util.Collection<? extends T>,RC extends java.util.Collection<? extends R>,EX extends java.lang.Throwable>
java.util.stream.Stream<? extends R>safeApply(C coll, CheckedFunction1<C,RC,EX> queryFunction)
-
-
-
Method Detail
-
queryOneToOne
static <ID,R,IDC extends java.util.Collection<ID>,RC extends java.util.Collection<R>,EX extends java.lang.Throwable> java.util.Map<ID,R> queryOneToOne(IDC ids, CheckedFunction1<IDC,RC,EX> queryFunction, java.util.function.Function<R,ID> idExtractorFromQueryResults) throws EX extends java.lang.Throwable
- Throws:
EX extends java.lang.Throwable
-
queryOneToOne
static <ID,R,IDC extends java.util.Collection<ID>,RC extends java.util.Collection<R>,EX extends java.lang.Throwable> java.util.Map<ID,R> queryOneToOne(IDC ids, CheckedFunction1<IDC,RC,EX> queryFunction, java.util.function.Function<R,ID> idExtractorFromQueryResults, MapFactory<ID,R> mapFactory) throws EX extends java.lang.Throwable
- Throws:
EX extends java.lang.Throwable
-
queryOneToOne
static <ID,R,IDC extends java.util.Collection<ID>,RC extends java.util.Collection<R>,EX extends java.lang.Throwable> java.util.Map<ID,R> queryOneToOne(IDC ids, CheckedFunction1<IDC,RC,EX> queryFunction, java.util.function.Function<R,ID> idExtractorFromQueryResults, java.util.function.Function<ID,R> defaultResultProvider) throws EX extends java.lang.Throwable
- Throws:
EX extends java.lang.Throwable
-
queryOneToOne
static <ID,R,IDC extends java.util.Collection<ID>,RC extends java.util.Collection<R>,EX extends java.lang.Throwable> java.util.Map<ID,R> queryOneToOne(IDC ids, CheckedFunction1<IDC,RC,EX> queryFunction, java.util.function.Function<R,ID> idExtractorFromQueryResults, java.util.function.Function<ID,R> defaultResultProvider, MapFactory<ID,R> mapFactory) throws EX extends java.lang.Throwable
- Throws:
EX extends java.lang.Throwable
-
queryOneToManyAsList
static <ID,R,IDC extends java.util.Collection<ID>,EX extends java.lang.Throwable> java.util.Map<ID,java.util.List<R>> queryOneToManyAsList(IDC ids, CheckedFunction1<IDC,java.util.List<R>,EX> queryFunction, java.util.function.Function<R,ID> idExtractorFromQueryResults) throws EX extends java.lang.Throwable
- Throws:
EX extends java.lang.Throwable
-
queryOneToManyAsList
static <ID,R,IDC extends java.util.Collection<ID>,EX extends java.lang.Throwable> java.util.Map<ID,java.util.List<R>> queryOneToManyAsList(IDC ids, CheckedFunction1<IDC,java.util.List<R>,EX> queryFunction, java.util.function.Function<R,ID> idExtractorFromQueryResults, MapFactory<ID,java.util.List<R>> mapFactory) throws EX extends java.lang.Throwable
- Throws:
EX extends java.lang.Throwable
-
queryOneToManyAsSet
static <ID,R,IDC extends java.util.Collection<ID>,EX extends java.lang.Throwable> java.util.Map<ID,java.util.Set<R>> queryOneToManyAsSet(IDC ids, CheckedFunction1<IDC,java.util.Set<R>,EX> queryFunction, java.util.function.Function<R,ID> idExtractorFromQueryResults) throws EX extends java.lang.Throwable
- Throws:
EX extends java.lang.Throwable
-
queryOneToManyAsSet
static <ID,R,IDC extends java.util.Collection<ID>,EX extends java.lang.Throwable> java.util.Map<ID,java.util.Set<R>> queryOneToManyAsSet(IDC ids, CheckedFunction1<IDC,java.util.Set<R>,EX> queryFunction, java.util.function.Function<R,ID> idExtractorFromQueryResults, MapFactory<ID,java.util.Set<R>> mapFactory) throws EX extends java.lang.Throwable
- Throws:
EX extends java.lang.Throwable
-
queryOneToMany
static <ID,R,IDC extends java.util.Collection<ID>,RC extends java.util.Collection<R>,EX extends java.lang.Throwable> java.util.Map<ID,RC> queryOneToMany(IDC ids, CheckedFunction1<IDC,RC,EX> queryFunction, java.util.function.Function<R,ID> idExtractorFromQueryResults, java.util.function.Supplier<RC> collectionFactory) throws EX extends java.lang.Throwable
- Throws:
EX extends java.lang.Throwable
-
queryOneToMany
static <ID,R,IDC extends java.util.Collection<ID>,RC extends java.util.Collection<R>,EX extends java.lang.Throwable> java.util.Map<ID,RC> queryOneToMany(IDC ids, CheckedFunction1<IDC,RC,EX> queryFunction, java.util.function.Function<R,ID> idExtractorFromQueryResults, java.util.function.Supplier<RC> collectionFactory, MapFactory<ID,RC> mapFactory) throws EX extends java.lang.Throwable
- Throws:
EX extends java.lang.Throwable
-
query
static <V,ID,R,IDC extends java.util.Collection<ID>,RC extends java.util.Collection<R>,EX extends java.lang.Throwable> java.util.Map<ID,V> query(IDC ids, CheckedFunction1<IDC,RC,EX> queryFunction, java.util.function.Function<ID,V> defaultResultProvider, java.util.stream.Collector<R,?,java.util.Map<ID,V>> mapCollector) throws EX extends java.lang.Throwable
- 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 methodEX extends java.lang.Throwable
-
safeApply
static <T,R,C extends java.util.Collection<? extends T>,RC extends java.util.Collection<? extends R>,EX extends java.lang.Throwable> java.util.stream.Stream<? extends R> safeApply(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:
-
-