org.apache.cayenne.query

## Class AbstractQuery

- java.lang.Object
- - org.apache.cayenne.query.AbstractQuery

- All Implemented Interfaces:
    Serializable, ConfigurationNode, Query
  Direct Known Subclasses:
    ProcedureQuery, QualifiedQuery, SQLTemplate

      public abstract class AbstractQuery
      extends Object
      implements Query

  A common superclass of Cayenne queries.
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected DataMap` | `dataMap`
    `protected String` | `name`
    `protected Object` | `root` The root object this query.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractQuery()`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `<T> T` | `acceptVisitor(ConfigurationNodeVisitor<T> visitor)`
    `abstract SQLAction` | `createSQLAction(SQLActionVisitor visitor)` A callback method invoked by Cayenne during the final execution phase of the query run.
    `DataMap` | `getDataMap()`
    `QueryMetadata` | `getMetaData(EntityResolver resolver)` Returns default select parameters.
    `String` | `getName()` Returns a symbolic name of the query.
    `Object` | `getRoot()` Returns the root of this query.
    `void` | `route(QueryRouter router, EntityResolver resolver, Query substitutedQuery)` Implements default routing mechanism relying on the EntityResolver to find DataMap based on the query root.
    `void` | `setDataMap(DataMap dataMap)`
    `void` | `setName(String name)` Sets a symbolic name of the query.
    `void` | `setRoot(Object value)` Sets the root of the query
    `String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### root

          protected Object root

      The root object this query. May be an entity name, Java class, ObjEntity or DbEntity, depending on the specific query and how it was constructed.

    - #### name

          protected String name

    - #### dataMap

          protected DataMap dataMap

  - ### Constructor Detail

    - #### AbstractQuery

          public AbstractQuery()

  - ### Method Detail

    - #### acceptVisitor

          public <T> T acceptVisitor(ConfigurationNodeVisitor<T> visitor)

      Specified by:
        `acceptVisitor` in interface `ConfigurationNode`
      Since:
        3.1

    - #### getDataMap

          public DataMap getDataMap()

      Specified by:
        `getDataMap` in interface `Query`
      Since:
        3.1

    - #### setDataMap

          public void setDataMap(DataMap dataMap)

      Since:
        3.1

    - #### getName

          public String getName()

      Returns a symbolic name of the query.
      Specified by:
        `getName` in interface `Query`
      Since:
        1.1

    - #### setName

          public void setName(String name)

      Sets a symbolic name of the query.
      Since:
        1.1

    - #### getMetaData

          public QueryMetadata getMetaData(EntityResolver resolver)

      Returns default select parameters.
      Specified by:
        `getMetaData` in interface `Query`
      Since:
        1.2

    - #### getRoot

          public Object getRoot()

      Returns the root of this query.

    - #### setRoot

          public void setRoot(Object value)

      Sets the root of the query
      Parameters:
        `value` - The new root
      Throws:
        `IllegalArgumentException` - if value is not a String, ObjEntity, DbEntity, Procedure, DataMap, Class or null.

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### createSQLAction

          public abstract SQLAction createSQLAction(SQLActionVisitor visitor)

      Description copied from interface: `Query`
      A callback method invoked by Cayenne during the final execution phase of the query run. A concrete query implementation is given a chance to decide how it should be handled. Implementors can pick an appropriate method of the SQLActionVisitor to handle itself, create a custom SQLAction of its own, or substitute itself with another query that should be used for SQLAction construction.
      Specified by:
        `createSQLAction` in interface `Query`
      Since:
        1.2

    - #### route

          public void route(QueryRouter router,
                            EntityResolver resolver,
                            Query substitutedQuery)

      Implements default routing mechanism relying on the EntityResolver to find DataMap based on the query root. This mechanism should be sufficient for most queries that "know" their root.
      Specified by:
        `route` in interface `Query`
      Since:
        1.2

Copyright © 2001–2018 Apache Cayenne. All rights reserved.