Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/objectstyle/cayenne/access/OperationObserver.java


1   /* ====================================================================
2    * 
3    * The ObjectStyle Group Software License, Version 1.0 
4    *
5    * Copyright (c) 2002-2003 The ObjectStyle Group 
6    * and individual authors of the software.  All rights reserved.
7    *
8    * Redistribution and use in source and binary forms, with or without
9    * modification, are permitted provided that the following conditions
10   * are met:
11   *
12   * 1. Redistributions of source code must retain the above copyright
13   *    notice, this list of conditions and the following disclaimer. 
14   *
15   * 2. Redistributions in binary form must reproduce the above copyright
16   *    notice, this list of conditions and the following disclaimer in
17   *    the documentation and/or other materials provided with the
18   *    distribution.
19   *
20   * 3. The end-user documentation included with the redistribution, if
21   *    any, must include the following acknowlegement:  
22   *       "This product includes software developed by the 
23   *        ObjectStyle Group (http://objectstyle.org/)."
24   *    Alternately, this acknowlegement may appear in the software itself,
25   *    if and wherever such third-party acknowlegements normally appear.
26   *
27   * 4. The names "ObjectStyle Group" and "Cayenne" 
28   *    must not be used to endorse or promote products derived
29   *    from this software without prior written permission. For written 
30   *    permission, please contact andrus@objectstyle.org.
31   *
32   * 5. Products derived from this software may not be called "ObjectStyle"
33   *    nor may "ObjectStyle" appear in their names without prior written
34   *    permission of the ObjectStyle Group.
35   *
36   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
37   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
38   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
39   * DISCLAIMED.  IN NO EVENT SHALL THE OBJECTSTYLE GROUP OR
40   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
42   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
43   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
44   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
45   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
46   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
47   * SUCH DAMAGE.
48   * ====================================================================
49   *
50   * This software consists of voluntary contributions made by many
51   * individuals on behalf of the ObjectStyle Group.  For more
52   * information on the ObjectStyle Group, please see
53   * <http://objectstyle.org/>.
54   *
55   */ 
56  
57  package org.objectstyle.cayenne.access;
58  
59  import java.util.List;
60  
61  import org.objectstyle.cayenne.query.Query;
62  
63  /**
64   * Defines a set of callback methods for a QueryEngine to notify interested 
65   * object about different stages of queries execution. Superinterface, OperationHints,
66   * defines information methods that are needed to define query execution 
67   * strategy. This Interface adds callback methods.
68   *
69   * <p>Implementing objects are passed to a QueryEngine that will execute
70   * one or more queries. QueryEngine will pass results of the execution 
71   * of any kind of queries - selects, updates, store proc. calls, etc..
72   * to the interested objects. This includes result counts, created objects, 
73   * thrown exceptions, etc.</p>
74   * 
75   * <p><i>For more information see <a href="../../../../../../userguide/index.html"
76   * target="_top">Cayenne User Guide.</a></i></p>
77   * 
78   * @see org.objectstyle.cayenne.access.QueryEngine
79   * 
80   * @author Andrei Adamchik
81   */
82  public interface OperationObserver extends OperationHints {
83    
84    /** 
85     * Invoked after the update (can be insert, delete or update query) is executed.
86     */
87      public void nextCount(Query query, int resultCount);
88      
89    /** 
90     * Invoked after the batch update is executed
91     */
92    public void nextBatchCount(Query query, int[] resultCount);
93      
94      
95      /** Invoked after the next query results are read. */
96      public void nextDataRows(Query query, List dataRows);
97      
98      
99       /** 
100    * Invoked after the next query is invoked, if a query required
101    * results to be returned as a ResultIterator. OperationObserver 
102    * is responsible for closing the ResultIterator.
103    */
104     public void nextDataRows(Query q, ResultIterator it);
105   
106   
107     /** Invoked when an exception occurs during query execution. */
108     public void nextQueryException(Query query, Exception ex);
109     
110     /** 
111      * Invoked when a "global" exception occurred, such as JDBC
112      * connection exception, etc.
113      */
114     public void nextGlobalException(Exception ex);
115     
116     
117     /** 
118      * Invoked when a batch of queries was processed as a single transaction,
119      * and this transaction was successfully committed.
120      */
121     public void transactionCommitted();
122     
123     
124     /** 
125      * Invoked when a batch of queries was processed as a single transaction,
126      *  and this transaction was failed and was rolled back. 
127      */
128     public void transactionRolledback();
129     
130 }
131