Refactor tabular output for eventual re-use printing table metadata.
[squelch.git] / src / main / java / net / jaekl / squelch / stmt / TabularResultSet.java
1 package net.jaekl.squelch.stmt;
2
3 import java.sql.ResultSet;
4 import java.sql.ResultSetMetaData;
5 import java.sql.SQLException;
6
7 import net.jaekl.squelch.sql.Column;
8 import net.jaekl.squelch.sql.Row;
9
10 public class TabularResultSet extends Tabular {
11         private ResultSet m_resultSet;
12         
13         public TabularResultSet(ResultSet resultSet) {
14                 m_resultSet = resultSet;
15         }
16
17         @Override
18         Column[] getCols() throws SQLException {
19                 ResultSetMetaData metaData = m_resultSet.getMetaData();
20                 int colCount = metaData.getColumnCount();
21                 
22                 Column cols[] = new Column[colCount];
23                 for (int idx = 1; idx <= colCount; ++idx) {
24                         String label = metaData.getColumnLabel(idx);
25                         Class<?> clazz = classForSqlType(metaData.getColumnType(idx));
26                         int width = metaData.getColumnDisplaySize(idx);
27                         cols[idx - 1] = new Column(label, clazz, width);
28                 }
29                 
30                 return cols;
31         }
32
33         @Override
34         Row getNext() {
35                 // TODO Auto-generated method stub
36                 return null;
37         }
38 }