DefaultOperationObserver (cayenne-doc: Cayenne Documentation 5.0-M2 API)
Description: declaration: package: org.apache.cayenne.access.util, class: DefaultOperationObserver

# Class DefaultOperationObserver

java.lang.Object
org.apache.cayenne.access.util.DefaultOperationObserver

All Implemented Interfaces:
  `OperationHints, OperationObserver`

Direct Known Subclasses:
  `IteratedSelectObserver`

public class DefaultOperationObserver extends Object implements OperationObserver
Simple implementation of OperationObserver interface. Useful as a superclass of other implementations of OperationObserver. This implementation only tracks transaction events and exceptions.

This operation observer is unsafe to use in application, since it doesn't rethrow the exceptions immediately, and may cause the database to hang.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected List<Throwable>`
  `globalExceptions`
  `protected Map<Query, Throwable>`
  `queryExceptions`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DefaultOperationObserver()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `List<Throwable>`
  `getGlobalExceptions()`
  Returns a list of global exceptions that occured during data operation run.
  `Map<Query, Throwable>`
  `getQueryExceptions()`
  Returns a list of exceptions that occured during data operation run by query.
  `boolean`
  `hasExceptions()`
  Returns `true` if at least one exception was registered during query execution.
  `boolean`
  `isIteratedResult()`
  Returns `false`.
  `void`
  `nextBatchCount(Query query, int[] resultCount)`
  Callback method invoked after a batch update is executed.
  `void`
  `nextCount(Query query, int resultCount)`
  Callback method invoked after an updating query is executed.
  `void`
  `nextGeneratedRows(Query query, ResultIterator<?> keys, List<ObjectId> idsToUpdate)`
  Closes ResultIterator without reading its data.
  `void`
  `nextGlobalException(Exception ex)`
  Callback method invoked on exceptions that are not tied to a specific query execution, such as JDBC connection exceptions, etc.
  `void`
  `nextQueryException(Query query, Exception ex)`
  Callback method invoked on exceptions that happen during an execution of a specific query.
  `void`
  `nextRows(Query query, List<?> dataRows)`
  Callback method invoked for each processed ResultSet.
  `void`
  `nextRows(Query query, ResultIterator it)`
  Closes ResultIterator without reading its data.
  `void`
  `printExceptions(PrintWriter out)`
  Prints the information about query and global exceptions.

  ### Methods inherited from class Object

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

- ## Field Details

  - ### globalExceptions

    protected List<Throwable> globalExceptions

  - ### queryExceptions

    protected Map<Query, Throwable> queryExceptions

- ## Constructor Details

  - ### DefaultOperationObserver

    public DefaultOperationObserver()

- ## Method Details

  - ### printExceptions

    public void printExceptions(PrintWriter out)
    Prints the information about query and global exceptions.

  - ### getGlobalExceptions

    public List<Throwable> getGlobalExceptions()
    Returns a list of global exceptions that occured during data operation run.

  - ### getQueryExceptions

    public Map<Query, Throwable> getQueryExceptions()
    Returns a list of exceptions that occured during data operation run by query.

  - ### hasExceptions

    public boolean hasExceptions()
    Returns `true` if at least one exception was registered during query execution.

  - ### nextCount

    public void nextCount(Query query, int resultCount)
    Description copied from interface: `OperationObserver`
    Callback method invoked after an updating query is executed.
    Specified by:
      `nextCount` in interface `OperationObserver`

  - ### nextBatchCount

    public void nextBatchCount(Query query, int[] resultCount)
    Description copied from interface: `OperationObserver`
    Callback method invoked after a batch update is executed.
    Specified by:
      `nextBatchCount` in interface `OperationObserver`

  - ### nextRows

    public void nextRows(Query query, List<?> dataRows)
    Description copied from interface: `OperationObserver`
    Callback method invoked for each processed ResultSet.
    Specified by:
      `nextRows` in interface `OperationObserver`

  - ### nextRows

    public void nextRows(Query query, ResultIterator it)
    Closes ResultIterator without reading its data. If you implement a custom subclass, only call super if closing the iterator is what you need.
    Specified by:
      `nextRows` in interface `OperationObserver`

  - ### nextGeneratedRows

    public void nextGeneratedRows(Query query, ResultIterator<?> keys, List<ObjectId> idsToUpdate)
    Closes ResultIterator without reading its data. If you implement a custom subclass, only call super if closing the iterator is what you need.
    Specified by:
      `nextGeneratedRows` in interface `OperationObserver`
    Since:
      4.0

  - ### nextQueryException

    public void nextQueryException(Query query, Exception ex)
    Description copied from interface: `OperationObserver`
    Callback method invoked on exceptions that happen during an execution of a specific query.
    Specified by:
      `nextQueryException` in interface `OperationObserver`

  - ### nextGlobalException

    public void nextGlobalException(Exception ex)
    Description copied from interface: `OperationObserver`
    Callback method invoked on exceptions that are not tied to a specific query execution, such as JDBC connection exceptions, etc.
    Specified by:
      `nextGlobalException` in interface `OperationObserver`

  - ### isIteratedResult

    public boolean isIteratedResult()
    Returns `false`.
    Specified by:
      `isIteratedResult` in interface `OperationHints`