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 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 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:
-
-