1 21 package oracle.toplink.essentials.internal.databaseaccess; 23 24 import java.sql.*; 25 import oracle.toplink.essentials.internal.helper.DatabaseField; 26 import oracle.toplink.essentials.internal.sessions.AbstractSession; 27 28 public class InOutputParameterForCallableStatement extends OutputParameterForCallableStatement { 29 protected Object inParameter; 30 31 public InOutputParameterForCallableStatement(Object inParameter, OutputParameterForCallableStatement outParameter) { 32 super(outParameter); 33 if (inParameter == null) { 34 this.inParameter = getOutputField(); 35 } else { 36 this.inParameter = inParameter; 37 } 38 } 39 40 public InOutputParameterForCallableStatement(Object inParameter, DatabaseField outField, DatabasePlatform platform) { 41 if ((outField.getType() == null) && (inParameter != null)) { 42 DatabaseField typeField = (DatabaseField)outField.clone(); 43 if (inParameter instanceof DatabaseField) { 44 typeField.setType(((DatabaseField)inParameter).getType()); 45 } else { 46 typeField.setType(inParameter.getClass()); 47 } 48 outField = typeField; 49 } 50 obj = outField; 51 prepare(platform); 52 if (inParameter == null) { 53 this.inParameter = getOutputField(); 54 } else { 55 this.inParameter = inParameter; 56 } 57 } 58 59 public void set(DatabasePlatform platform, PreparedStatement statement, int index, AbstractSession session) throws SQLException { 60 platform.setParameterValueInDatabaseCall(inParameter, statement, index, session); 61 super.set(platform, statement, index, session); 62 } 63 64 public String toString() { 65 String strIn; 66 if (inParameter instanceof DatabaseField) { 67 strIn = "null"; 68 } else { 69 strIn = inParameter.toString(); 70 } 71 return strIn + " " + super.toString(); 72 } 73 } 74 | Popular Tags |