// 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:   OracleSQLOutput.java
// Class Version:      45.3

package oracle.sql;

import java.io.*;
import java.math.BigDecimal;
import java.sql.*;
import oracle.jdbc.OracleConnection;
import oracle.jdbc.dbaccess.DBError;

// Referenced classes of package oracle.sql:
//            STRUCT, StructDescriptor, ARRAY, BFILE, 
//            BLOB, CHAR, CLOB, DATE, 
//            NUMBER, Datum, RAW, ROWID, 
//            REF

// flag ACC_SUPER is set
public class OracleSQLOutput
    implements SQLOutput
{
    // Constants:          186
    // Interfaces:         1
    // Fields:             4
    // Methods:            37
    // Class Attributes:   1


    private StructDescriptor descriptor;
    private Object attributes[];
    private int index;
    private OracleConnection conn;

    // Decompiling method: <init>  Signature: (Loracle/sql/StructDescriptor;Loracle/jdbc/OracleConnection;)V
    // Max stack: 2, #locals: 3, #params: 3
    // Code length: 31 bytes, Code offset: 2574
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 31 Range 0 30 Init 0 fixed
    // Parameter  1 added: Name structdescriptor Type Loracle/sql/StructDescriptor; At 0 31 Range 0 30 Init 0
    // Parameter  2 added: Name oracleconnection Type Loracle/jdbc/OracleConnection; At 0 31 Range 0 30 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 31 Range 0 30 Init 0 fixed
    public OracleSQLOutput(StructDescriptor structdescriptor, OracleConnection oracleconnection)
        throws SQLException
    {
        super();
        descriptor = structdescriptor;
        attributes = new Object[structdescriptor.getLength()];
        conn = oracleconnection;
        index = 0;
        return;
    }

    // Decompiling method: getSTRUCT  Signature: ()Loracle/sql/STRUCT;
    // Max stack: 5, #locals: 1, #params: 1
    // Code length: 20 bytes, Code offset: 2673
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 20 Range 0 19 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Loracle/sql/STRUCT; At 0 20 Range 0 19 Init 0 fixed
    public STRUCT getSTRUCT()
        throws SQLException
    {
        return new STRUCT(descriptor, conn, attributes);
    }

    // Decompiling method: writeArray  Signature: (Ljava/sql/Array;)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 18 bytes, Code offset: 2741
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 18 Range 0 17 Init 0 fixed
    // Parameter  1 added: Name array Type Ljava/sql/Array; At 0 18 Range 0 17 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 18 Range 0 17 Init 0 fixed
    public void writeArray(Array array)
        throws SQLException
    {
        attributes[index++] = array;
        return;
    }

    // Decompiling method: writeArray  Signature: (Loracle/sql/ARRAY;)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 18 bytes, Code offset: 2811
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 18 Range 0 17 Init 0 fixed
    // Parameter  1 added: Name array Type Loracle/sql/ARRAY; At 0 18 Range 0 17 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 18 Range 0 17 Init 0 fixed
    public void writeArray(ARRAY array)
        throws SQLException
    {
        attributes[index++] = array;
        return;
    }

    // Decompiling method: writeAsciiStream  Signature: (Ljava/io/InputStream;)V
    // Max stack: 5, #locals: 7, #params: 2
    // Code length: 108 bytes, Code offset: 2881
    // Exception table: 1 entries
    //           start  22 end 73 handler 76 type IOException
    // Line Number Table found: 17 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 108 Range 0 107 Init 0 fixed
    // Parameter  1 added: Name inputstream Type Ljava/io/InputStream; At 0 108 Range 0 107 Init 0
    // RetValue   7 added: Name <returnValue> Type V At 0 108 Range 0 107 Init 0 fixed
    // LocalVar   2 added: Name stringbuffer Type Ljava/lang/StringBuffer; At 7 77 Range 7 83 Init 7
    // LocalVar   3 added: Name abyte0 Type [B At 12 51 Range 12 62 Init 12
    // LocalVar   4 added: Name ac Type [C At 17 37 Range 17 53 Init 17
    // LocalVar   5 added: Name flag Type Z At 20 2 Range 20 21 Init 20
    // LocalVar   5 added: Name i Type I At 46 23 Range 46 68 Init 67
    // LocalVar   6 added: Name s Type Ljava/lang/String; At 87 19 Range 87 105 Init 87
    // LocalVar   6 added: Name flag1 Type Z At 26 20 Range 26 45 Init 26
    // LocalVar   6 chged: Name j Oname flag1 Type I At 44 2 Range 26 45 Init 26
    // LocalVar   6 added: Name ioexception Type Ljava/io/IOException; At 76 4 Range 76 79 Init 76
    // LocalVar   5 chged: Name k Oname flag Type I At 20 2 Range 20 21 Init 20
    // LocalVar   5 name i(I) merged out into k(I)
    public void writeAsciiStream(InputStream inputstream)
        throws SQLException
    {
        StringBuffer stringbuffer = new StringBuffer();
        byte abyte0[] = new byte[100];
        char ac[] = new char[100];
        int i = 0;
        try
        {
            while((i = inputstream.read(abyte0)) != -1) 
            {
                for(int j = 0; j < i; j++)
                {
                    ac[j] = (char)abyte0[j];
                }

                stringbuffer.append(ac, 0, i);
            }
        }
        catch(IOException ioexception)
        {
            DBError.check_error(ioexception);
        }
        String s = stringbuffer.toString();
        attributes[index++] = s;
        return;
    }

    // Decompiling method: writeBfile  Signature: (Loracle/sql/BFILE;)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 18 bytes, Code offset: 3109
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 18 Range 0 17 Init 0 fixed
    // Parameter  1 added: Name bfile Type Loracle/sql/BFILE; At 0 18 Range 0 17 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 18 Range 0 17 Init 0 fixed
    public void writeBfile(BFILE bfile)
        throws SQLException
    {
        attributes[index++] = bfile;
        return;
    }

    // Decompiling method: writeBigDecimal  Signature: (Ljava/math/BigDecimal;)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 18 bytes, Code offset: 3179
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 18 Range 0 17 Init 0 fixed
    // Parameter  1 added: Name bigdecimal Type Ljava/math/BigDecimal; At 0 18 Range 0 17 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 18 Range 0 17 Init 0 fixed
    public void writeBigDecimal(BigDecimal bigdecimal)
        throws SQLException
    {
        attributes[index++] = bigdecimal;
        return;
    }

    // Decompiling method: writeBinaryStream  Signature: (Ljava/io/InputStream;)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 6 bytes, Code offset: 3249
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 6 Range 0 5 Init 0 fixed
    // Parameter  1 added: Name inputstream Type Ljava/io/InputStream; At 0 6 Range 0 5 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 6 Range 0 5 Init 0 fixed
    public void writeBinaryStream(InputStream inputstream)
        throws SQLException
    {
        writeAsciiStream(inputstream);
        return;
    }

    // Decompiling method: writeBlob  Signature: (Ljava/sql/Blob;)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 18 bytes, Code offset: 3307
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 18 Range 0 17 Init 0 fixed
    // Parameter  1 added: Name blob Type Ljava/sql/Blob; At 0 18 Range 0 17 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 18 Range 0 17 Init 0 fixed
    public void writeBlob(Blob blob)
        throws SQLException
    {
        attributes[index++] = blob;
        return;
    }

    // Decompiling method: writeBlob  Signature: (Loracle/sql/BLOB;)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 18 bytes, Code offset: 3377
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 18 Range 0 17 Init 0 fixed
    // Parameter  1 added: Name blob Type Loracle/sql/BLOB; At 0 18 Range 0 17 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 18 Range 0 17 Init 0 fixed
    public void writeBlob(BLOB blob)
        throws SQLException
    {
        attributes[index++] = blob;
        return;
    }

    // Decompiling method: writeBoolean  Signature: (Z)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 25 bytes, Code offset: 3447
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 25 Range 0 24 Init 0 fixed
    // Parameter  1 added: Name flag Type Z At 0 25 Range 0 24 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 25 Range 0 24 Init 0 fixed
    public void writeBoolean(boolean flag)
        throws SQLException
    {
        attributes[index++] = new Boolean(flag);
        return;
    }

    // Decompiling method: writeByte  Signature: (B)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 25 bytes, Code offset: 3524
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 25 Range 0 24 Init 0 fixed
    // Parameter  1 added: Name byte0 Type B At 0 25 Range 0 24 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 25 Range 0 24 Init 0 fixed
    public void writeByte(byte byte0)
        throws SQLException
    {
        attributes[index++] = new Integer(byte0);
        return;
    }

    // Decompiling method: writeBytes  Signature: ([B)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 18 bytes, Code offset: 3601
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 18 Range 0 17 Init 0 fixed
    // Parameter  1 added: Name abyte0 Type [B At 0 18 Range 0 17 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 18 Range 0 17 Init 0 fixed
    public void writeBytes(byte abyte0[])
        throws SQLException
    {
        attributes[index++] = abyte0;
        return;
    }

    // Decompiling method: writeCHAR  Signature: (Loracle/sql/CHAR;)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 18 bytes, Code offset: 3671
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 18 Range 0 17 Init 0 fixed
    // Parameter  1 added: Name char1 Type Loracle/sql/CHAR; At 0 18 Range 0 17 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 18 Range 0 17 Init 0 fixed
    public void writeCHAR(CHAR char1)
        throws SQLException
    {
        attributes[index++] = char1;
        return;
    }

    // Decompiling method: writeCharacterStream  Signature: (Ljava/io/Reader;)V
    // Max stack: 5, #locals: 6, #params: 2
    // Code length: 74 bytes, Code offset: 3741
    // Exception table: 1 entries
    //           start  16 end 39 handler 42 type IOException
    // Line Number Table found: 13 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 74 Range 0 73 Init 0 fixed
    // Parameter  1 added: Name reader Type Ljava/io/Reader; At 0 74 Range 0 73 Init 0
    // RetValue   6 added: Name <returnValue> Type V At 0 74 Range 0 73 Init 0 fixed
    // LocalVar   2 added: Name stringbuffer Type Ljava/lang/StringBuffer; At 7 43 Range 7 49 Init 7
    // LocalVar   3 added: Name ac Type [C At 12 18 Range 12 29 Init 12
    // LocalVar   4 added: Name flag Type Z At 14 2 Range 14 15 Init 14
    // LocalVar   4 added: Name i Type I At 22 14 Range 22 35 Init 34
    // LocalVar   5 added: Name s Type Ljava/lang/String; At 53 19 Range 53 71 Init 53
    // LocalVar   5 added: Name ioexception Type Ljava/io/IOException; At 42 4 Range 42 45 Init 42
    // LocalVar   4 chged: Name j Oname flag Type I At 14 2 Range 14 15 Init 14
    // LocalVar   4 name i(I) merged out into j(I)
    public void writeCharacterStream(Reader reader)
        throws SQLException
    {
        StringBuffer stringbuffer = new StringBuffer();
        char ac[] = new char[100];
        int i = 0;
        try
        {
            while((i = reader.read(ac)) != 0) 
            {
                stringbuffer.append(ac, 0, i);
            }
        }
        catch(IOException ioexception)
        {
            DBError.check_error(ioexception);
        }
        String s = stringbuffer.toString();
        attributes[index++] = s;
        return;
    }

    // Decompiling method: writeClob  Signature: (Ljava/sql/Clob;)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 18 bytes, Code offset: 3919
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 18 Range 0 17 Init 0 fixed
    // Parameter  1 added: Name clob Type Ljava/sql/Clob; At 0 18 Range 0 17 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 18 Range 0 17 Init 0 fixed
    public void writeClob(Clob clob)
        throws SQLException
    {
        attributes[index++] = clob;
        return;
    }

    // Decompiling method: writeClob  Signature: (Loracle/sql/CLOB;)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 18 bytes, Code offset: 3989
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 18 Range 0 17 Init 0 fixed
    // Parameter  1 added: Name clob Type Loracle/sql/CLOB; At 0 18 Range 0 17 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 18 Range 0 17 Init 0 fixed
    public void writeClob(CLOB clob)
        throws SQLException
    {
        attributes[index++] = clob;
        return;
    }

    // Decompiling method: writeDATE  Signature: (Loracle/sql/DATE;)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 18 bytes, Code offset: 4059
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 18 Range 0 17 Init 0 fixed
    // Parameter  1 added: Name date Type Loracle/sql/DATE; At 0 18 Range 0 17 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 18 Range 0 17 Init 0 fixed
    public void writeDATE(DATE date)
        throws SQLException
    {
        attributes[index++] = date;
        return;
    }

    // Decompiling method: writeDate  Signature: (Ljava/sql/Date;)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 18 bytes, Code offset: 4129
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 18 Range 0 17 Init 0 fixed
    // Parameter  1 added: Name date Type Ljava/sql/Date; At 0 18 Range 0 17 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 18 Range 0 17 Init 0 fixed
    public void writeDate(Date date)
        throws SQLException
    {
        attributes[index++] = date;
        return;
    }

    // Decompiling method: writeDouble  Signature: (D)V
    // Max stack: 6, #locals: 3, #params: 3
    // Code length: 25 bytes, Code offset: 4199
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 25 Range 0 24 Init 0 fixed
    // Parameter  1 added: Name d Type D At 0 25 Range 0 24 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 25 Range 0 24 Init 0 fixed
    public void writeDouble(double d)
        throws SQLException
    {
        attributes[index++] = new Double(d);
        return;
    }

    // Decompiling method: writeFloat  Signature: (F)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 25 bytes, Code offset: 4276
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 25 Range 0 24 Init 0 fixed
    // Parameter  1 added: Name f Type F At 0 25 Range 0 24 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 25 Range 0 24 Init 0 fixed
    public void writeFloat(float f)
        throws SQLException
    {
        attributes[index++] = new Float(f);
        return;
    }

    // Decompiling method: writeInt  Signature: (I)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 25 bytes, Code offset: 4353
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 25 Range 0 24 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 25 Range 0 24 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 25 Range 0 24 Init 0 fixed
    public void writeInt(int i)
        throws SQLException
    {
        attributes[index++] = new Integer(i);
        return;
    }

    // Decompiling method: writeLong  Signature: (J)V
    // Max stack: 6, #locals: 3, #params: 3
    // Code length: 25 bytes, Code offset: 4430
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 25 Range 0 24 Init 0 fixed
    // Parameter  1 added: Name l Type J At 0 25 Range 0 24 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 25 Range 0 24 Init 0 fixed
    public void writeLong(long l)
        throws SQLException
    {
        attributes[index++] = new Long(l);
        return;
    }

    // Decompiling method: writeNUMBER  Signature: (Loracle/sql/NUMBER;)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 18 bytes, Code offset: 4507
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 18 Range 0 17 Init 0 fixed
    // Parameter  1 added: Name number Type Loracle/sql/NUMBER; At 0 18 Range 0 17 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 18 Range 0 17 Init 0 fixed
    public void writeNUMBER(NUMBER number)
        throws SQLException
    {
        attributes[index++] = number;
        return;
    }

    // Decompiling method: writeObject  Signature: (Ljava/lang/Object;)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 40 bytes, Code offset: 4577
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 40 Range 0 39 Init 0 fixed
    // Parameter  1 added: Name obj Type Ljava/lang/Object; At 0 40 Range 0 39 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 40 Range 0 39 Init 0 fixed
    public void writeObject(Object obj)
        throws SQLException
    {
        if(obj != null && (obj instanceof SQLData))
        {
            writeObject((SQLData)obj);
        } else
        {
            attributes[index++] = obj;
        }
        return;
    }

    // Decompiling method: writeObject  Signature: (Ljava/sql/SQLData;)V
    // Max stack: 2, #locals: 5, #params: 2
    // Code length: 49 bytes, Code offset: 4681
    // Line Number Table found: 9 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 49 Range 0 48 Init 0 fixed
    // Parameter  1 added: Name sqldata Type Ljava/sql/SQLData; At 0 49 Range 0 48 Init 0
    // RetValue   5 added: Name <returnValue> Type V At 0 49 Range 0 48 Init 0 fixed
    // LocalVar   2 added: Name obj Type A At 1 44 Range 1 44 Init 1
    // LocalVar   3 added: Name structdescriptor Type Loracle/sql/StructDescriptor; At 19 2 Range 19 20 Init 19
    // LocalVar   4 added: Name sqloutput Type Ljava/sql/SQLOutput; At 24 12 Range 24 35 Init 24
    // LocalVar   2 chged: Name struct Oname obj Type Loracle/sql/STRUCT; At 42 3 Range 1 44 Init 1
    public void writeObject(SQLData sqldata)
        throws SQLException
    {
        STRUCT struct = null;
        if(sqldata != null)
        {
            StructDescriptor structdescriptor = StructDescriptor.createDescriptor(sqldata.getSQLTypeName(), conn);
            SQLOutput sqloutput = structdescriptor.toJdbc2SQLOutput();
            sqldata.writeSQL(sqloutput);
            struct = ((OracleSQLOutput)sqloutput).getSTRUCT();
        }
        writeStruct(struct);
        return;
    }

    // Decompiling method: writeOracleObject  Signature: (Loracle/sql/Datum;)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 18 bytes, Code offset: 4810
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 18 Range 0 17 Init 0 fixed
    // Parameter  1 added: Name datum Type Loracle/sql/Datum; At 0 18 Range 0 17 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 18 Range 0 17 Init 0 fixed
    public void writeOracleObject(Datum datum)
        throws SQLException
    {
        attributes[index++] = datum;
        return;
    }

    // Decompiling method: writeRAW  Signature: (Loracle/sql/RAW;)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 18 bytes, Code offset: 4880
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 18 Range 0 17 Init 0 fixed
    // Parameter  1 added: Name raw Type Loracle/sql/RAW; At 0 18 Range 0 17 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 18 Range 0 17 Init 0 fixed
    public void writeRAW(RAW raw)
        throws SQLException
    {
        attributes[index++] = raw;
        return;
    }

    // Decompiling method: writeROWID  Signature: (Loracle/sql/ROWID;)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 18 bytes, Code offset: 4950
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 18 Range 0 17 Init 0 fixed
    // Parameter  1 added: Name rowid Type Loracle/sql/ROWID; At 0 18 Range 0 17 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 18 Range 0 17 Init 0 fixed
    public void writeROWID(ROWID rowid)
        throws SQLException
    {
        attributes[index++] = rowid;
        return;
    }

    // Decompiling method: writeRef  Signature: (Ljava/sql/Ref;)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 18 bytes, Code offset: 5020
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 18 Range 0 17 Init 0 fixed
    // Parameter  1 added: Name ref Type Ljava/sql/Ref; At 0 18 Range 0 17 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 18 Range 0 17 Init 0 fixed
    public void writeRef(Ref ref)
        throws SQLException
    {
        attributes[index++] = ref;
        return;
    }

    // Decompiling method: writeRef  Signature: (Loracle/sql/REF;)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 18 bytes, Code offset: 5090
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 18 Range 0 17 Init 0 fixed
    // Parameter  1 added: Name ref Type Loracle/sql/REF; At 0 18 Range 0 17 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 18 Range 0 17 Init 0 fixed
    public void writeRef(REF ref)
        throws SQLException
    {
        attributes[index++] = ref;
        return;
    }

    // Decompiling method: writeShort  Signature: (S)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 25 bytes, Code offset: 5160
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 25 Range 0 24 Init 0 fixed
    // Parameter  1 added: Name word0 Type S At 0 25 Range 0 24 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 25 Range 0 24 Init 0 fixed
    public void writeShort(short word0)
        throws SQLException
    {
        attributes[index++] = new Integer(word0);
        return;
    }

    // Decompiling method: writeString  Signature: (Ljava/lang/String;)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 18 bytes, Code offset: 5237
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 18 Range 0 17 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; At 0 18 Range 0 17 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 18 Range 0 17 Init 0 fixed
    public void writeString(String s)
        throws SQLException
    {
        attributes[index++] = s;
        return;
    }

    // Decompiling method: writeStruct  Signature: (Ljava/sql/Struct;)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 18 bytes, Code offset: 5307
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 18 Range 0 17 Init 0 fixed
    // Parameter  1 added: Name struct Type Ljava/sql/Struct; At 0 18 Range 0 17 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 18 Range 0 17 Init 0 fixed
    public void writeStruct(Struct struct)
        throws SQLException
    {
        attributes[index++] = struct;
        return;
    }

    // Decompiling method: writeStruct  Signature: (Loracle/sql/STRUCT;)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 18 bytes, Code offset: 5377
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 18 Range 0 17 Init 0 fixed
    // Parameter  1 added: Name struct Type Loracle/sql/STRUCT; At 0 18 Range 0 17 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 18 Range 0 17 Init 0 fixed
    public void writeStruct(STRUCT struct)
        throws SQLException
    {
        attributes[index++] = struct;
        return;
    }

    // Decompiling method: writeTime  Signature: (Ljava/sql/Time;)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 18 bytes, Code offset: 5447
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 18 Range 0 17 Init 0 fixed
    // Parameter  1 added: Name time Type Ljava/sql/Time; At 0 18 Range 0 17 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 18 Range 0 17 Init 0 fixed
    public void writeTime(Time time)
        throws SQLException
    {
        attributes[index++] = time;
        return;
    }

    // Decompiling method: writeTimestamp  Signature: (Ljava/sql/Timestamp;)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 18 bytes, Code offset: 5517
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/OracleSQLOutput; At 0 18 Range 0 17 Init 0 fixed
    // Parameter  1 added: Name timestamp Type Ljava/sql/Timestamp; At 0 18 Range 0 17 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 18 Range 0 17 Init 0 fixed
    public void writeTimestamp(Timestamp timestamp)
        throws SQLException
    {
        attributes[index++] = timestamp;
        return;
    }
}
