package osm.jp.postgis; import java.math.BigDecimal; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; public class PostgisItems extends ArrayList<PostgisItem> { String gmlid = ""; String idref = ""; int area = 0; int fixed = 0; int code = 0; double lat = 0.0D; double lon = 0.0D; public static void main() { PostgisItems items = new PostgisItems(); items.add(new PostgisItem("gmlid", "gmlid")); items.add(new PostgisItem("idref", "idref")); items.add(new PostgisItem("area", "area")); items.add(new PostgisItem("fixed", "fixed1")); items.add(new PostgisItem("code", "code")); } public PostgisItems() { super(); } public void setResuit(ResultSet rset) throws SQLException { for (PostgisItem item : this) { switch (item.postName) { case "gmlid": gmlid = rset.getString(item.localName); break; case "idref": idref = rset.getString(item.localName); break; case "area": area = rset.getInt(item.localName); break; case "fixed": fixed = rset.getInt(item.localName); break; case "code": code = rset.getInt(item.localName); break; default: break; } } lat = rset.getDouble("lat"); lon = rset.getDouble("lon"); } public String getSqlStr(String tableName) { StringBuilder sb = new StringBuilder(); sb.append("SELECT "); for (PostgisItem item : this) { sb.append(item.localName); sb.append(","); } sb.append("lat,lon FROM "+ tableName); return sb.toString(); } public String getGeomStr() { return String.format( "ST_GeomFromText('POINT(%s %s)', 4612)", BigDecimal.valueOf(lon).toPlainString(), BigDecimal.valueOf(lat).toPlainString() ); } }