// This software is released into the Public Domain. See copying.txt for details.
package org.openstreetmap.osmosis.apidb.v0_6.impl;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.openstreetmap.osmosis.core.database.RowMapperListener;
import org.openstreetmap.osmosis.core.domain.v0_6.EntityType;
import org.openstreetmap.osmosis.core.domain.v0_6.RelationMember;
import org.springframework.jdbc.core.RowCallbackHandler;
/**
* Maps relation member result set rows into relation member objects.
*/
public class RelationMemberRowMapper implements RowCallbackHandler {
private RowMapperListener<RelationMember> listener;
private MemberTypeParser memberTypeParser;
/**
* Creates a new instance.
*
* @param listener
* The destination for result objects.
*/
public RelationMemberRowMapper(RowMapperListener<RelationMember> listener) {
this.listener = listener;
memberTypeParser = new MemberTypeParser();
}
/**
* {@inheritDoc}
*/
@Override
public void processRow(ResultSet resultSet) throws SQLException {
long memberId;
EntityType memberType;
String memberRole;
RelationMember relationMember;
memberId = resultSet.getLong("member_id");
memberType = memberTypeParser.parse(resultSet.getString("member_type"));
memberRole = resultSet.getString("member_role");
relationMember = new RelationMember(memberId, memberType, memberRole);
listener.process(relationMember, resultSet);
}
}