package mil.nga.geopackage.features.user; import java.util.List; import mil.nga.geopackage.db.table.TableColumn; import mil.nga.geopackage.features.columns.GeometryColumns; import mil.nga.geopackage.user.UserTableReader; /** * Reads the metadata from an existing feature table * * @author osbornb * @since 3.3.0 */ public class FeatureTableReader extends UserTableReader<FeatureColumn, FeatureTable> { /** * Geometry column name */ private final String columnName; /** * Constructor * * @param geometryColumns * geometry columns */ public FeatureTableReader(GeometryColumns geometryColumns) { this(geometryColumns.getTableName(), geometryColumns.getColumnName()); } /** * Constructor * * @param tableName * table name * @param geometryColumnName * geometry column name */ public FeatureTableReader(String tableName, String geometryColumnName) { super(tableName); this.columnName = geometryColumnName; } /** * Constructor, uses first or only found geometry column * * @param tableName * table name */ public FeatureTableReader(String tableName) { this(tableName, null); } /** * {@inheritDoc} */ @Override protected FeatureTable createTable(String tableName, List<FeatureColumn> columnList) { return new FeatureTable(tableName, columnName, columnList); } /** * {@inheritDoc} */ @Override protected FeatureColumn createColumn(TableColumn tableColumn) { return FeatureColumn.createColumn(tableColumn); } }