View Javadoc

1   package db;
2   
3   import org.dbunit.dataset.Column;
4   import org.dbunit.dataset.DataSetException;
5   import org.dbunit.dataset.DefaultDataSet;
6   import org.dbunit.dataset.DefaultTable;
7   import org.dbunit.dataset.datatype.DataType;
8   
9   import fit.Fixture;
10  import fit.Parse;
11  
12  public class Table extends Fixture {
13  
14  	private String tableName;
15  	
16  	private DefaultTable table;
17  	
18  	private boolean columnBinding = false;
19  	
20  	private int columnSize;
21  	
22  	@Override
23  	public void doTable(Parse parse) {
24  		super.doTable(parse);
25  		DefaultDataSet dataSet = DatabaseContext.getDataSet();
26  		dataSet.addTable(table);
27  	}
28  	
29  	private void bindColumn(Parse cells) {
30  		columnSize = cells.size();
31  		Column[] columns = new Column[columnSize];
32  		for (int index = 0; index < cells.size(); index++) {
33  			Parse cell = cells.at(index);
34  			columns[index] = new Column(cell.text(), DataType.UNKNOWN);
35  		}
36  		table = new DefaultTable(tableName, columns);
37  	}
38  
39  	public void doCells(Parse cells) {
40  		if(!columnBinding){
41  			if(tableName == null)
42  			{
43  				tableName = cells.more.text();
44  				table = new DefaultTable(tableName);
45  			}
46  			else
47  			{
48  				bindColumn(cells);
49  				columnBinding = true;
50  			}
51  		}
52  		else{
53  			Object[] row = new Object[columnSize];
54  			for (int index = 0; index < columnSize; index++) {
55  				String text = cells.at(index).text();
56  				if(text.equals("[NULL]")){
57  					row[index] = null;
58  				}
59  				else
60  				{
61  					row[index] = text;
62  				}
63  			}
64  			try {
65  				table.addRow(row);
66  			} catch (DataSetException e) {
67  				exception(cells, e);
68  			}
69  		}
70  	}
71  	
72  }