java/jdbc-loopback-driver/src/info/globalcode/jdbc/loopback/ResultSetMetaData.java
JDBC loopback driver: first version
experimental JDBC driver which does not need any real SQL database,
just passes values of statement parameters as a result set.
The first parameter is column count, then follows column names and then data.
Example:
2 a b c d e f
will result into table:
a | b
-----
c | d
e | f
/**
* SQL-DK
* Copyright © 2014 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 <http://www.gnu.org/licenses/>.
*/
package info.globalcode.jdbc.loopback;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author Ing. František Kučera (frantovo.cz)
*/
public class ResultSetMetaData extends AbstractResultSetMetaData {
private List<ColumnDescriptor> columns = new ArrayList<>();
public void addColumn(ColumnDescriptor cd) {
columns.add(cd);
}
@Override
public int getColumnCount() throws SQLException {
return columns.size();
}
@Override
public String getColumnLabel(int column) throws SQLException {
return columns.get(column - 1).label;
}
@Override
public String getColumnName(int column) throws SQLException {
return columns.get(column - 1).name;
}
@Override
public int getColumnType(int column) throws SQLException {
return columns.get(column - 1).type;
}
@Override
public String getColumnTypeName(int column) throws SQLException {
return columns.get(column - 1).typeName;
}
public static class ColumnDescriptor {
private final int type;
private final String typeName;
private final String label;
private final String name;
public ColumnDescriptor(int type, String typeName, String label, String name) {
this.type = type;
this.typeName = typeName;
this.label = label;
this.name = name;
}
}
}