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}