Class QueryChain

All Implemented Interfaces:
Serializable, Query

public class QueryChain
extends Object
implements Query
A Query decorator for a collection of other queries. Note that QueryChain will always return DataRows (that is if it returns data), as it has no way of knowing how to convert the results to objects.
See Also:
Serialized Form
  • Field Details

  • Constructor Details

    • QueryChain

      public QueryChain()
      Creates an empty QueryChain.
    • QueryChain

      public QueryChain​(Query[] queries)
      Creates a new QueryChain out of an array of queries.
    • QueryChain

      public QueryChain​(Collection<? extends Query> queries)
      Creates a new QueryChain with a collection of Queries.
  • Method Details

    • addQuery

      public void addQuery​(Query query)
      Adds a query to the chain.
    • removeQuery

      public boolean removeQuery​(Query query)
      Removes a query from the chain, returning true if the query was indeed present in the chain and was removed.
    • isEmpty

      public boolean isEmpty()
    • route

      public void route​(QueryRouter router, EntityResolver resolver, Query substitutedQuery)
      Delegates routing to each individual query in the chain. If there is no queries, this method does nothing.
      Specified by:
      route in interface Query
    • createSQLAction

      public SQLAction createSQLAction​(SQLActionVisitor visitor)
      Throws an exception as execution should've been delegated to the queries contained in the chain.
      Specified by:
      createSQLAction in interface Query
    • getMetaData

      public QueryMetadata getMetaData​(EntityResolver resolver)
      Returns default metadata.
      Specified by:
      getMetaData in interface Query