diff -r 7e08730da258 -r 4a1864c3e867 java/sql-dk/src/main/java/info/globalcode/sql/dk/formatting/ColumnsHeader.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/java/sql-dk/src/main/java/info/globalcode/sql/dk/formatting/ColumnsHeader.java Mon Mar 04 20:15:24 2019 +0100 @@ -0,0 +1,70 @@ +/** + * 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; + +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 { + + private ResultSetMetaData metaData; + + public ColumnsHeader(ResultSetMetaData metaData) { + this.metaData = metaData; + } + + public int getColumnCount() { + try { + return metaData.getColumnCount(); + } catch (SQLException e) { + throw new IllegalStateException("Error during getting column count.", e); + } + } + + 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.setFirstColumn(i == 1); + cd.setLastColumn(i == count); + cd.setColumnNumber(i); + + 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); + } + } +}