Interface QueryRouter


public interface QueryRouter
An interface used by Queries to route themselves to an appropriate QueryEngine. As of 1.2 QueryRouter only supports routing by DataMap.
Since:
1.2
  • Method Summary

    Modifier and Type Method Description
    QueryEngine engineForDataMap​(DataMap map)
    Returns a QueryEngine that is configured to handle a given DataMap.
    QueryEngine engineForName​(String name)
    Returns a QueryEngine for a given name.
    void route​(QueryEngine engine, Query query, Query substitutedQuery)
    A callback method that allows a query to set its preferred engine during the routing phase.
  • Method Details

    • route

      void route​(QueryEngine engine, Query query, Query substitutedQuery)
      A callback method that allows a query to set its preferred engine during the routing phase. It allows query to further customize its routing, e.g. it is possible to implement query chains that pass multiple queries for execution.
      Parameters:
      engine - engine to use for query execution
      query - A query to execute.
      substitutedQuery - a query that was substituted for "query". Results must be mapped back to substituted query.
    • engineForName

      QueryEngine engineForName​(String name)
      Returns a QueryEngine for a given name. If the name is null, a default QueryEngine is returned. If there's no default engine, an exception is thrown.
      Since:
      4.0
    • engineForDataMap

      QueryEngine engineForDataMap​(DataMap map)
      Returns a QueryEngine that is configured to handle a given DataMap.
      Throws:
      CayenneRuntimeException - if an engine can't be found.
      NullPointerException - if a map parameter is null.