001package org.itsallcode.jdbc.resultset.generic;
002
003import java.sql.ResultSet;
004import java.sql.ResultSetMetaData;
005import java.util.List;
006
007/**
008 * A wrapper for {@link ResultSetMetaData} to simplify usage.
009 * 
010 * @param columns all column metadata for the result set
011 */
012public record SimpleMetaData(List<ColumnMetaData> columns) {
013
014    /**
015     * Create a new {@link SimpleMetaData} for a given {@link ResultSet}.
016     * 
017     * @param resultSet the result set
018     * @return simple metadata
019     */
020    public static SimpleMetaData create(final ResultSet resultSet) {
021        return new SimpleMetaData(ColumnMetaData.create(resultSet));
022    }
023
024    /**
025     * Get column metadata for a given index (one based).
026     * 
027     * @param index column index (one based)
028     * @return column metadata
029     */
030    public ColumnMetaData getColumnByIndex(final int index) {
031        return columns.get(index - 1);
032    }
033}