// Decompiled by Jad v1.5.7f. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) braces deadcode fieldsfirst 
// Source File Name:   OracleCallableStatement.java
// Class Version:      45.3

package oracle.jdbc.driver;

import java.io.InputStream;
import java.math.BigDecimal;
import java.sql.Array;
import java.sql.Blob;
import java.sql.Clob;
import java.sql.Date;
import java.sql.Ref;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Time;
import java.sql.Timestamp;
import java.util.Calendar;
import java.util.Map;
import oracle.jdbc.Const;
import oracle.jdbc.OracleTypes;
import oracle.jdbc.dbaccess.DBAccess;
import oracle.jdbc.dbaccess.DBDataSet;
import oracle.jdbc.dbaccess.DBError;
import oracle.jdbc.dbaccess.DBType;
import oracle.jdbc.oracore.OracleTypeOPAQUE;
import oracle.sql.ARRAY;
import oracle.sql.ArrayDescriptor;
import oracle.sql.BFILE;
import oracle.sql.BLOB;
import oracle.sql.CHAR;
import oracle.sql.CLOB;
import oracle.sql.CustomDatumFactory;
import oracle.sql.DATE;
import oracle.sql.Datum;
import oracle.sql.NUMBER;
import oracle.sql.OPAQUE;
import oracle.sql.ORADataFactory;
import oracle.sql.OpaqueDescriptor;
import oracle.sql.RAW;
import oracle.sql.REF;
import oracle.sql.ROWID;
import oracle.sql.STRUCT;
import oracle.sql.StructDescriptor;
import oracle.sql.TIMESTAMP;
import oracle.sql.TIMESTAMPLTZ;
import oracle.sql.TIMESTAMPTZ;
import oracle.sql.TypeDescriptor;

// Referenced classes of package oracle.jdbc.driver:
//            OraclePreparedStatement, OracleConnection, OracleLog, OracleResultSet, 
//            OracleStatement

// flag ACC_SUPER is set
public class OracleCallableStatement extends OraclePreparedStatement
    implements oracle.jdbc.internal.OracleCallableStatement
{
    // Constants:          533
    // Interfaces:         1
    // Fields:             0
    // Methods:            64
    // Class Attributes:   1


    // Decompiling method: <init>  Signature: (Loracle/jdbc/driver/OracleConnection;Ljava/lang/String;II)V
    // Max stack: 7, #locals: 5, #params: 5
    // Code length: 16 bytes, Code offset: 7319
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 16 Range 0 15 Init 0 fixed
    // Parameter  1 added: Name oracleconnection Type Loracle/jdbc/driver/OracleConnection; At 0 16 Range 0 15 Init 0
    // Parameter  2 added: Name s Type Ljava/lang/String; At 0 16 Range 0 15 Init 0
    // Parameter  3 added: Name i Type I At 0 16 Range 0 15 Init 0
    // Parameter  4 added: Name j Type I At 0 16 Range 0 15 Init 0
    // RetValue   5 added: Name <returnValue> Type V At 0 16 Range 0 15 Init 0 fixed
    public OracleCallableStatement(OracleConnection oracleconnection, String s, int i, int j)
        throws SQLException
    {
        this(oracleconnection, s, i, j, 1003, 1007);
        return;
    }

    // Decompiling method: <init>  Signature: (Loracle/jdbc/driver/OracleConnection;Ljava/lang/String;IIII)V
    // Max stack: 7, #locals: 7, #params: 7
    // Code length: 42 bytes, Code offset: 7399
    // Line Number Table found: 9 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 42 Range 0 41 Init 0 fixed
    // Parameter  1 added: Name oracleconnection Type Loracle/jdbc/driver/OracleConnection; At 0 42 Range 0 41 Init 0
    // Parameter  2 added: Name s Type Ljava/lang/String; At 0 42 Range 0 41 Init 0
    // Parameter  3 added: Name i Type I At 0 42 Range 0 41 Init 0
    // Parameter  4 added: Name j Type I At 0 42 Range 0 41 Init 0
    // Parameter  5 added: Name k Type I At 0 42 Range 0 41 Init 0
    // Parameter  6 added: Name l Type I At 0 42 Range 0 41 Init 0
    // RetValue   7 added: Name <returnValue> Type V At 0 42 Range 0 41 Init 0 fixed
    public OracleCallableStatement(OracleConnection oracleconnection, String s, int i, int j, int k, int l)
        throws SQLException
    {
        super(oracleconnection, s, i, j, k, l);
        parseSqlKind();
        binds_out = connection.db_access.createDBDataSet(oracleconnection, this, i, 2);
        m_stmtType = 2;
        return;
    }

    // Decompiling method: addBatch  Signature: ()V
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 22 bytes, Code offset: 7521
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 22 Range 0 21 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type V At 0 22 Range 0 21 Init 0 fixed
    public void addBatch()
        throws SQLException
    {
        if(binds_out.getNoOfArgs() > 0)
        {
            DBError.throwSqlException(90, "Stored procedure with out or inout parameters cannot be batched");
        }
        super.addBatch();
        return;
    }

    // Decompiling method: cleanup  Signature: ()V
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 25 bytes, Code offset: 7611
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 25 Range 0 24 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type V At 0 25 Range 0 24 Init 0 fixed
    private void cleanup()
    {
        if(connection.m_stmtClearMetaData && binds_out != null)
        {
            binds_out.cleanup();
        }
        return;
    }

    // Decompiling method: clearParameters  Signature: ()V
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 19 bytes, Code offset: 7686
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 19 Range 0 18 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type V At 0 19 Range 0 18 Init 0 fixed
    public synchronized void clearParameters()
        throws SQLException
    {
        if(binds_out != null)
        {
            binds_out.clearItems();
        }
        super.clearParameters();
        return;
    }

    // Decompiling method: close  Signature: ()V
    // Max stack: 2, #locals: 4, #params: 1
    // Code length: 36 bytes, Code offset: 7765
    // Exception table: 2 entries
    //           start  11 end 19 handler 24 type any
    //           start  7 end 27 handler 32 type any
    // Line Number Table found: 7 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 36 Range 0 35 Init 0 fixed
    // RetValue   4 added: Name <returnValue> Type V At 0 36 Range 0 35 Init 0 fixed
    // LocalVar   1 added: Name oracleconnection Type Loracle/jdbc/driver/OracleConnection; At 4 29 Range 4 32 Init 4
    // LocalVar   3 added: Name oraclecallablestatement Type Loracle/jdbc/driver/OracleCallableStatement; At 8 17 Range 8 24 Init 8
    // LocalVar   2 hasn't been used
    public void close()
        throws SQLException
    {
        synchronized(connection)
        {
            synchronized(this)
            {
                super.close();
                cleanup();
            }
        }
        return;
    }

    // Decompiling method: getARRAY  Signature: (I)Loracle/sql/ARRAY;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 7889
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Loracle/sql/ARRAY; At 0 7 Range 0 6 Init 0 fixed
    public ARRAY getARRAY(int i)
        throws SQLException
    {
        return getARRAYValue(false, i);
    }

    // Decompiling method: getArray  Signature: (I)Ljava/sql/Array;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 7944
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Ljava/sql/Array; At 0 7 Range 0 6 Init 0 fixed
    public Array getArray(int i)
        throws SQLException
    {
        return getARRAYValue(false, i);
    }

    // Decompiling method: getAsciiStream  Signature: (I)Ljava/io/InputStream;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 7999
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Ljava/io/InputStream; At 0 7 Range 0 6 Init 0 fixed
    public InputStream getAsciiStream(int i)
        throws SQLException
    {
        return getAsciiStreamValue(false, i);
    }

    // Decompiling method: getBFILE  Signature: (I)Loracle/sql/BFILE;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 8054
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Loracle/sql/BFILE; At 0 7 Range 0 6 Init 0 fixed
    public BFILE getBFILE(int i)
        throws SQLException
    {
        return getBFILEValue(false, i);
    }

    // Decompiling method: getBLOB  Signature: (I)Loracle/sql/BLOB;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 8109
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Loracle/sql/BLOB; At 0 7 Range 0 6 Init 0 fixed
    public BLOB getBLOB(int i)
        throws SQLException
    {
        return getBLOBValue(false, i);
    }

    // Decompiling method: getBigDecimal  Signature: (I)Ljava/math/BigDecimal;
    // Max stack: 4, #locals: 2, #params: 2
    // Code length: 8 bytes, Code offset: 8164
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 8 Range 0 7 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 8 Range 0 7 Init 0
    // RetValue   2 added: Name <returnValue> Type Ljava/math/BigDecimal; At 0 8 Range 0 7 Init 0 fixed
    public BigDecimal getBigDecimal(int i)
        throws SQLException
    {
        return getBigDecimalValue(false, i, 0);
    }

    // Decompiling method: getBigDecimal  Signature: (II)Ljava/math/BigDecimal;
    // Max stack: 4, #locals: 3, #params: 3
    // Code length: 8 bytes, Code offset: 8220
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 8 Range 0 7 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 8 Range 0 7 Init 0
    // Parameter  2 added: Name j Type I At 0 8 Range 0 7 Init 0
    // RetValue   3 added: Name <returnValue> Type Ljava/math/BigDecimal; At 0 8 Range 0 7 Init 0 fixed
    public BigDecimal getBigDecimal(int i, int j)
        throws SQLException
    {
        return getBigDecimalValue(false, i, j);
    }

    // Decompiling method: getBinaryStream  Signature: (I)Ljava/io/InputStream;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 8276
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Ljava/io/InputStream; At 0 7 Range 0 6 Init 0 fixed
    public InputStream getBinaryStream(int i)
        throws SQLException
    {
        return getBinaryStreamValue(false, i);
    }

    // Decompiling method: getBlob  Signature: (I)Ljava/sql/Blob;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 8331
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Ljava/sql/Blob; At 0 7 Range 0 6 Init 0 fixed
    public Blob getBlob(int i)
        throws SQLException
    {
        return getBLOBValue(false, i);
    }

    // Decompiling method: getBoolean  Signature: (I)Z
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 8386
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Z At 0 7 Range 0 6 Init 0 fixed
    public boolean getBoolean(int i)
        throws SQLException
    {
        return getBooleanValue(false, i);
    }

    // Decompiling method: getByte  Signature: (I)B
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 8441
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type B At 0 7 Range 0 6 Init 0 fixed
    public byte getByte(int i)
        throws SQLException
    {
        return getByteValue(false, i);
    }

    // Decompiling method: getBytes  Signature: (I)[B
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 8496
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type [B At 0 7 Range 0 6 Init 0 fixed
    public byte[] getBytes(int i)
        throws SQLException
    {
        return getBytesValue(false, i);
    }

    // Decompiling method: getCHAR  Signature: (I)Loracle/sql/CHAR;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 8551
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Loracle/sql/CHAR; At 0 7 Range 0 6 Init 0 fixed
    public CHAR getCHAR(int i)
        throws SQLException
    {
        return getCHARValue(false, i);
    }

    // Decompiling method: getCLOB  Signature: (I)Loracle/sql/CLOB;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 8606
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Loracle/sql/CLOB; At 0 7 Range 0 6 Init 0 fixed
    public CLOB getCLOB(int i)
        throws SQLException
    {
        return getCLOBValue(false, i);
    }

    // Decompiling method: getClob  Signature: (I)Ljava/sql/Clob;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 8661
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Ljava/sql/Clob; At 0 7 Range 0 6 Init 0 fixed
    public Clob getClob(int i)
        throws SQLException
    {
        return getCLOBValue(false, i);
    }

    // Decompiling method: getCursor  Signature: (I)Ljava/sql/ResultSet;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 8716
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Ljava/sql/ResultSet; At 0 7 Range 0 6 Init 0 fixed
    public ResultSet getCursor(int i)
        throws SQLException
    {
        return getCursorValue(false, i);
    }

    // Decompiling method: getCustomDatum  Signature: (ILoracle/sql/CustomDatumFactory;)Ljava/lang/Object;
    // Max stack: 4, #locals: 3, #params: 3
    // Code length: 8 bytes, Code offset: 8771
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 8 Range 0 7 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 8 Range 0 7 Init 0
    // Parameter  2 added: Name customdatumfactory Type Loracle/sql/CustomDatumFactory; At 0 8 Range 0 7 Init 0
    // RetValue   3 added: Name <returnValue> Type Ljava/lang/Object; At 0 8 Range 0 7 Init 0 fixed
    public Object getCustomDatum(int i, CustomDatumFactory customdatumfactory)
        throws SQLException
    {
        return getCustomDatumValue(false, i, customdatumfactory);
    }

    // Decompiling method: getDATE  Signature: (I)Loracle/sql/DATE;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 8827
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Loracle/sql/DATE; At 0 7 Range 0 6 Init 0 fixed
    public DATE getDATE(int i)
        throws SQLException
    {
        return getDATEValue(false, i);
    }

    // Decompiling method: getDate  Signature: (I)Ljava/sql/Date;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 8882
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Ljava/sql/Date; At 0 7 Range 0 6 Init 0 fixed
    public Date getDate(int i)
        throws SQLException
    {
        return getDateValue(false, i);
    }

    // Decompiling method: getDate  Signature: (ILjava/util/Calendar;)Ljava/sql/Date;
    // Max stack: 4, #locals: 3, #params: 3
    // Code length: 8 bytes, Code offset: 8937
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 8 Range 0 7 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 8 Range 0 7 Init 0
    // Parameter  2 added: Name calendar Type Ljava/util/Calendar; At 0 8 Range 0 7 Init 0
    // RetValue   3 added: Name <returnValue> Type Ljava/sql/Date; At 0 8 Range 0 7 Init 0 fixed
    public Date getDate(int i, Calendar calendar)
        throws SQLException
    {
        return getDateValue(false, i, calendar);
    }

    // Decompiling method: getDouble  Signature: (I)D
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 8993
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type D At 0 7 Range 0 6 Init 0 fixed
    public double getDouble(int i)
        throws SQLException
    {
        return getDoubleValue(false, i);
    }

    // Decompiling method: getFloat  Signature: (I)F
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 9048
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type F At 0 7 Range 0 6 Init 0 fixed
    public float getFloat(int i)
        throws SQLException
    {
        return getFloatValue(false, i);
    }

    // Decompiling method: getInt  Signature: (I)I
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 9103
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type I At 0 7 Range 0 6 Init 0 fixed
    public int getInt(int i)
        throws SQLException
    {
        return getIntValue(false, i);
    }

    // Decompiling method: getLong  Signature: (I)J
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 9158
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type J At 0 7 Range 0 6 Init 0 fixed
    public long getLong(int i)
        throws SQLException
    {
        return getLongValue(false, i);
    }

    // Decompiling method: getNUMBER  Signature: (I)Loracle/sql/NUMBER;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 9213
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Loracle/sql/NUMBER; At 0 7 Range 0 6 Init 0 fixed
    public NUMBER getNUMBER(int i)
        throws SQLException
    {
        return getNUMBERValue(false, i);
    }

    // Decompiling method: getOPAQUE  Signature: (I)Loracle/sql/OPAQUE;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 9268
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Loracle/sql/OPAQUE; At 0 7 Range 0 6 Init 0 fixed
    public OPAQUE getOPAQUE(int i)
        throws SQLException
    {
        return getOPAQUEValue(false, i);
    }

    // Decompiling method: getORAData  Signature: (ILoracle/sql/ORADataFactory;)Ljava/lang/Object;
    // Max stack: 4, #locals: 3, #params: 3
    // Code length: 8 bytes, Code offset: 9323
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 8 Range 0 7 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 8 Range 0 7 Init 0
    // Parameter  2 added: Name oradatafactory Type Loracle/sql/ORADataFactory; At 0 8 Range 0 7 Init 0
    // RetValue   3 added: Name <returnValue> Type Ljava/lang/Object; At 0 8 Range 0 7 Init 0 fixed
    public Object getORAData(int i, ORADataFactory oradatafactory)
        throws SQLException
    {
        return getORADataValue(false, i, oradatafactory);
    }

    // Decompiling method: getObject  Signature: (I)Ljava/lang/Object;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 9379
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Ljava/lang/Object; At 0 7 Range 0 6 Init 0 fixed
    public Object getObject(int i)
        throws SQLException
    {
        return getObjectValue(false, i);
    }

    // Decompiling method: getObject  Signature: (ILjava/util/Map;)Ljava/lang/Object;
    // Max stack: 4, #locals: 3, #params: 3
    // Code length: 8 bytes, Code offset: 9434
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 8 Range 0 7 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 8 Range 0 7 Init 0
    // Parameter  2 added: Name map Type Ljava/util/Map; At 0 8 Range 0 7 Init 0
    // RetValue   3 added: Name <returnValue> Type Ljava/lang/Object; At 0 8 Range 0 7 Init 0 fixed
    public Object getObject(int i, Map map)
        throws SQLException
    {
        return getObjectValue(false, i, map);
    }

    // Decompiling method: getOracleObject  Signature: (I)Loracle/sql/Datum;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 9490
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Loracle/sql/Datum; At 0 7 Range 0 6 Init 0 fixed
    public Datum getOracleObject(int i)
        throws SQLException
    {
        return getOracleObjectValue(false, i);
    }

    // Decompiling method: getOraclePlsqlIndexTable  Signature: (I)[Loracle/sql/Datum;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 41 bytes, Code offset: 9545
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 41 Range 0 40 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 41 Range 0 40 Init 0
    // RetValue   2 added: Name <returnValue> Type [Loracle/sql/Datum; At 0 41 Range 0 40 Init 0 fixed
    public synchronized Datum[] getOraclePlsqlIndexTable(int i)
        throws SQLException
    {
        prepare_for_new_get(false, i);
        if(binds_out.getType(i - 1) != 998)
        {
            DBError.throwSqlException(4);
        }
        return binds_out.getPlsqlIndexTableItem(i - 1, m_currentRank);
    }

    // Decompiling method: getPlsqlIndexTable  Signature: (I)Ljava/lang/Object;
    // Max stack: 4, #locals: 6, #params: 2
    // Code length: 178 bytes, Code offset: 9646
    // Line Number Table found: 17 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 178 Range 0 177 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 178 Range 0 177 Init 0
    // RetValue   6 added: Name <returnValue> Type Ljava/lang/Object; At 0 178 Range 0 177 Init 0 fixed
    // LocalVar   2 added: Name adatum Type [Loracle/sql/Datum; At 5 152 Range 5 156 Init 5
    // LocalVar   3 added: Name j Type I At 16 5 Range 16 20 Init 16
    // LocalVar   4 added: Name obj Type A At 18 159 Range 18 176 Init 18
    // LocalVar   4 chged: Name as Oname obj Type [Ljava/lang/String; At 93 84 Range 18 176 Init 18
    // LocalVar   4 chged: Name aobj Oname as Type [Ljava/lang/Object; At 103 74 Range 18 176 Init 18
    // LocalVar   4 chged: Name obj Oname aobj Type Ljava/lang/Object; At 114 63 Range 18 176 Init 18
    // LocalVar   5 added: Name flag Type Z At 136 33 Range 136 168 Init 136
    // LocalVar   5 chged: Name k Oname flag Type I At 167 2 Range 136 168 Init 136
    public synchronized Object getPlsqlIndexTable(int i)
        throws SQLException
    {
        Datum adatum[] = getOraclePlsqlIndexTable(i);
        int j = binds_out.getPlsqlIndexTableType(i - 1);
        Object obj = null;
        switch(j)
        {
        case 1: // '\001'
        case 96: // '`'
        case 999: 
            obj = new String[adatum.length];
            break;

        case 2: // '\002'
        case 6: // '\006'
            obj = new BigDecimal[adatum.length];
            break;

        case 23: // '\027'
            obj = new byte[adatum.length][];
            break;

        case 12: // '\f'
            obj = new Timestamp[adatum.length];
            break;

        default:
            DBError.throwSqlException(1, "Invalid column type");
            break;
        }
        for(int k = 0; k < obj.length; k++)
        {
            obj[k] = adatum[k] != null ? adatum[k].toJdbc() : null;
        }

        return obj;
    }

    // Decompiling method: getPlsqlIndexTable  Signature: (ILjava/lang/Class;)Ljava/lang/Object;
    // Max stack: 4, #locals: 7, #params: 3
    // Code length: 501 bytes, Code offset: 9936
    // Line Number Table found: 54 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 501 Range 0 500 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 501 Range 0 500 Init 0
    // Parameter  2 added: Name class1 Type Ljava/lang/Class; At 0 501 Range 0 500 Init 0
    // RetValue   7 added: Name <returnValue> Type Ljava/lang/Object; At 0 501 Range 0 500 Init 0 fixed
    // LocalVar   3 added: Name adatum Type [Loracle/sql/Datum; At 5 482 Range 5 486 Init 5
    // LocalVar   4 added: Name s Type Ljava/lang/String; At 26 412 Range 26 437 Init 26
    // LocalVar   5 added: Name abyte0 Type [B At 42 43 Range 42 84 Init 42
    // LocalVar   6 added: Name flag Type Z At 45 33 Range 45 77 Init 45
    // LocalVar   6 chged: Name j Oname flag Type I At 76 2 Range 45 77 Init 45
    // LocalVar   5 added: Name ac Type [C At 100 44 Range 100 143 Init 100
    // LocalVar   6 added: Name flag Type Z At 103 34 Range 103 136 Init 103
    // LocalVar   6 chged: Name k Oname flag Type I At 135 2 Range 103 136 Init 103
    // LocalVar   5 added: Name ad Type [D At 159 43 Range 159 201 Init 159
    // LocalVar   6 added: Name flag Type Z At 162 33 Range 162 194 Init 162
    // LocalVar   6 chged: Name l Oname flag Type I At 193 2 Range 162 194 Init 162
    // LocalVar   5 added: Name af Type [F At 217 43 Range 217 259 Init 217
    // LocalVar   6 added: Name flag Type Z At 220 33 Range 220 252 Init 220
    // LocalVar   6 chged: Name i1 Oname flag Type I At 251 2 Range 220 252 Init 220
    // LocalVar   5 added: Name ai Type [I At 275 43 Range 275 317 Init 275
    // LocalVar   6 added: Name flag Type Z At 278 33 Range 278 310 Init 278
    // LocalVar   6 chged: Name j1 Oname flag Type I At 309 2 Range 278 310 Init 278
    // LocalVar   5 added: Name al Type [J At 333 43 Range 333 375 Init 333
    // LocalVar   6 added: Name flag Type Z At 336 33 Range 336 368 Init 336
    // LocalVar   6 chged: Name k1 Oname flag Type I At 367 2 Range 336 368 Init 336
    // LocalVar   5 added: Name aword0 Type [S At 391 44 Range 391 434 Init 391
    // LocalVar   6 added: Name flag Type Z At 394 34 Range 394 427 Init 394
    // LocalVar   6 chged: Name l1 Oname flag Type I At 426 2 Range 394 427 Init 394
    // LocalVar   5 added: Name aflag Type [Z At 450 43 Range 450 492 Init 450
    // LocalVar   6 added: Name flag Type Z At 453 33 Range 453 485 Init 453
    // LocalVar   6 chged: Name i2 Oname flag Type I At 484 2 Range 453 485 Init 453
    public synchronized Object getPlsqlIndexTable(int i, Class class1)
        throws SQLException
    {
        Datum adatum[] = getOraclePlsqlIndexTable(i);
        if(class1 == null || !class1.isPrimitive())
        {
            DBError.throwSqlException(68);
        }
        String s = class1.getName();
        if(s.equals("byte"))
        {
            byte abyte0[] = new byte[adatum.length];
            for(int j = 0; j < adatum.length; j++)
            {
                abyte0[j] = adatum[j] == null ? 0 : adatum[j].byteValue();
            }

            return abyte0;
        }
        if(s.equals("char"))
        {
            char ac[] = new char[adatum.length];
            for(int k = 0; k < adatum.length; k++)
            {
                ac[k] = adatum[k] == null ? '\0' : (char)adatum[k].intValue();
            }

            return ac;
        }
        if(s.equals("double"))
        {
            double ad[] = new double[adatum.length];
            for(int l = 0; l < adatum.length; l++)
            {
                ad[l] = adatum[l] == null ? 0.0D : adatum[l].doubleValue();
            }

            return ad;
        }
        if(s.equals("float"))
        {
            float af[] = new float[adatum.length];
            for(int i1 = 0; i1 < adatum.length; i1++)
            {
                af[i1] = adatum[i1] == null ? 0.0F : adatum[i1].floatValue();
            }

            return af;
        }
        if(s.equals("int"))
        {
            int ai[] = new int[adatum.length];
            for(int j1 = 0; j1 < adatum.length; j1++)
            {
                ai[j1] = adatum[j1] == null ? 0 : adatum[j1].intValue();
            }

            return ai;
        }
        if(s.equals("long"))
        {
            long al[] = new long[adatum.length];
            for(int k1 = 0; k1 < adatum.length; k1++)
            {
                al[k1] = adatum[k1] == null ? 0L : adatum[k1].longValue();
            }

            return al;
        }
        if(s.equals("short"))
        {
            short aword0[] = new short[adatum.length];
            for(int l1 = 0; l1 < adatum.length; l1++)
            {
                aword0[l1] = adatum[l1] == null ? 0 : (short)adatum[l1].intValue();
            }

            return aword0;
        }
        if(s.equals("boolean"))
        {
            boolean aflag[] = new boolean[adatum.length];
            for(int i2 = 0; i2 < adatum.length; i2++)
            {
                aflag[i2] = adatum[i2] == null ? false : adatum[i2].booleanValue();
            }

            return aflag;
        } else
        {
            DBError.throwSqlException(23);
            return null;
        }
    }

    // Decompiling method: getRAW  Signature: (I)Loracle/sql/RAW;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 10697
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Loracle/sql/RAW; At 0 7 Range 0 6 Init 0 fixed
    public RAW getRAW(int i)
        throws SQLException
    {
        return getRAWValue(false, i);
    }

    // Decompiling method: getREF  Signature: (I)Loracle/sql/REF;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 10752
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Loracle/sql/REF; At 0 7 Range 0 6 Init 0 fixed
    public REF getREF(int i)
        throws SQLException
    {
        return getREFValue(false, i);
    }

    // Decompiling method: getROWID  Signature: (I)Loracle/sql/ROWID;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 10807
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Loracle/sql/ROWID; At 0 7 Range 0 6 Init 0 fixed
    public ROWID getROWID(int i)
        throws SQLException
    {
        return getROWIDValue(false, i);
    }

    // Decompiling method: getRef  Signature: (I)Ljava/sql/Ref;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 10862
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Ljava/sql/Ref; At 0 7 Range 0 6 Init 0 fixed
    public Ref getRef(int i)
        throws SQLException
    {
        return getREFValue(false, i);
    }

    // Decompiling method: getSTRUCT  Signature: (I)Loracle/sql/STRUCT;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 10917
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Loracle/sql/STRUCT; At 0 7 Range 0 6 Init 0 fixed
    public STRUCT getSTRUCT(int i)
        throws SQLException
    {
        return getSTRUCTValue(false, i);
    }

    // Decompiling method: getShort  Signature: (I)S
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 10972
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type S At 0 7 Range 0 6 Init 0 fixed
    public short getShort(int i)
        throws SQLException
    {
        return getShortValue(false, i);
    }

    // Decompiling method: getString  Signature: (I)Ljava/lang/String;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 11027
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Ljava/lang/String; At 0 7 Range 0 6 Init 0 fixed
    public String getString(int i)
        throws SQLException
    {
        return getStringValue(false, i);
    }

    // Decompiling method: getTIMESTAMP  Signature: (I)Loracle/sql/TIMESTAMP;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 11082
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Loracle/sql/TIMESTAMP; At 0 7 Range 0 6 Init 0 fixed
    public TIMESTAMP getTIMESTAMP(int i)
        throws SQLException
    {
        return getTIMESTAMPValue(false, i);
    }

    // Decompiling method: getTIMESTAMPLTZ  Signature: (I)Loracle/sql/TIMESTAMPLTZ;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 11137
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Loracle/sql/TIMESTAMPLTZ; At 0 7 Range 0 6 Init 0 fixed
    public TIMESTAMPLTZ getTIMESTAMPLTZ(int i)
        throws SQLException
    {
        return getTIMESTAMPLTZValue(false, i);
    }

    // Decompiling method: getTIMESTAMPTZ  Signature: (I)Loracle/sql/TIMESTAMPTZ;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 11192
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Loracle/sql/TIMESTAMPTZ; At 0 7 Range 0 6 Init 0 fixed
    public TIMESTAMPTZ getTIMESTAMPTZ(int i)
        throws SQLException
    {
        return getTIMESTAMPTZValue(false, i);
    }

    // Decompiling method: getTime  Signature: (I)Ljava/sql/Time;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 11247
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Ljava/sql/Time; At 0 7 Range 0 6 Init 0 fixed
    public Time getTime(int i)
        throws SQLException
    {
        return getTimeValue(false, i);
    }

    // Decompiling method: getTime  Signature: (ILjava/util/Calendar;)Ljava/sql/Time;
    // Max stack: 4, #locals: 3, #params: 3
    // Code length: 8 bytes, Code offset: 11302
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 8 Range 0 7 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 8 Range 0 7 Init 0
    // Parameter  2 added: Name calendar Type Ljava/util/Calendar; At 0 8 Range 0 7 Init 0
    // RetValue   3 added: Name <returnValue> Type Ljava/sql/Time; At 0 8 Range 0 7 Init 0 fixed
    public Time getTime(int i, Calendar calendar)
        throws SQLException
    {
        return getTimeValue(false, i, calendar);
    }

    // Decompiling method: getTimestamp  Signature: (I)Ljava/sql/Timestamp;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 11358
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Ljava/sql/Timestamp; At 0 7 Range 0 6 Init 0 fixed
    public Timestamp getTimestamp(int i)
        throws SQLException
    {
        return getTimestampValue(false, i);
    }

    // Decompiling method: getTimestamp  Signature: (ILjava/util/Calendar;)Ljava/sql/Timestamp;
    // Max stack: 4, #locals: 3, #params: 3
    // Code length: 8 bytes, Code offset: 11413
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 8 Range 0 7 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 8 Range 0 7 Init 0
    // Parameter  2 added: Name calendar Type Ljava/util/Calendar; At 0 8 Range 0 7 Init 0
    // RetValue   3 added: Name <returnValue> Type Ljava/sql/Timestamp; At 0 8 Range 0 7 Init 0 fixed
    public Timestamp getTimestamp(int i, Calendar calendar)
        throws SQLException
    {
        return getTimestampValue(false, i, calendar);
    }

    // Decompiling method: getUnicodeStream  Signature: (I)Ljava/io/InputStream;
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 11469
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type Ljava/io/InputStream; At 0 7 Range 0 6 Init 0 fixed
    public InputStream getUnicodeStream(int i)
        throws SQLException
    {
        return getUnicodeStreamValue(false, i);
    }

    // Decompiling method: registerIndexTableOutParameter  Signature: (IIII)V
    // Max stack: 6, #locals: 6, #params: 5
    // Code length: 51 bytes, Code offset: 11524
    // Line Number Table found: 11 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 51 Range 0 50 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 51 Range 0 50 Init 0
    // Parameter  2 added: Name j Type I At 0 51 Range 0 50 Init 0
    // Parameter  3 added: Name k Type I At 0 51 Range 0 50 Init 0
    // Parameter  4 added: Name l Type I At 0 51 Range 0 50 Init 0
    // RetValue   6 added: Name <returnValue> Type V At 0 51 Range 0 50 Init 0 fixed
    // LocalVar   5 added: Name i1 Type I At 16 31 Range 16 46 Init 16
    public synchronized void registerIndexTableOutParameter(int i, int j, int k, int l)
        throws SQLException
    {
        if(j < 0)
        {
            DBError.throwSqlException(68, "maxLen < 0");
        }
        int i1 = get_internal_type(k);
        checkPlsqlIndexTableBindTypes(false, i - 1, j, i1, l);
        resetBatch();
        binds_out.setPlsqlIndexTableType(i - 1, j, l, i1);
        return;
    }

    // Decompiling method: registerOutParameter  Signature: (II)V
    // Max stack: 5, #locals: 3, #params: 3
    // Code length: 9 bytes, Code offset: 11663
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 9 Range 0 8 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 9 Range 0 8 Init 0
    // Parameter  2 added: Name j Type I At 0 9 Range 0 8 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 9 Range 0 8 Init 0 fixed
    public void registerOutParameter(int i, int j)
        throws SQLException
    {
        registerOutParameter(i, j, 0, -1);
        return;
    }

    // Decompiling method: registerOutParameter  Signature: (III)V
    // Max stack: 5, #locals: 4, #params: 4
    // Code length: 9 bytes, Code offset: 11724
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 9 Range 0 8 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 9 Range 0 8 Init 0
    // Parameter  2 added: Name j Type I At 0 9 Range 0 8 Init 0
    // Parameter  3 added: Name k Type I At 0 9 Range 0 8 Init 0
    // RetValue   4 added: Name <returnValue> Type V At 0 9 Range 0 8 Init 0 fixed
    public void registerOutParameter(int i, int j, int k)
        throws SQLException
    {
        registerOutParameter(i, j, k, -1);
        return;
    }

    // Decompiling method: registerOutParameter  Signature: (IIII)V
    // Max stack: 6, #locals: 8, #params: 5
    // Code length: 311 bytes, Code offset: 11785
    // Line Number Table found: 35 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 311 Range 0 310 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 311 Range 0 310 Init 0
    // Parameter  2 added: Name j Type I At 0 311 Range 0 310 Init 0
    // Parameter  3 added: Name k Type I At 0 311 Range 0 310 Init 0
    // Parameter  4 added: Name l Type I At 0 311 Range 0 310 Init 0
    // RetValue   8 added: Name <returnValue> Type V At 0 311 Range 0 310 Init 0 fixed
    // LocalVar   5 added: Name i1 Type I At 59 245 Range 59 303 Init 59
    // LocalVar   6 added: Name j1 Type I At 66 231 Range 66 296 Init 66
    // LocalVar   7 added: Name k1 Type I At 85 153 Range 85 237 Init 85
    public synchronized void registerOutParameter(int i, int j, int k, int l)
        throws SQLException
    {
        if(j == 2002 || j == 2008 || j == 2003 || j == 2006 || j == 2007)
        {
            DBError.throwSqlException(12, "sqlType=" + j);
        }
        int i1 = i - 1;
        int j1 = get_internal_type(j);
        checkBindTypes(false, i1, j1);
        resetBatch();
        int k1 = max_field_size;
        if(j1 == 96 || j1 == 1 || j1 == 999)
        {
            if(l != -1 && k1 < l)
            {
                k1 = l;
            }
            binds_out.setType(i1, 1, k1, binds_out.getFormOfUse(i1));
        } else
        if(j1 == 8)
        {
            if(l != -1 && k1 < l)
            {
                k1 = l;
            }
            binds_out.setType(i1, 1, k1, binds_out.getFormOfUse(i1));
        } else
        if(j1 == 24 || j1 == 23)
        {
            if(l != -1 && k1 < l)
            {
                k1 = l;
            }
            binds_out.setType(i1, 23, k1, binds_out.getFormOfUse(i1));
        } else
        if(j1 == 102)
        {
            binds_out.setType(i1, 102, 0, binds_out.getFormOfUse(i1));
            has_ref_cursors = true;
        } else
        {
            binds_out.setType(i1, j1, 0, binds_out.getFormOfUse(i1));
        }
        return;
    }

    // Decompiling method: registerOutParameter  Signature: (IILjava/lang/String;)V
    // Max stack: 4, #locals: 7, #params: 4
    // Code length: 204 bytes, Code offset: 12280
    // Line Number Table found: 29 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 204 Range 0 203 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 204 Range 0 203 Init 0
    // Parameter  2 added: Name j Type I At 0 204 Range 0 203 Init 0
    // Parameter  3 added: Name s Type Ljava/lang/String; At 0 204 Range 0 203 Init 0
    // RetValue   7 added: Name <returnValue> Type V At 0 204 Range 0 203 Init 0 fixed
    // LocalVar   4 added: Name k Type I At 61 131 Range 61 191 Init 61
    // LocalVar   5 added: Name l Type I At 66 124 Range 66 189 Init 66
    // LocalVar   6 added: Name structdescriptor Type Loracle/sql/StructDescriptor; At 110 12 Range 110 121 Init 110
    // LocalVar   6 added: Name arraydescriptor Type Loracle/sql/ArrayDescriptor; At 146 12 Range 146 157 Init 146
    // LocalVar   6 added: Name opaquedescriptor Type Loracle/sql/OpaqueDescriptor; At 182 12 Range 182 193 Init 182
    public synchronized void registerOutParameter(int i, int j, String s)
        throws SQLException
    {
        if(j != 2002 && j != 2008 && j != 2003 && j != 2006 && j != 2007)
        {
            DBError.throwSqlException(12, "sqlType=" + j);
        }
        int k = get_internal_type(j);
        int l = i - 1;
        checkBindTypes(false, l, k);
        resetBatch();
        if(j == 2002 || j == 2006 || j == 2008)
        {
            StructDescriptor structdescriptor = StructDescriptor.createDescriptor(s, connection);
            binds_out.setType(l, k, structdescriptor.getOracleTypeADT());
        } else
        if(j == 2003)
        {
            ArrayDescriptor arraydescriptor = ArrayDescriptor.createDescriptor(s, connection);
            binds_out.setType(l, k, arraydescriptor.getOracleTypeCOLLECTION());
        } else
        if(j == 2007)
        {
            OpaqueDescriptor opaquedescriptor = OpaqueDescriptor.createDescriptor(s, connection);
            binds_out.setType(l, k, (OracleTypeOPAQUE)opaquedescriptor.getPickler());
        }
        return;
    }

    // Decompiling method: resetBatch  Signature: ()V
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 6 bytes, Code offset: 12644
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 6 Range 0 5 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type V At 0 6 Range 0 5 Init 0 fixed
    private void resetBatch()
    {
        batch = 1;
        return;
    }

    // Decompiling method: sendBatch  Signature: ()I
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 5 bytes, Code offset: 12692
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 5 Range 0 4 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type I At 0 5 Range 0 4 Init 0 fixed
    public synchronized int sendBatch()
        throws SQLException
    {
        return valid_rows;
    }

    // Decompiling method: setExecuteBatch  Signature: (I)V
    // Max stack: 1, #locals: 2, #params: 2
    // Code length: 5 bytes, Code offset: 12745
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 5 Range 0 4 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 5 Range 0 4 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 5 Range 0 4 Init 0 fixed
    public synchronized void setExecuteBatch(int i)
        throws SQLException
    {
        resetBatch();
        return;
    }

    // Decompiling method: setFormOfUse  Signature: (IS)V
    // Max stack: 3, #locals: 3, #params: 3
    // Code length: 19 bytes, Code offset: 12802
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 19 Range 0 18 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 19 Range 0 18 Init 0
    // Parameter  2 added: Name word0 Type S At 0 19 Range 0 18 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 19 Range 0 18 Init 0 fixed
    public synchronized void setFormOfUse(int i, short word0)
    {
        binds_in.setFormOfUse(i, word0);
        binds_out.setFormOfUse(i, word0);
        return;
    }

    // Decompiling method: wasNull  Signature: ()Z
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 5 bytes, Code offset: 12867
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/OracleCallableStatement; At 0 5 Range 0 4 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Z At 0 5 Range 0 4 Init 0 fixed
    public boolean wasNull()
        throws SQLException
    {
        return wasNullValue();
    }
}
