// This software is released into the Public Domain. See copying.txt for details. package org.openstreetmap.osmosis.pgsnapshot.v0_6.impl; import org.openstreetmap.osmosis.pgsnapshot.common.DatabaseContext; import org.springframework.jdbc.core.JdbcTemplate; /** * Performs all action db operations. * * @author Brett Henderson */ public class ActionDao { private static final String SQL_INSERT = "INSERT INTO actions(data_type, action, id) VALUES(?, ?, ?)"; private static final String SQL_TRUNCATE = "TRUNCATE actions"; private JdbcTemplate jdbcTemplate; private DatabaseCapabilityChecker capabilityChecker; /** * Creates a new instance. * * @param dbCtx * The database context to use for accessing the database. */ public ActionDao(DatabaseContext dbCtx) { jdbcTemplate = dbCtx.getJdbcTemplate(); capabilityChecker = new DatabaseCapabilityChecker(dbCtx); } /** * Adds the specified action to the database. * * @param dataType The type of data being represented by this action. * @param action The action being performed on the data. * @param id The identifier of the data. */ public void addAction(ActionDataType dataType, ChangesetAction action, long id) { if (capabilityChecker.isActionSupported()) { jdbcTemplate.update(SQL_INSERT, dataType.getDatabaseValue(), action.getDatabaseValue(), id); } } /** * Removes all action records. */ public void truncate() { if (capabilityChecker.isActionSupported()) { jdbcTemplate.update(SQL_TRUNCATE); } } }