// Path: src/main/java/org/openstreetmap/osmaxil/model/ElevationImport.java
// public class ElevationImport extends AbstractImport {
// 
// 	// private Coordinates coordinates;
// 
// 	public float x, y, z;
// 
// 	public ElevationImport(float x, float y, float z) {
// 		this.x = x;
// 		this.y = y;
// 		this.z = z;
// 		this.setId(Math.round(z));
// 	}
// 
// 	@Override
// 	public String getValueByTagName(String tagName) {
// 		return "Sorry, there is no tag for that type of import";
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return "Elevation import with x=" + x + " y=" + y + " z=" + z;
// 	}
// 
// }
// 
// Path: src/main/java/org/openstreetmap/osmaxil/model/misc/Coordinates.java
// public class Coordinates {
// 
// 	public String x;
// 
// 	public String y;
// 
// 	public String z;
// 
// 	public Coordinates(String x, String y, String z) {
// 		this.x = x;
// 		this.y = y;
// 		this.z = z;
// 	}
// 
// }


import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import org.openstreetmap.osmaxil.model.ElevationImport;
import org.openstreetmap.osmaxil.model.misc.Coordinates;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;

			}
		});
		return results;
	}

	@Override
	public int getSrid() {
		return this.srid;
	}

	////////////////////////////////////////////////////////////////////////////////
	// Public (not overrided) methods
	////////////////////////////////////////////////////////////////////////////////

	public void executeSQL(String query) {
		LOGGER.debug("Exec: " + query);
		this.jdbcTemplate.execute(query);
	}

	public boolean testTableExistence(String tableName) {
		return this.jdbcTemplate.queryForObject("select count(tablename) = 1 from pg_tables where tablename = '" + tableName + "'", Boolean.class);
	}

	/**
	 * Find all points which intersect the including geometry and disjoint the excluding geometry (useful for multipolygon buildings with "hole").
	 * That method use a factor as argument in order to scale the including and excluding geometries.
	 * 
	 * TODO: use JTS instead of PostGis functions (ST_Scale and ST_Translate) to perform the scale/skrink process because this implementation is
	 * working but it takes 15 minutes to execute !
	 */

// Path: src/main/java/org/openstreetmap/osmaxil/model/ElevationImport.java
// public class ElevationImport extends AbstractImport {
// 
// 	// private Coordinates coordinates;
// 
// 	public float x, y, z;
// 
// 	public ElevationImport(float x, float y, float z) {
// 		this.x = x;
// 		this.y = y;
// 		this.z = z;
// 		this.setId(Math.round(z));
// 	}
// 
// 	@Override
// 	public String getValueByTagName(String tagName) {
// 		return "Sorry, there is no tag for that type of import";
// 	}
// 
// 	@Override
// 	public String toString() {
// 		return "Elevation import with x=" + x + " y=" + y + " z=" + z;
// 	}
// 
// }
// 
// Path: src/main/java/org/openstreetmap/osmaxil/model/misc/Coordinates.java
// public class Coordinates {
// 
// 	public String x;
// 
// 	public String y;
// 
// 	public String z;
// 
// 	public Coordinates(String x, String y, String z) {
// 		this.x = x;
// 		this.y = y;
// 		this.z = z;
// 	}
// 
// }


// Path: src/main/java/org/openstreetmap/osmaxil/dao/ElevationDatabase.java
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import org.openstreetmap.osmaxil.model.ElevationImport;
import org.openstreetmap.osmaxil.model.misc.Coordinates;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;

			}
		});
		return results;
	}

	@Override
	public int getSrid() {
		return this.srid;
	}

	////////////////////////////////////////////////////////////////////////////////
	// Public (not overrided) methods
	////////////////////////////////////////////////////////////////////////////////

	public void executeSQL(String query) {
		LOGGER.debug("Exec: " + query);
		this.jdbcTemplate.execute(query);
	}

	public boolean testTableExistence(String tableName) {
		return this.jdbcTemplate.queryForObject("select count(tablename) = 1 from pg_tables where tablename = '" + tableName + "'", Boolean.class);
	}

	/**
	 * Find all points which intersect the including geometry and disjoint the excluding geometry (useful for multipolygon buildings with "hole").
	 * That method use a factor as argument in order to scale the including and excluding geometries.
	 * 
	 * TODO: use JTS instead of PostGis functions (ST_Scale and ST_Translate) to perform the scale/skrink process because this implementation is
	 * working but it takes 15 minutes to execute !
	 */

	public List<Coordinates> findAllPointsByGeometry(String includingGeomAsWKT, String excludingGeomAsWKT, float scaleFactor, int geomSrid) {
