/*
* codjo.net
*
* Common Apache License 2.0
*/
package net.codjo.utils;
/**
* SQL Field. Un champs SQL est definie par un nom physique de colonne, un type SQL et
* eventuellement une valeur.
*
* @author $Author: gonnot $
* @version $Revision: 1.1.1.1 $
*/
class SQLField {
private String name;
private Object value;
private int sqlType;
/**
* Constructor for the SQLField object
*
* @param sqlType Le type SQL du champs
* @param n Le nom physique du champs
*/
SQLField(int sqlType, String n) {
this.sqlType = sqlType;
name = n;
}
/**
* Constructor for the SQLField object
*
* @param sqlType Le type SQL du champs
* @param n Le nom physique du champs
* @param v la valeur du champs
*/
SQLField(int sqlType, String n, Object v) {
this.sqlType = sqlType;
name = n;
setValue(v);
}
/**
* Positionne la valeur du champs.
*
* @param v The new value
*/
public void setValue(Object v) {
value = v;
}
/**
* Retourne le nom physique du champs (colonne).
*
* @return The Name value
*/
public String getName() {
return name;
}
/**
* Retourne la valeur courante du champs.
*
* @return The Value value
*/
public Object getValue() {
return value;
}
/**
* Retourne le type SQL du champs.
*
* @return The SQLType value
*/
public int getSQLType() {
return sqlType;
}
}
/**
* SQL Field specific pour le type SQL date et assimile (TIME, TIMESTAMP,...).
*
* @author $Author: gonnot $
* @version $Revision: 1.1.1.1 $
*/
class SQLDateField extends SQLField {
/**
* Constructor for the SQLDateField object
*
* @param sqlDateType Type sql Date ( DATE, TIMESTAMP, TIME)
* @param n Nom physique du champs
*/
SQLDateField(int sqlDateType, String n) {
super(sqlDateType, n);
}
/**
* Positionne la valeur. Si la valeur est de type <code>java.util.Date</code> elle
* est convertit en <code>java.sql.Date</code>
*
* @param v The new Value value
*/
public void setValue(Object v) {
if (v != null && v.getClass() == java.util.Date.class) {
super.setValue(new java.sql.Timestamp(((java.util.Date)v).getTime()));
}
else {
super.setValue(v);
}
}
}