package liquibase.ext.spatial.sqlgenerator; import liquibase.database.Database; import liquibase.database.core.OracleDatabase; import liquibase.statement.core.UpdateStatement; /** * The <code>SpatialUpdateGeneratorOracle</code> generates the SQL for <code>UPDATE</code>ing * geometries in Oracle. */ public class SpatialUpdateGeneratorOracle extends AbstractSpatialUpdateGenerator { /** * Verifies that the <code>UpdateStatement</code> has WKT or EWKT. */ @Override public boolean supports(final UpdateStatement statement, final Database database) { return database instanceof OracleDatabase; } /** * Returns the name of the function that converts Well-Known Text to a database-specific * geometry. * * @return the name of the function that converts WKT to a geometry. */ @Override public String getGeomFromWktFunction() { return "SDO_GEOMETRY"; } /** * Handles the Well-Known Text and SRID for Oracle. */ @Override public String convertToFunction(final String wkt, final String srid, final Database database) { final String oracleWkt = OracleSpatialUtils.getOracleWkt(wkt); final String oracleSrid = OracleSpatialUtils.getOracleSrid(srid, database); return super.convertToFunction(oracleWkt, oracleSrid, database); } }