// This software is released into the Public Domain. See copying.txt for details.
package org.openstreetmap.osmosis.pgsnapshot.v0_6.impl;
import java.util.Map;
import org.openstreetmap.osmosis.core.domain.v0_6.Node;
import org.openstreetmap.osmosis.pgsnapshot.common.PointBuilder;
import org.postgis.PGgeometry;
import org.springframework.jdbc.core.RowMapper;
/**
* Reads and writes node attributes to jdbc classes.
*
* @author Brett Henderson
*/
public class NodeMapper extends EntityMapper<Node> {
private PointBuilder pointBuilder;
/**
* Creates a new instance.
*/
public NodeMapper() {
pointBuilder = new PointBuilder();
}
/**
* {@inheritDoc}
*/
@Override
public String getEntityName() {
return "node";
}
/**
* {@inheritDoc}
*/
@Override
public ActionDataType getEntityType() {
return ActionDataType.NODE;
}
/**
* {@inheritDoc}
*/
@Override
public Class<Node> getEntityClass() {
return Node.class;
}
/**
* {@inheritDoc}
*/
@Override
protected String[] getTypeSpecificFieldNames() {
return new String[] {"geom"};
}
/**
* {@inheritDoc}
*/
@Override
public void populateEntityParameters(Map<String, Object> args, Node entity) {
populateCommonEntityParameters(args, entity);
args.put("geom", new PGgeometry(pointBuilder.createPoint(entity.getLatitude(), entity.getLongitude())));
}
/**
* {@inheritDoc}
*/
@Override
public RowMapper<Node> getRowMapper() {
return new NodeRowMapper();
}
}