# HG changeset patch # User František Kučera # Date 1387574350 -3600 # Node ID d8faf91519a513ff023d974cc53d75ca3de49eb7 # Parent 37fe883f8410687a283b7d240d1444d806c7c3c6 formatter: ColumnDescriptor diff -r 37fe883f8410 -r d8faf91519a5 java/sql-dk/src/info/globalcode/sql/dk/formatting/ColumnDescriptor.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/sql-dk/src/info/globalcode/sql/dk/formatting/ColumnDescriptor.java Fri Dec 20 22:19:10 2013 +0100 @@ -0,0 +1,62 @@ +/** + * SQL-DK + * Copyright © 2013 František Kučera (frantovo.cz) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package info.globalcode.sql.dk.formatting; + +/** + * + * @author Ing. František Kučera (frantovo.cz) + */ +public class ColumnDescriptor { + + private String name; + private String label; + private int type; + private String typeName; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } +} 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); + } + } }