/*
* codjo.net
*
* Common Apache License 2.0
*/
package net.codjo.broadcast.common.computed;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
/**
* Champ Calcul� a valeur constante.
*
* @author $Author: gonnot $
* @version $Revision: 1.1.1.1 $
*/
public class ConstantField extends AbstractComputedField {
private Object value;
/**
* Constructeur de ConstantField
*
* @param name
* @param sqlType
* @param sqlDefinition
* @param value Valeur constante du champ
*/
public ConstantField(String name, int sqlType, String sqlDefinition, Object value) {
super(name, sqlType, sqlDefinition);
this.value = value;
}
/**
* Remplissage de la colonne avec la constante.
*
* @param ctxt Le contexte d'execution
* @param con
*
* @exception SQLException
*/
public void compute(ComputedContext ctxt, Connection con)
throws SQLException {
PreparedStatement stmt =
con.prepareStatement(ctxt.replaceVariables("update " + ctxt.getComputedTableName() + " set "
+ getName() + " = ?"));
try {
if (value == null) {
stmt.setNull(1, getSqlType());
}
else {
stmt.setObject(1, value, getSqlType());
}
stmt.executeUpdate();
}
finally {
stmt.close();
}
}
}