1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.dbunit.dataset;
23
24 import org.slf4j.Logger;
25 import org.slf4j.LoggerFactory;
26
27
28
29
30
31
32
33
34
35
36
37 public class LowerCaseDataSet extends AbstractDataSet
38 {
39
40
41
42
43 private static final Logger logger = LoggerFactory.getLogger(LowerCaseDataSet.class);
44
45 private final IDataSet _dataSet;
46
47 public LowerCaseDataSet(ITable table) throws DataSetException
48 {
49 this(new DefaultDataSet(table));
50 }
51
52 public LowerCaseDataSet(ITable[] tables) throws DataSetException
53 {
54 this(new DefaultDataSet(tables));
55 }
56
57 public LowerCaseDataSet(IDataSet dataSet) throws DataSetException
58 {
59 _dataSet = dataSet;
60 }
61
62 private ITable createLowerTable(ITable table) throws DataSetException
63 {
64 logger.debug("createLowerTable(table={}) - start", table);
65
66 return new CompositeTable(
67 new LowerCaseTableMetaData(table.getTableMetaData()), table);
68 }
69
70
71
72
73 protected ITableIterator createIterator(boolean reversed)
74 throws DataSetException
75 {
76 logger.debug("createIterator(reversed={}) - start", String.valueOf(reversed));
77
78 return new LowerCaseIterator(reversed ?
79 _dataSet.reverseIterator() : _dataSet.iterator());
80 }
81
82
83
84
85 public String[] getTableNames() throws DataSetException
86 {
87 logger.debug("getTableNames() - start");
88
89 String[] tableNames = super.getTableNames();
90 for (int i = 0; i < tableNames.length; i++)
91 {
92 tableNames[i] = tableNames[i].toLowerCase();
93 }
94 return tableNames;
95 }
96
97 public ITableMetaData getTableMetaData(String tableName) throws DataSetException
98 {
99 logger.debug("getTableMetaData(tableName={}) - start", tableName);
100 return new LowerCaseTableMetaData(super.getTableMetaData(tableName));
101 }
102
103 public ITable getTable(String tableName) throws DataSetException
104 {
105 logger.debug("getTable(tableName={}) - start", tableName);
106 return createLowerTable(super.getTable(tableName));
107 }
108
109
110
111
112 private class LowerCaseIterator implements ITableIterator
113 {
114
115 private final ITableIterator _iterator;
116
117 public LowerCaseIterator(ITableIterator iterator)
118 {
119 _iterator = iterator;
120 }
121
122
123
124
125 public boolean next() throws DataSetException
126 {
127 return _iterator.next();
128 }
129
130 public ITableMetaData getTableMetaData() throws DataSetException
131 {
132 return new LowerCaseTableMetaData(_iterator.getTableMetaData());
133 }
134
135 public ITable getTable() throws DataSetException
136 {
137 return createLowerTable(_iterator.getTable());
138 }
139 }
140 }