Interface QueryService

    • Method Detail

      • registerQuery

        void registerQuery​(QueryDefinition queryDefinition)
                    throws QueryAlreadyRegisteredException
        Registers new query definition in the system so it can be used for executing queries on top of it.
        Parameters:
        queryDefinition - definition of the query to be registered
        Throws:
        QueryAlreadyRegisteredException - in case there is already query registered with given name (queryDefinition.getName())
      • replaceQuery

        void replaceQuery​(QueryDefinition queryDefinition)
        Registers or replaces existing query. Similar to what registerQuery does, though it won't throw exception in case there is already query registered but simply replace it.
        Parameters:
        queryDefinition - definition of the query to be registered/replaced
      • unregisterQuery

        void unregisterQuery​(String uniqueQueryName)
                      throws QueryNotFoundException
        Removes the query definition from the system
        Parameters:
        uniqueQueryName - unique name that query was registered under
        Throws:
        QueryNotFoundException - in case there is no such query registered
      • getQuery

        QueryDefinition getQuery​(String uniqueQueryName)
                          throws QueryNotFoundException
        Returns query definition details that is registered under given uniqueQueryName
        Parameters:
        uniqueQueryName - unique name that query was registered under
        Returns:
        query definition details if found
        Throws:
        QueryNotFoundException - in case there is no such query registered
      • getQueries

        List<QueryDefinition> getQueries​(org.kie.api.runtime.query.QueryContext queryContext)
        Returns list of query definitions registered in the system
        Parameters:
        queryContext - provides pagnition information for the query
        Returns:
        returns list of found queries
      • query

        <T> T query​(String queryName,
                    QueryResultMapper<T> mapper,
                    org.kie.api.runtime.query.QueryContext queryContext,
                    QueryParam... filterParams)
             throws QueryNotFoundException
        Performs query on given query definition that had to be previously registered. Results will be mapped by given mapper and:
        • sorting and paging will be applied based on queryContext
        • filtering of results will be done based on filterParams if given
        Parameters:
        queryName - unique name that query was registered under
        mapper - type of the QueryResultMapper to map raw data set into list of objects
        queryContext - query context carrying paging and sorting details
        filterParams - additional filter parameters to narrow down the result
        Returns:
        results mapped to objects from raw data set
        Throws:
        QueryNotFoundException - in case there is no such query registered
      • query

        <T> T query​(String queryName,
                    QueryResultMapper<T> mapper,
                    org.kie.api.runtime.query.QueryContext queryContext,
                    QueryParamBuilder<?> paramBuilder)
             throws QueryNotFoundException
        Performs query on given query definition that had to be previously registered. Results will be mapped by given mapper and:
        • sorting and paging will be applied based on queryContext
        • filtering of results will be done based on paramBuilder which is an implementation of QueryParamBuilder for building advanced filters
        Parameters:
        queryName - unique name that query was registered under
        mapper - type of the QueryResultMapper to map raw data set into list of objects
        queryContext - query context carrying paging and sorting details
        paramBuilder - implementation of QueryParamBuilder that allows to build custom filters in advanced way
        Returns:
        results mapped to objects from raw data set
        Throws:
        QueryNotFoundException - in case there is no such query registered