KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > dbunit > database > DatabaseTableIterator


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 package org.dbunit.database;
22
23 import org.dbunit.dataset.*;
24
25 /**
26  * @author Manuel Laflamme
27  * @since Apr 12, 2003
28  * @version $Revision: 1.4 $
29  */

30 public class DatabaseTableIterator implements ITableIterator
31 {
32     private final String JavaDoc[] _tableNames;
33     private final IDataSet _dataSet;
34     private IResultSetTable _currentTable;
35     private int _index = -1;
36
37     public DatabaseTableIterator(String JavaDoc[] tableNames, IDataSet dataSet)
38     {
39         _tableNames = tableNames;
40         _dataSet = dataSet;
41         _currentTable = null;
42     }
43
44     ////////////////////////////////////////////////////////////////////////////
45
// ITableIterator interface
46

47     public boolean next() throws DataSetException
48     {
49         _index++;
50
51         // Ensure previous table is closed
52
if (_currentTable != null)
53         {
54             _currentTable.close();
55             _currentTable = null;
56         }
57
58         return _index < _tableNames.length;
59     }
60
61     public ITableMetaData getTableMetaData() throws DataSetException
62     {
63         return _dataSet.getTableMetaData(_tableNames[_index]);
64     }
65
66     public ITable getTable() throws DataSetException
67     {
68         if (_currentTable == null)
69         {
70             _currentTable = (IResultSetTable)_dataSet.getTable(_tableNames[_index]);
71         }
72         return _currentTable;
73     }
74 }
75
Popular Tags