// This software is released into the Public Domain. See copying.txt for details. package org.openstreetmap.osmosis.core.database; import java.sql.ResultSet; import java.sql.SQLException; import org.openstreetmap.osmosis.core.store.Storeable; /** * Wraps database features within a database feature object containing the owning entity id. * * @param <T> * The type of feature to be wrapped. */ public class DbOrderedFeatureRowMapper<T extends Storeable> implements RowMapperListener<DbFeature<T>> { private RowMapperListener<DbOrderedFeature<T>> listener; /** * Creates a new instance. * * @param listener * The destination for result objects. */ public DbOrderedFeatureRowMapper(RowMapperListener<DbOrderedFeature<T>> listener) { this.listener = listener; } /** * {@inheritDoc} */ @Override public void process(DbFeature<T> data, ResultSet resultSet) throws SQLException { int sequence; // Get the entity sequence number. sequence = resultSet.getInt("sequence_id"); listener.process(new DbOrderedFeature<T>(data.getEntityId(), data.getFeature(), sequence), resultSet); } }