package com.w11k.lsql;
import com.google.common.collect.Maps;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
public class ResultSetWithColumns {
private final ResultSet resultSet;
private final ResultSetMetaData metaData;
private final Map<String, ResultSetColumn> columnsByLabel;
private final List<ResultSetColumn> columns;
public ResultSetWithColumns(ResultSet resultSet,
ResultSetMetaData metaData,
List<ResultSetColumn> columns) {
this.resultSet = resultSet;
this.metaData = metaData;
this.columns = columns;
this.columnsByLabel = Maps.newLinkedHashMap();
for (ResultSetColumn c : columns) {
this.columnsByLabel.put(c.getName(), c);
}
}
public ResultSet getResultSet() {
return this.resultSet;
}
public Map<String, ResultSetColumn> getColumnsByLabel() {
return this.columnsByLabel;
}
public ResultSetMetaData getMetaData() {
return metaData;
}
public List<ResultSetColumn> getColumns() {
return columns;
}
public Integer getColumnCount() {
try {
return this.metaData.getColumnCount();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}