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 from queryFunction associated with each ID, will map to either <R> when called from queryOneToOne or <RC> when called from queryOneToMany i.e. a collection of <R>. This is conceptually a union type <R> | <RC>
        ID - Type of the ids passed to queryFunction e.g. Long, String
        R - Type of individual results returned from the queryFunction
        IDC - Type of the Collection containing the ids of type <ID> e.g. List<Long>, Set<String>, etc.
        RC - Type of the Collection containing the results of type <R> e.g. List<Customer>, Set<Order>, etc.
        EX - Type of the exception that can be thrown by the queryFunction
        Parameters:
        ids - The collection of ids to pass to the queryFunction
        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 the queryFunction e.g. an empty collection, a default value, an empty string, etc.
        mapCollector - The collector used to collect the stream of results returned by queryFunction. It will transform a stream of results to a Map<ID, V>
        Returns:
        A Map of the results from invoking the queryFunction with key = correlation ID, value = result associated with ID
        Throws:
        EX - If queryFunction throws an exception, that exception will be propagated to the caller of this method
        EX 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 database
        queryFunction - The function to apply the list of arguments
        Returns: