KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > dbunit > dataset > stream > DataSetProducerAdapter


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

31 public class DataSetProducerAdapter implements IDataSetProducer
32 {
33     private static final IDataSetConsumer EMPTY_CONSUMER = new DefaultConsumer();
34
35     private final ITableIterator _iterator;
36     private IDataSetConsumer _consumer = EMPTY_CONSUMER;
37
38     public DataSetProducerAdapter(ITableIterator iterator)
39     {
40         _iterator = iterator;
41     }
42
43     public DataSetProducerAdapter(IDataSet dataSet) throws DataSetException
44     {
45         _iterator = dataSet.iterator();
46     }
47
48     ////////////////////////////////////////////////////////////////////////////
49
// IDataSetProducer interface
50

51     public void setConsumer(IDataSetConsumer consumer) throws DataSetException
52     {
53         _consumer = consumer;
54     }
55
56     public void produce() throws DataSetException
57     {
58         _consumer.startDataSet();
59         while(_iterator.next())
60         {
61             ITable table = _iterator.getTable();
62             ITableMetaData metaData = table.getTableMetaData();
63
64             _consumer.startTable(metaData);
65             try
66             {
67                 Column[] columns = metaData.getColumns();
68                 if (columns.length == 0)
69                 {
70                     _consumer.endTable();
71                     continue;
72                 }
73
74                 for (int i = 0; ; i++)
75                 {
76                     Object JavaDoc[] values = new Object JavaDoc[columns.length];
77                     for (int j = 0; j < columns.length; j++)
78                     {
79                         Column column = columns[j];
80                         values[j] = table.getValue(i, column.getColumnName());
81                     }
82                     _consumer.row(values);
83                 }
84             }
85             catch (RowOutOfBoundsException e)
86             {
87                 // end of table
88
_consumer.endTable();
89             }
90         }
91         _consumer.endDataSet();
92     }
93 }
94
95
Popular Tags