Update of /cvsroot/dbunit/dbunit/src/java/org/dbunit/dataset/filter
In directory sc8-pr-cvs1:/tmp/cvs-serv17988/dbunit/src/java/org/dbunit/dataset/filter
Modified Files:
Tag: branch-iterator
AbstractTableFilter.java ITableFilter.java
SequenceTableFilter.java
Added Files:
Tag: branch-iterator
SequenceTableIterator.java
Log Message:
Refactored FilteredDataSet to work with new iterator paradigm.
--- NEW FILE: SequenceTableIterator.java ---
/*
*
* The DbUnit Database Testing Framework
* Copyright (C)2002, Manuel Laflamme
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
package org.dbunit.dataset.filter;
import org.dbunit.dataset.ITableIterator;
import org.dbunit.dataset.DataSetException;
import org.dbunit.dataset.ITableMetaData;
import org.dbunit.dataset.ITable;
import org.dbunit.dataset.IDataSet;
/**
* @author Manuel Laflamme
* @since Apr 6, 2003
* @version $Revision: 1.1.2.1 $
*/
public class SequenceTableIterator implements ITableIterator
{
private final String[] _tableNames;
private final IDataSet _dataSet;
private int _index = -1;
public SequenceTableIterator(String[] tableNames, IDataSet dataSet)
{
_tableNames = tableNames;
_dataSet = dataSet;
}
////////////////////////////////////////////////////////////////////////////
// ITableIterator interface
public boolean next() throws DataSetException
{
_index++;
return _index < _tableNames.length;
}
public ITableMetaData getTableMetaData() throws DataSetException
{
return _dataSet.getTableMetaData(_tableNames[_index]);
}
public ITable getTable() throws DataSetException
{
return _dataSet.getTable(_tableNames[_index]);
}
}
Index: AbstractTableFilter.java
===================================================================
RCS file: /cvsroot/dbunit/dbunit/src/java/org/dbunit/dataset/filter/AbstractTableFilter.java,v
retrieving revision 1.1
retrieving revision 1.1.2.1
diff -C2 -d -r1.1 -r1.1.2.1
*** AbstractTableFilter.java 11 Mar 2003 13:26:03 -0000 1.1
--- AbstractTableFilter.java 9 Apr 2003 02:07:14 -0000 1.1.2.1
***************
*** 24,31 ****
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.ITable;
! import org.dbunit.dataset.NoSuchTableException;
- import java.util.List;
import java.util.ArrayList;
/**
--- 24,32 ----
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.ITable;
! import org.dbunit.dataset.ITableIterator;
! import org.dbunit.dataset.ITableMetaData;
import java.util.ArrayList;
+ import java.util.List;
/**
***************
*** 59,76 ****
}
! public ITable[] getTables(IDataSet dataSet) throws DataSetException
{
! ITable[] tables = dataSet.getTables();
! List tableList = new ArrayList();
! for (int i = 0; i < tables.length; i++)
{
! ITable table = tables[i];
! String tableName = table.getTableMetaData().getTableName();
! if (isValidName(tableName))
{
! tableList.add(table);
}
}
- return (ITable[])tableList.toArray(new ITable[0]);
}
}
--- 60,106 ----
}
! public ITableIterator iterator(IDataSet dataSet, boolean reversed)
! throws DataSetException
{
! return new FilterIterator(reversed ?
! dataSet.reverseIterator() : dataSet.iterator());
! }
!
! ////////////////////////////////////////////////////////////////////////////
! // FilterIterator class
!
! private class FilterIterator implements ITableIterator
! {
! private final ITableIterator _iterator;
!
! public FilterIterator(ITableIterator iterator)
{
! _iterator = iterator;
! }
!
! ////////////////////////////////////////////////////////////////////////////
! // ITableIterator interface
!
! public boolean next() throws DataSetException
! {
! while(_iterator.next())
{
! if (isValidName(_iterator.getTableMetaData().getTableName()))
! {
! return true;
! }
}
+ return false;
+ }
+
+ public ITableMetaData getTableMetaData() throws DataSetException
+ {
+ return _iterator.getTableMetaData();
+ }
+
+ public ITable getTable() throws DataSetException
+ {
+ return _iterator.getTable();
}
}
}
Index: ITableFilter.java
===================================================================
RCS file: /cvsroot/dbunit/dbunit/src/java/org/dbunit/dataset/filter/ITableFilter.java,v
retrieving revision 1.1
retrieving revision 1.1.2.1
diff -C2 -d -r1.1 -r1.1.2.1
*** ITableFilter.java 11 Mar 2003 13:26:03 -0000 1.1
--- ITableFilter.java 9 Apr 2003 02:07:14 -0000 1.1.2.1
***************
*** 49,56 ****
/**
! * Returns the tables allowed by this filter from the specified dataset.
*
* @param dataSet the filtered dataset
*/
! public ITable[] getTables(IDataSet dataSet) throws DataSetException;
}
--- 49,57 ----
/**
! * Returns iterator of tables allowed by this filter from the specified dataset.
*
* @param dataSet the filtered dataset
*/
! public ITableIterator iterator(IDataSet dataSet, boolean reversed)
! throws DataSetException;
}
Index: SequenceTableFilter.java
===================================================================
RCS file: /cvsroot/dbunit/dbunit/src/java/org/dbunit/dataset/filter/SequenceTableFilter.java,v
retrieving revision 1.1
retrieving revision 1.1.2.1
diff -C2 -d -r1.1 -r1.1.2.1
*** SequenceTableFilter.java 11 Mar 2003 13:26:03 -0000 1.1
--- SequenceTableFilter.java 9 Apr 2003 02:07:14 -0000 1.1.2.1
***************
*** 105,119 ****
}
! public ITable[] getTables(IDataSet dataSet) throws DataSetException
{
- List tableList = new ArrayList();
String[] tableNames = getTableNames(dataSet);
! for (int i = 0; i < tableNames.length; i++)
! {
! String tableName = tableNames[i];
! tableList.add(dataSet.getTable(tableName));
! }
!
! return (ITable[])tableList.toArray(new ITable[0]);
}
}
--- 105,114 ----
}
! public ITableIterator iterator(IDataSet dataSet, boolean reversed)
! throws DataSetException
{
String[] tableNames = getTableNames(dataSet);
! return new SequenceTableIterator(reversed ?
! DataSetUtils.reverseStringArray(tableNames) : tableNames, dataSet);
}
}
|