Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.cayenne.query
Class IndirectQuery

    java.lang.Object
      org.apache.cayenne.query.IndirectQuery

All Implemented Interfaces:
  Serializable, Query

Direct Known Subclasses:
  JpaIndirectQuery, NamedQuery, ObjectIdQuery, RelationshipQuery

    public abstract class IndirectQuery

extends Object
implements Query

A convenience superclass of the queries that resolve into some other queries during the routing phase. Provides caching of a replacement query.

Since:
  1.2
Author:
  Andrus Adamchik
See Also:
  Serialized Form

Field Summary
`protected EntityResolver` | `lastResolver`
`protected String` | `name`
`protected Query` | `replacementQuery`

Constructor Summary
`IndirectQuery()`

Method Summary
`protected abstract Query` | `createReplacementQuery(EntityResolver resolver)` Creates a substitute query.
`SQLAction` | `createSQLAction(SQLActionVisitor visitor)` Throws an exception as indirect query should not be executed directly.
`QueryMetadata` | `getMetaData(EntityResolver resolver)` Returns the metadata obtained from the replacement query.
`String` | `getName()` Returns a symbolic name of the query.
`protected Query` | `getReplacementQuery(EntityResolver resolver)` Returns a replacement query, creating it on demand and caching it for reuse.
`void` | `route(QueryRouter router, EntityResolver resolver, Query substitutedQuery)` Delegates routing to a replacement query.
`void` | `setName(String name)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### name

    protected String name

### replacementQuery

    protected transient Query replacementQuery

### lastResolver

    protected transient EntityResolver lastResolver

Constructor Detail

### IndirectQuery

    public IndirectQuery()

Method Detail

### getMetaData

    public QueryMetadata getMetaData(EntityResolver resolver)

  Returns the metadata obtained from the replacement query.

  Specified by:
    `getMetaData` in interface `Query`

### getName

    public String getName()

  Description copied from interface: `Query`
  Returns a symbolic name of the query. The name may be used as a key to find queries stored in the DataMap. Some query implementors reuse the name as a QueryMetadata cache key. Generally the name can be null.

  Specified by:
    `getName` in interface `Query`

### setName

    public void setName(String name)

### route

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

  Delegates routing to a replacement query.

  Specified by:
    `route` in interface `Query`

### createReplacementQuery

    protected abstract Query createReplacementQuery(EntityResolver resolver)

  Creates a substitute query. An implementor is free to provide an arbitrary replacement query.

### getReplacementQuery

    protected Query getReplacementQuery(EntityResolver resolver)

  Returns a replacement query, creating it on demand and caching it for reuse.

### createSQLAction

    public SQLAction createSQLAction(SQLActionVisitor visitor)

  Throws an exception as indirect query should not be executed directly.

  Specified by:
    `createSQLAction` in interface `Query`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2008 Apache Cayenne. All Rights Reserved.