Refactor tabular output for eventual re-use printing table metadata.
[squelch.git] / src / main / java / net / jaekl / squelch / stmt / TabularResultSet.java
diff --git a/src/main/java/net/jaekl/squelch/stmt/TabularResultSet.java b/src/main/java/net/jaekl/squelch/stmt/TabularResultSet.java
new file mode 100644 (file)
index 0000000..92da23d
--- /dev/null
@@ -0,0 +1,38 @@
+package net.jaekl.squelch.stmt;
+
+import java.sql.ResultSet;
+import java.sql.ResultSetMetaData;
+import java.sql.SQLException;
+
+import net.jaekl.squelch.sql.Column;
+import net.jaekl.squelch.sql.Row;
+
+public class TabularResultSet extends Tabular {
+       private ResultSet m_resultSet;
+       
+       public TabularResultSet(ResultSet resultSet) {
+               m_resultSet = resultSet;
+       }
+
+       @Override
+       Column[] getCols() throws SQLException {
+               ResultSetMetaData metaData = m_resultSet.getMetaData();
+               int colCount = metaData.getColumnCount();
+               
+               Column cols[] = new Column[colCount];
+               for (int idx = 1; idx <= colCount; ++idx) {
+                       String label = metaData.getColumnLabel(idx);
+                       Class<?> clazz = classForSqlType(metaData.getColumnType(idx));
+                       int width = metaData.getColumnDisplaySize(idx);
+                       cols[idx - 1] = new Column(label, clazz, width);
+               }
+               
+               return cols;
+       }
+
+       @Override
+       Row getNext() {
+               // TODO Auto-generated method stub
+               return null;
+       }
+}