01: package org.apache.ojb.broker.metadata;
02:
03: /* Copyright 2003-2005 The Apache Software Foundation
04: *
05: * Licensed under the Apache License, Version 2.0 (the "License");
06: * you may not use this file except in compliance with the License.
07: * You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17:
18: import java.sql.ResultSet;
19: import java.sql.CallableStatement;
20: import java.sql.SQLException;
21: import java.io.Serializable;
22:
23: import org.apache.ojb.broker.util.sequence.SequenceManagerException;
24:
25: /**
26: * Represents a jdbc sql type object defined by the JDBC 3.0 specification to handle
27: * data conversion (see JDBC 3.0 specification <em>Appendix B, Data Type Conversion Tables</em>).
28: *
29: * @see FieldType
30: * @version $Id: JdbcType.java,v 1.6.2.2 2005/12/21 22:26:10 tomdz Exp $
31: */
32: public interface JdbcType extends Serializable {
33: /**
34: * Intern used flag.
35: */
36: public static final int MIN_INT = Integer.MIN_VALUE;
37:
38: /**
39: * Returns an java object for this jdbc type by extract from the given
40: * CallableStatement or ResultSet.
41: * <br/>
42: * NOTE: For internal use only!!
43: * <br/>
44: * Exactly one of the arguments of type CallableStatement or ResultSet
45: * have to be non-null. If the 'columnId' argument is equals {@link #MIN_INT}, then the given 'columnName'
46: * argument is used to lookup column. Else the given 'columnId' is used as column index.
47: */
48: public Object getObjectFromColumn(ResultSet rs,
49: CallableStatement stmt, String columnName, int columnId)
50: throws SQLException;
51:
52: /**
53: * Convenience method for {@link #getObjectFromColumn(ResultSet, CallableStatement, String, int)}
54: */
55: public Object getObjectFromColumn(CallableStatement stmt,
56: int columnId) throws SQLException;
57:
58: /**
59: * Convenience method for {@link #getObjectFromColumn(ResultSet, CallableStatement, String, int)}
60: */
61: public Object getObjectFromColumn(ResultSet rs, String columnName)
62: throws SQLException;
63:
64: /**
65: * Convert the given {@link java.lang.Long} value to
66: * a java object representation of this jdbc type.
67: */
68: public Object sequenceKeyConversion(Long identifier)
69: throws SequenceManagerException;
70:
71: /**
72: * Returns the representing {@link java.sql.Types sql type}.
73: */
74: public int getType();
75:
76: /**
77: * Indicates whether some other object is "equal to" this one.
78: */
79: public boolean equals(Object obj);
80:
81: /**
82: * Returns the associated {@link FieldType} (java field type mapped to this sql type).
83: */
84: public FieldType getFieldType();
85:
86: // // not used in code, but maybe useful in further versions
87: // /**
88: // * Convenience method for {@link #getObjectFromColumn(ResultSet, CallableStatement, String, int)}
89: // */
90: // Object getObjectFromColumn(CallableStatement stmt, String columnName) throws SQLException;
91: // /**
92: // * Convenience method for {@link #getObjectFromColumn(ResultSet, CallableStatement, String, int)}
93: // */
94: // Object getObjectFromColumn(ResultSet rs, int columnId) throws SQLException;
95: }
|