View Javadoc
1   /*
2    *
3    * The DbUnit Database Testing Framework
4    * Copyright (C)2002-2004, DbUnit.org
5    *
6    * This library is free software; you can redistribute it and/or
7    * modify it under the terms of the GNU Lesser General Public
8    * License as published by the Free Software Foundation; either
9    * version 2.1 of the License, or (at your option) any later version.
10   *
11   * This library is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14   * Lesser General Public License for more details.
15   *
16   * You should have received a copy of the GNU Lesser General Public
17   * License along with this library; if not, write to the Free Software
18   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19   *
20   */
21  
22  package org.dbunit.operation;
23  
24  import org.dbunit.DatabaseUnitException;
25  import org.dbunit.database.IDatabaseConnection;
26  import org.dbunit.dataset.IDataSet;
27  
28  import java.sql.SQLException;
29  
30  /**
31   * Defines the interface contract for operations performed on the database.
32   *
33   * @author Manuel Laflamme
34   * @version $Revision$
35   * @since Feb 18, 2002
36   */
37  public abstract class DatabaseOperation
38  {
39      /** @see DummyOperation */
40      public static final DatabaseOperation NONE = new DummyOperation();
41      /** @see UpdateOperation */
42      public static final DatabaseOperation UPDATE = new UpdateOperation();
43      /** @see InsertOperation */
44      public static final DatabaseOperation INSERT = new InsertOperation();
45      /** @see RefreshOperation */
46      public static final DatabaseOperation REFRESH = new RefreshOperation();
47      /** @see DeleteOperation */
48      public static final DatabaseOperation DELETE = new DeleteOperation();
49      /** @see DeleteAllOperation */
50      public static final DatabaseOperation DELETE_ALL = new DeleteAllOperation();
51      /** @see TruncateTableOperation */
52      public static final DatabaseOperation TRUNCATE_TABLE = new TruncateTableOperation();
53      /**
54       * @see DeleteAllOperation
55       * @see InsertOperation
56       * @see CompositeOperation
57       */
58      public static final DatabaseOperation CLEAN_INSERT = new CompositeOperation(
59              DELETE_ALL, INSERT);
60  
61      /** @see TransactionOperation */
62      public static final DatabaseOperation TRANSACTION(DatabaseOperation operation) {
63          return new TransactionOperation(operation);
64      }
65  
66      /** @see CloseConnectionOperation */
67      public static final DatabaseOperation CLOSE_CONNECTION(DatabaseOperation operation) {
68          return new CloseConnectionOperation(operation);
69      }
70  
71      /**
72       * Executes this operation on the specified database using the specified
73       * dataset contents.
74       *
75       * @param connection the database connection.
76       * @param dataSet the dataset to be used by this operation.
77       */
78      public abstract void execute(IDatabaseConnection connection,
79              IDataSet dataSet) throws DatabaseUnitException, SQLException;
80  
81      private static class DummyOperation extends DatabaseOperation
82      {
83          @Override
84          public void execute(IDatabaseConnection connection, IDataSet dataSet)
85          {
86          }
87      }
88  }