net.sf.aguacate.context.spi.sql.impl.SentenceSqlDelete Maven / Gradle / Ivy
package net.sf.aguacate.context.spi.sql.impl;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import net.sf.aguacate.function.FunctionContext;
import net.sf.aguacate.function.FunctionEvalResult;
import net.sf.aguacate.util.parameter.Parameter;
import net.sf.aguacate.util.parameter.Prm;
/**
*
* {
* "name": "...",
* "type": "DELETE",
* "message": "...",
* "table": "table",
* "required": [ // WHERE columns
* ],
* "optional": [], //EMPTY
* "methods": [
* ]
* }
*
*
* @see AbstractSentenceSql#DELETE
*
*/
public class SentenceSqlDelete extends AbstractSentenceSql {
private static final Logger LOGGER = LogManager.getLogger(SentenceSqlDelete.class);
private final String table;
private final Parameter[] required;
private final Parameter[] optional;
public SentenceSqlDelete(String name, String message, String table, List methods, List required,
List optional) {
super(name, message, methods);
this.table = table;
this.required = Prm.toArray(required);
this.optional = Prm.toArray(optional);
}
@Override
public FunctionEvalResult evaluate0(FunctionContext functionContext, Map context)
throws SQLException {
int count = functionContext.databaseInterface().executeDelete(functionContext.acquireConnection(), table,
context, required, optional);
if (LOGGER.isInfoEnabled()) {
LOGGER.debug("deleted: {}", count);
}
return SUCCESS;
}
}