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: 810 $
35   * @since Feb 18, 2002
36   */
37  public abstract class DatabaseOperation
38  {
39      public static final DatabaseOperation NONE = new DummyOperation();
40      public static final DatabaseOperation UPDATE = new UpdateOperation();
41      public static final DatabaseOperation INSERT = new InsertOperation();
42      public static final DatabaseOperation REFRESH = new RefreshOperation();
43      public static final DatabaseOperation DELETE = new DeleteOperation();
44      public static final DatabaseOperation DELETE_ALL = new DeleteAllOperation();
45      public static final DatabaseOperation TRUNCATE_TABLE = new TruncateTableOperation();
46      public static final DatabaseOperation CLEAN_INSERT = new CompositeOperation(
47              DELETE_ALL, INSERT);    
48      public static final DatabaseOperation TRANSACTION(DatabaseOperation operation) {
49        return new TransactionOperation(operation);
50      }
51      public static final DatabaseOperation CLOSE_CONNECTION(DatabaseOperation operation) {
52        return new CloseConnectionOperation(operation);
53      }
54  
55      /**
56       * Executes this operation on the specified database using the specified
57       * dataset contents.
58       *
59       * @param connection the database connection.
60       * @param dataSet the dataset to be used by this operation.
61       */
62      public abstract void execute(IDatabaseConnection connection,
63              IDataSet dataSet) throws DatabaseUnitException, SQLException;
64  
65      private static class DummyOperation extends DatabaseOperation
66      {
67          public void execute(IDatabaseConnection connection, IDataSet dataSet)
68          {
69          }
70      }
71  }
72  
73  
74  
75  
76  
77