01: package liquibase.database.template;
02:
03: /**
04: * Object to represent a SQL parameter value, including parameter metadata
05: * such as the SQL type and the scale for numeric values.
06: * <p/>
07: * <p>Designed for use with {@link JdbcTemplate}'s operations that take an array of
08: * argument values: Each such argument value may be a <code>SqlParameterValue</code>,
09: * indicating the SQL type (and optionally the scale) instead of letting the
10: * template guess a default type. Note that this only applies to the operations with
11: * a 'plain' argument array, not to the overloaded variants with an explicit type array.
12: *
13: * @author Spring Framework
14: * @see java.sql.Types
15: */
16: class SqlParameterValue extends SqlParameter {
17:
18: private final Object value;
19:
20: /**
21: * Create a new SqlParameterValue, supplying the SQL type.
22: *
23: * @param sqlType SQL type of the parameter according to <code>java.sql.Types</code>
24: * @param value the value object
25: */
26: public SqlParameterValue(int sqlType, Object value) {
27: super (sqlType);
28: this .value = value;
29: }
30:
31: /**
32: * Create a new SqlParameterValue, supplying the SQL type.
33: *
34: * @param sqlType SQL type of the parameter according to <code>java.sql.Types</code>
35: * @param typeName the type name of the parameter (optional)
36: * @param value the value object
37: */
38: public SqlParameterValue(int sqlType, String typeName, Object value) {
39: super (sqlType, typeName);
40: this .value = value;
41: }
42:
43: /**
44: * Create a new SqlParameterValue, supplying the SQL type.
45: *
46: * @param sqlType SQL type of the parameter according to <code>java.sql.Types</code>
47: * @param scale the number of digits after the decimal point
48: * (for DECIMAL and NUMERIC types)
49: * @param value the value object
50: */
51: public SqlParameterValue(int sqlType, int scale, Object value) {
52: super (sqlType, scale);
53: this .value = value;
54: }
55:
56: /**
57: * Create a new SqlParameterValue based on the given SqlParameter declaration.
58: *
59: * @param declaredParam the declared SqlParameter to define a value for
60: * @param value the value object
61: */
62: public SqlParameterValue(SqlParameter declaredParam, Object value) {
63: super (declaredParam);
64: this .value = value;
65: }
66:
67: /**
68: * Return the value object that this parameter value holds.
69: */
70: public Object getValue() {
71: return this.value;
72: }
73:
74: }
|