diff -r 37fe883f8410 -r d8faf91519a5 java/sql-dk/src/info/globalcode/sql/dk/formatting/ColumnsHeader.java --- a/java/sql-dk/src/info/globalcode/sql/dk/formatting/ColumnsHeader.java Fri Dec 20 22:01:06 2013 +0100 +++ b/java/sql-dk/src/info/globalcode/sql/dk/formatting/ColumnsHeader.java Fri Dec 20 22:19:10 2013 +0100 @@ -17,19 +17,49 @@ */ package info.globalcode.sql.dk.formatting; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + /** * * @author Ing. František Kučera (frantovo.cz) */ public class ColumnsHeader { + ResultSetMetaData metaData; + + public ColumnsHeader(ResultSetMetaData metaData) { + this.metaData = metaData; + } + public int getColumnCount() { - /** - * TODO: getColumnCount - */ - throw new RuntimeException("Not yet implemented"); + try { + return metaData.getColumnCount(); + } catch (SQLException e) { + throw new IllegalStateException("Error during getting column count.", e); + } } - /** - * TODO: columns descriptor - */ + + public List getColumnDescriptors() { + try { + int count = metaData.getColumnCount(); + List list = new ArrayList<>(count); + + for (int i = 1; i <= count; i++) { + ColumnDescriptor cd = new ColumnDescriptor(); + cd.setLabel(metaData.getColumnLabel(i)); + cd.setName(metaData.getColumnName(i)); + cd.setType(metaData.getColumnType(i)); + cd.setTypeName(metaData.getColumnTypeName(i)); + /** TODO: more properties */ + list.add(cd); + } + + return list; + } catch (SQLException e) { + throw new IllegalStateException("Error during building column descriptors.", e); + } + } }