00001
00025
package org.objectweb.cjdbc.common.sql.schema;
00026
00027
import java.io.Serializable;
00028
import java.sql.Types;
00029
00030
import org.objectweb.cjdbc.common.xml.DatabasesXmlTags;
00031
00037 public class DatabaseProcedureParameter implements Serializable
00038 {
00042 public static final int ProcedureColumnUnknown = 0;
00044 public static final int ProcedureColumnIn = 1;
00046 public static final int ProcedureColumnInOut = 2;
00048 public static final int ProcedureColumnOut = 3;
00050 public static final int ProcedureColumnReturn = 4;
00052 public static final int ProcedureColumnResult = 5;
00053
00056 public static final int ProcedureNoNulls = 0;
00058 public static final int ProcedureNullable = 1;
00060 public static final int ProcedureNullableUnknown = 2;
00061
00062 private String
name;
00063 private int columnType;
00064 private int dataType;
00065 private String
typeName;
00066 private float precision;
00067 private int length;
00068 private int scale;
00069 private int radix;
00070 private int nullable;
00071 private String
remarks;
00072
00079 public static int getNullFromString(String nullable)
00080 {
00081
if (nullable.equalsIgnoreCase(
DatabasesXmlTags.VAL_noNulls))
00082
return ProcedureNoNulls;
00083
if (nullable.equalsIgnoreCase(
DatabasesXmlTags.VAL_nullable))
00084
return ProcedureNullable;
00085
else
00086
return ProcedureNullableUnknown;
00087 }
00088
00095 public static String
getNullFromInt(
int nullable)
00096 {
00097
switch (nullable)
00098 {
00099
case ProcedureNoNulls :
00100
return DatabasesXmlTags.VAL_noNulls;
00101
case ProcedureNullable :
00102
return DatabasesXmlTags.VAL_nullable;
00103
case ProcedureNullableUnknown :
00104
default :
00105
return DatabasesXmlTags.VAL_nullableUnknown;
00106 }
00107 }
00108
00115 public static String
getColumnTypeFromInt(
int type)
00116 {
00117
switch (type)
00118 {
00119
case ProcedureColumnIn :
00120
return DatabasesXmlTags.VAL_in;
00121
case ProcedureColumnOut :
00122
return DatabasesXmlTags.VAL_out;
00123
case ProcedureColumnInOut :
00124
return DatabasesXmlTags.VAL_inout;
00125
case ProcedureColumnReturn :
00126
return DatabasesXmlTags.VAL_return;
00127
case ProcedureColumnResult :
00128
return DatabasesXmlTags.VAL_result;
00129
case ProcedureColumnUnknown :
00130
default :
00131
return DatabasesXmlTags.VAL_unknown;
00132 }
00133 }
00134
00141 public static int getColumnTypeFromString(String type)
00142 {
00143
if (type.equalsIgnoreCase(
DatabasesXmlTags.VAL_in))
00144
return ProcedureColumnIn;
00145
if (type.equalsIgnoreCase(
DatabasesXmlTags.VAL_out))
00146
return ProcedureColumnOut;
00147
if (type.equalsIgnoreCase(
DatabasesXmlTags.VAL_inout))
00148
return ProcedureColumnInOut;
00149
if (type.equalsIgnoreCase(
DatabasesXmlTags.VAL_return))
00150
return ProcedureColumnReturn;
00151
if (type.equalsIgnoreCase(
DatabasesXmlTags.VAL_result))
00152
return ProcedureColumnResult;
00153
else
00154
return ProcedureColumnUnknown;
00155 }
00156
00164 public DatabaseProcedureParameter(String name,
int columnType,
int nullable)
00165 {
00166
this(name, columnType, Types.VARCHAR,
"VARCHAR", 0, 0, 0, 0, nullable,
"");
00167 }
00168
00182 public DatabaseProcedureParameter(String name,
int columnType,
int dataType,
00183 String typeName,
float precision,
int length,
int scale,
int radix,
00184
int nullable, String remarks)
00185 {
00186
this.name = name;
00187
this.columnType = columnType;
00188
this.dataType = dataType;
00189
this.typeName = typeName;
00190
this.precision = precision;
00191
this.length = length;
00192
this.scale = scale;
00193
this.radix = radix;
00194
this.nullable = nullable;
00195
this.remarks = remarks;
00196 }
00197
00201 public final int getColumnType()
00202 {
00203
return columnType;
00204 }
00205
00209 public final void setColumnType(
int columnType)
00210 {
00211
this.columnType = columnType;
00212 }
00213
00217 public final int getDataType()
00218 {
00219
return dataType;
00220 }
00221
00225 public final void setDataType(
int dataType)
00226 {
00227
this.dataType = dataType;
00228 }
00229
00233 public final int getLength()
00234 {
00235
return length;
00236 }
00237
00241 public final void setLength(
int length)
00242 {
00243
this.length = length;
00244 }
00245
00249 public final String
getName()
00250 {
00251
return name;
00252 }
00253
00257 public final void setName(String name)
00258 {
00259
this.name = name;
00260 }
00261
00265 public final int getNullable()
00266 {
00267
return nullable;
00268 }
00269
00273 public final void setNullable(
int nullable)
00274 {
00275
this.nullable = nullable;
00276 }
00277
00281 public final float getPrecision()
00282 {
00283
return precision;
00284 }
00285
00289 public final void setPrecision(
int precision)
00290 {
00291
this.precision = precision;
00292 }
00293
00297 public final int getRadix()
00298 {
00299
return radix;
00300 }
00301
00305 public final void setRadix(
int radix)
00306 {
00307
this.radix = radix;
00308 }
00309
00313 public final String
getRemarks()
00314 {
00315
return remarks;
00316 }
00317
00321 public final void setRemarks(String remarks)
00322 {
00323
this.remarks = remarks;
00324 }
00325
00329 public final int getScale()
00330 {
00331
return scale;
00332 }
00333
00337 public final void setScale(
int scale)
00338 {
00339
this.scale = scale;
00340 }
00341
00345 public final String
getTypeName()
00346 {
00347
return typeName;
00348 }
00349
00353 public final void setTypeName(String typeName)
00354 {
00355
this.typeName = typeName;
00356 }
00357
00365 public boolean equals(Object other)
00366 {
00367
if ((other == null) || !(other instanceof
DatabaseProcedureParameter))
00368
return false;
00369
00370
DatabaseProcedureParameter p = (
DatabaseProcedureParameter) other;
00371
00372
00373
if (!(p.
columnType ==
columnType && p.
dataType ==
dataType
00374 && p.
precision ==
precision && p.
length ==
length && p.
scale ==
scale
00375 && p.
radix ==
radix && p.
nullable ==
nullable))
00376 {
00377
return false;
00378 }
00379
00380
00381
if (!(
name == null ? p.
name == null :
name.equals(p.
name)))
00382 {
00383
return false;
00384 }
00385
00386
if (!(
typeName == null ? p.
typeName == null :
typeName.equals(p.
typeName)))
00387 {
00388
return false;
00389 }
00390
00391
return remarks == null ? p.
remarks == null :
remarks.equals(p.
remarks);
00392 }
00393
00399 public String
getXml()
00400 {
00401 StringBuffer info =
new StringBuffer();
00402 info.append(
"<" +
DatabasesXmlTags.ELT_DatabaseProcedureColumn +
" "
00403 +
DatabasesXmlTags.ATT_name +
"=\"" +
name +
"\"" +
" "
00404 +
DatabasesXmlTags.ATT_paramType +
"=\""
00405 +
getColumnTypeFromInt(
columnType) +
"\"" +
" "
00406 +
DatabasesXmlTags.ATT_nullable +
"=\"" +
getNullFromInt(
nullable)
00407 +
"\"/>");
00408
return info.toString();
00409 }
00410
00411 }