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

package oracle.jdbc.dbaccess;

import java.io.*;
import java.sql.SQLException;
import oracle.jdbc.driver.*;
import oracle.jdbc.oracore.OracleType;
import oracle.jdbc.oracore.OracleTypeADT;
import oracle.sql.StructDescriptor;

// Referenced classes of package oracle.jdbc.dbaccess:
//            DBDataSet, DBAccess, DBConversion, DBData, 
//            DBError, DBItem, DBType

// flag ACC_SUPER is set
public class DBDataSetImpl extends DBDataSet
{
    // Constants:          532
    // Interfaces:         0
    // Fields:             19
    // Methods:            68
    // Class Attributes:   1


    private static int _MIN_ARG_COUNT = 1;
    private static final boolean DEBUG = false;
    protected OracleConnection m_connection;
    private OracleStatement m_statement;
    private boolean m_dynamic;
    private int m_arrayDepth;
    private boolean m_cleanedData;
    private byte m_sql_kind;
    private boolean m_sql_kind_cached;
    private int m_noOfArgs;
    protected int m_dataSetType;
    protected DBData data[];
    protected DBType types[];
    private DBItem m_last_bind_values[];
    private boolean newDBType;
    private DBItem m_tmp_first_row_items[];
    private DBType m_tmp_first_row_types[];
    protected boolean m_first_row;
    private short form_of_use[];

    // Decompiling method: <init>  Signature: (Loracle/jdbc/driver/OracleConnection;Loracle/jdbc/driver/OracleStatement;II)V
    // Max stack: 2, #locals: 5, #params: 5
    // Code length: 70 bytes, Code offset: 7013
    // Line Number Table found: 15 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 70 Range 0 69 Init 0 fixed
    // Parameter  1 added: Name oracleconnection Type Loracle/jdbc/driver/OracleConnection; At 0 70 Range 0 69 Init 0
    // Parameter  2 added: Name oraclestatement Type Loracle/jdbc/driver/OracleStatement; At 0 70 Range 0 69 Init 0
    // Parameter  3 added: Name i Type I At 0 70 Range 0 69 Init 0
    // Parameter  4 added: Name j Type I At 0 70 Range 0 69 Init 0
    // RetValue   5 added: Name <returnValue> Type V At 0 70 Range 0 69 Init 0 fixed
    public DBDataSetImpl(OracleConnection oracleconnection, OracleStatement oraclestatement, int i, int j)
    {
        super();
        m_dynamic = false;
        m_arrayDepth = 0;
        m_cleanedData = false;
        m_last_bind_values = null;
        newDBType = false;
        m_tmp_first_row_items = null;
        m_tmp_first_row_types = null;
        form_of_use = null;
        init();
        m_connection = oracleconnection;
        m_statement = oraclestatement;
        m_arrayDepth = i;
        m_dataSetType = j;
        return;
    }

    // Decompiling method: _allocData  Signature: (I)V
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 45 bytes, Code offset: 7177
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 45 Range 0 44 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 45 Range 0 44 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 45 Range 0 44 Init 0 fixed
    private final void _allocData(int i)
    {
        if(data[i] != null)
        {
            return;
        } else
        {
            data[i] = m_dynamic ? new DBData() : new DBData(m_arrayDepth);
            return;
        }
    }

    // Decompiling method: _allocDataAndItems  Signature: (I)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 23 bytes, Code offset: 7272
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 23 Range 0 22 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 23 Range 0 22 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 23 Range 0 22 Init 0 fixed
    private final void _allocDataAndItems(int i)
        throws SQLException
    {
        if(m_dynamic)
        {
            DBError.throwSqlException(89);
        }
        _allocData(i);
        _allocItemsAndBuffers(i);
        return;
    }

    // Decompiling method: _allocItemsAndBuffers  Signature: (I)V
    // Max stack: 4, #locals: 5, #params: 2
    // Code length: 98 bytes, Code offset: 7359
    // Line Number Table found: 11 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 98 Range 0 97 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 98 Range 0 97 Init 0
    // RetValue   5 added: Name <returnValue> Type V At 0 98 Range 0 97 Init 0 fixed
    // LocalVar   2 added: Name flag Type Z At 1 1 Range 1 1 Init 1
    // LocalVar   3 added: Name j Type I At 11 83 Range 11 93 Init 11
    // LocalVar   4 added: Name dbtype Type Loracle/jdbc/dbaccess/DBType; At 18 50 Range 18 67 Init 18
    // LocalVar   2 added: Name flag1 Type Z At 21 72 Range 21 92 Init 21
    // LocalVar   2 chged: Name k Oname flag1 Type I At 92 1 Range 21 92 Init 21
    private void _allocItemsAndBuffers(int i)
        throws SQLException
    {
        boolean flag = false;
        int k = data[i].getNItems();
        DBType dbtype = types[i];
        for(int j = 0; j < k; j++)
        {
            data[i].setItem(j, m_connection.db_access.createDBItem(dbtype));
            if(!dbtype.is_stream && dbtype.type != 109 && dbtype.type != 111)
            {
                data[i].getItem(j).allocBuffer();
            }
        }

        return;
    }

    // Decompiling method: _alloc_tmp_binds  Signature: (IZ)V
    // Max stack: 5, #locals: 5, #params: 3
    // Code length: 134 bytes, Code offset: 7545
    // Line Number Table found: 23 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 134 Range 0 133 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 134 Range 0 133 Init 0
    // Parameter  2 added: Name flag Type Z At 0 134 Range 0 133 Init 0
    // RetValue   5 added: Name <returnValue> Type V At 0 134 Range 0 133 Init 0 fixed
    // LocalVar   3 added: Name j Type I At 16 15 Range 16 30 Init 16
    // LocalVar   3 added: Name k Type I At 54 5 Range 54 58 Init 54
    // LocalVar   3 added: Name l Type I At 62 40 Range 62 101 Init 62
    // LocalVar   4 added: Name adbitem Type [Loracle/jdbc/dbaccess/DBItem; At 73 21 Range 73 93 Init 73
    // LocalVar   4 added: Name obj Type A At 98 2 Range 98 99 Init 98
    // LocalVar   4 added: Name adbtype Type [Loracle/jdbc/dbaccess/DBType; At 106 21 Range 106 126 Init 106
    // LocalVar   4 added: Name obj1 Type A At 131 2 Range 131 132 Init 131
    // LocalVar   3 name l(I) merged out into k(I)
    // LocalVar   4 name obj(A) merged out into adbitem([Loracle/jdbc/dbaccess/DBItem;)
    // LocalVar   4 name obj1(A) merged out into adbtype([Loracle/jdbc/dbaccess/DBType;)
    private void _alloc_tmp_binds(int i, boolean flag)
    {
        if(m_tmp_first_row_types == null)
        {
            int j = Math.max(i + 1, _MIN_ARG_COUNT);
            if(flag)
            {
                m_tmp_first_row_items = new DBItem[j];
            }
            m_tmp_first_row_types = new DBType[j];
        } else
        if(i >= m_tmp_first_row_types.length)
        {
            int k = m_tmp_first_row_types.length;
            k = Math.max(i + 1, k);
            if(flag)
            {
                DBItem adbitem[] = new DBItem[2 * k];
                System.arraycopy(m_tmp_first_row_items, 0, adbitem, 0, m_tmp_first_row_items.length);
                m_tmp_first_row_items = adbitem;
                adbitem = null;
            }
            DBType adbtype[] = new DBType[2 * k];
            System.arraycopy(m_tmp_first_row_types, 0, adbtype, 0, m_tmp_first_row_types.length);
            m_tmp_first_row_types = adbtype;
            adbtype = null;
        }
        return;
    }

    // Decompiling method: _bindsRowCompleted  Signature: (I)V
    // Max stack: 4, #locals: 3, #params: 2
    // Code length: 298 bytes, Code offset: 7805
    // Line Number Table found: 39 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 298 Range 0 297 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 298 Range 0 297 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 298 Range 0 297 Init 0 fixed
    // LocalVar   2 added: Name flag Type Z At 62 69 Range 62 130 Init 62
    // LocalVar   2 chged: Name j Oname flag Type I At 130 1 Range 62 130 Init 62
    // LocalVar   2 added: Name flag Type Z At 146 22 Range 146 167 Init 146
    // LocalVar   2 chged: Name k Oname flag Type I At 167 1 Range 146 167 Init 146
    // LocalVar   2 added: Name flag Type Z At 194 45 Range 194 238 Init 194
    // LocalVar   2 chged: Name l Oname flag Type I At 238 1 Range 194 238 Init 194
    // LocalVar   2 added: Name flag Type Z At 260 29 Range 260 288 Init 260
    // LocalVar   2 chged: Name i1 Oname flag Type I At 288 1 Range 260 288 Init 260
    private void _bindsRowCompleted(int i)
        throws SQLException
    {
        if(i == -1 && !m_dynamic)
        {
            _transformToDynamic();
        }
        if(m_first_row)
        {
            m_first_row = false;
            data = new DBData[m_noOfArgs];
            types = new DBType[m_noOfArgs];
            m_last_bind_values = new DBItem[m_noOfArgs];
            for(int j = 0; j < m_noOfArgs; j++)
            {
                if(m_tmp_first_row_types != null && m_tmp_first_row_types[j] != null)
                {
                    types[j] = m_tmp_first_row_types[j];
                    if(m_dataSetType == 1)
                    {
                        m_last_bind_values[j] = m_tmp_first_row_items[j];
                        _allocData(j);
                    } else
                    {
                        _allocDataAndItems(j);
                    }
                }
            }

            if(m_tmp_first_row_types != null)
            {
                for(int k = 0; k < m_tmp_first_row_types.length; k++)
                {
                    m_tmp_first_row_types[k] = null;
                    m_tmp_first_row_items[k] = null;
                }

                m_tmp_first_row_items = null;
                m_tmp_first_row_types = null;
            }
        }
        if(m_cleanedData)
        {
            for(int l = 0; l < m_noOfArgs; l++)
            {
                if(types != null && types[l] != null)
                {
                    if(m_dataSetType == 1)
                    {
                        _allocData(l);
                    } else
                    {
                        _allocDataAndItems(l);
                    }
                }
            }

            m_cleanedData = false;
        }
        if(m_dataSetType == 1)
        {
            for(int i1 = 0; i1 < types.length; i1++)
            {
                if(m_last_bind_values[i1] != null)
                {
                    _setDBItem(m_last_bind_values[i1], i1, i);
                }
            }

        }
        return;
    }

    // Decompiling method: _cleanData  Signature: ()V
    // Max stack: 3, #locals: 3, #params: 1
    // Code length: 57 bytes, Code offset: 8303
    // Line Number Table found: 9 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 57 Range 0 56 Init 0 fixed
    // RetValue   3 added: Name <returnValue> Type V At 0 57 Range 0 56 Init 0 fixed
    // LocalVar   2 added: Name i Type I At 12 36 Range 12 47 Init 12
    // LocalVar   1 added: Name flag Type Z At 14 33 Range 14 46 Init 14
    // LocalVar   1 chged: Name j Oname flag Type I At 46 1 Range 14 46 Init 14
    public final void _cleanData()
    {
        if(data != null)
        {
            int j = data.length;
            for(int i = 0; i < j; i++)
            {
                if(data[i] != null)
                {
                    data[i].cleanup();
                    data[i] = null;
                }
            }

            m_cleanedData = true;
        }
        return;
    }

    // Decompiling method: _createArrayFromTypes  Signature: (I)V
    // Max stack: 0, #locals: 2, #params: 2
    // Code length: 1 bytes, Code offset: 8430
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 1 Range 0 0 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 1 Range 0 0 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 1 Range 0 0 Init 0 fixed
    private final void _createArrayFromTypes(int i)
        throws SQLException
    {
        return;
    }

    // Decompiling method: _createOrGetBindDBType  Signature: (II)Loracle/jdbc/dbaccess/DBType;
    // Max stack: 4, #locals: 4, #params: 3
    // Code length: 148 bytes, Code offset: 8479
    // Line Number Table found: 22 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 148 Range 0 147 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 148 Range 0 147 Init 0
    // Parameter  2 added: Name j Type I At 0 148 Range 0 147 Init 0
    // RetValue   4 added: Name <returnValue> Type Loracle/jdbc/dbaccess/DBType; At 0 148 Range 0 147 Init 0 fixed
    // LocalVar   3 added: Name obj Type A At 1 1 Range 1 1 Init 1
    // LocalVar   3 added: Name dbtype Type Loracle/jdbc/dbaccess/DBType; At 38 109 Range 38 146 Init 38
    // LocalVar   3 chged: Name dbtype1 Oname obj Type Loracle/jdbc/dbaccess/DBType; At 1 1 Range 1 1 Init 1
    // LocalVar   3 name dbtype(Loracle/jdbc/dbaccess/DBType;) merged out into dbtype1(Loracle/jdbc/dbaccess/DBType;)
    protected DBType _createOrGetBindDBType(int i, int j)
        throws SQLException
    {
        DBType dbtype = null;
        if(m_first_row)
        {
            if(i + 1 > m_noOfArgs)
            {
                m_noOfArgs = i + 1;
            }
            _alloc_tmp_binds(i, true);
            dbtype = m_tmp_first_row_types[i];
        } else
        {
            dbtype = _getDBType(i);
        }
        if(dbtype == null || dbtype.type != j)
        {
            newDBType = true;
            if(!m_sql_kind_cached)
            {
                m_sql_kind = m_statement.getSqlKind();
                m_sql_kind_cached = true;
            }
            if(m_sql_kind == 1)
            {
                dbtype = m_connection.db_access.createDBType(j, m_dataSetType == 1, true);
            } else
            {
                dbtype = m_connection.db_access.createDBType(j, true);
            }
        } else
        {
            newDBType = false;
        }
        return dbtype;
    }

    // Decompiling method: _createOrGetDBItem  Signature: (ILoracle/jdbc/dbaccess/DBType;I)Loracle/jdbc/dbaccess/DBItem;
    // Max stack: 4, #locals: 6, #params: 4
    // Code length: 109 bytes, Code offset: 8759
    // Line Number Table found: 15 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 109 Range 0 108 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 109 Range 0 108 Init 0
    // Parameter  2 added: Name dbtype Type Loracle/jdbc/dbaccess/DBType; At 0 109 Range 0 108 Init 0
    // Parameter  3 added: Name j Type I At 0 109 Range 0 108 Init 0
    // RetValue   6 added: Name <returnValue> Type Loracle/jdbc/dbaccess/DBItem; At 0 109 Range 0 108 Init 0 fixed
    // LocalVar   4 added: Name obj Type A At 1 2 Range 1 2 Init 1
    // LocalVar   4 added: Name dbitem Type Loracle/jdbc/dbaccess/DBItem; At 21 87 Range 21 107 Init 21
    // LocalVar   5 added: Name obj1 Type A At 35 2 Range 35 36 Init 35
    // LocalVar   5 added: Name dbitem1 Type Loracle/jdbc/dbaccess/DBItem; At 46 27 Range 46 72 Init 46
    // LocalVar   4 chged: Name dbitem2 Oname obj Type Loracle/jdbc/dbaccess/DBItem; At 1 2 Range 1 2 Init 1
    // LocalVar   4 name dbitem(Loracle/jdbc/dbaccess/DBItem;) merged out into dbitem2(Loracle/jdbc/dbaccess/DBItem;)
    // LocalVar   5 chged: Name dbitem Oname obj1 Type Loracle/jdbc/dbaccess/DBItem; At 35 2 Range 35 36 Init 35
    // LocalVar   5 name dbitem1(Loracle/jdbc/dbaccess/DBItem;) merged out into dbitem(Loracle/jdbc/dbaccess/DBItem;)
    protected DBItem _createOrGetDBItem(int i, DBType dbtype, int j)
        throws SQLException
    {
        DBItem dbitem = null;
        if(m_first_row)
        {
            dbitem = m_connection.db_access.createDBItem(dbtype);
        } else
        {
            dbitem = _getDBItem(i, j);
            DBItem dbitem1 = null;
            if(j == 0)
            {
                dbitem1 = _getLastDBItem(i);
            } else
            {
                dbitem1 = _getDBItem(i, j - 1);
            }
            if(dbitem == null || dbitem1 != null && dbitem1.equals(dbitem))
            {
                dbitem = m_connection.db_access.createDBItem(dbtype);
            } else
            {
                dbitem.reinitialize(dbtype.max_length);
            }
        }
        return dbitem;
    }

    // Decompiling method: _definesRowCompleted  Signature: ()V
    // Max stack: 5, #locals: 5, #params: 1
    // Code length: 157 bytes, Code offset: 8972
    // Line Number Table found: 21 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 157 Range 0 156 Init 0 fixed
    // RetValue   5 added: Name <returnValue> Type V At 0 157 Range 0 156 Init 0 fixed
    // LocalVar   3 added: Name i Type I At 42 36 Range 42 77 Init 42
    // LocalVar   2 added: Name flag Type Z At 52 25 Range 52 76 Init 52
    // LocalVar   2 chged: Name j Oname flag Type I At 76 1 Range 52 76 Init 52
    // LocalVar   1 added: Name flag Type Z At 82 67 Range 82 148 Init 82
    // LocalVar   1 chged: Name k Oname flag Type I At 148 1 Range 82 148 Init 82
    // LocalVar   4 added: Name dbtype Type Loracle/jdbc/dbaccess/DBType; At 92 37 Range 92 128 Init 92
    // LocalVar   3 added: Name dbitem Type Loracle/jdbc/dbaccess/DBItem; At 106 36 Range 106 141 Init 106
    private void _definesRowCompleted()
        throws SQLException
    {
        m_first_row = false;
        if(!m_dynamic)
        {
            if(types == null)
            {
                DBError.throwSqlException(21);
            }
            if(types.length == 0)
            {
                DBError.throwSqlException(21);
            }
            int k = types.length;
            data = new DBData[k];
            for(int j = 0; j < k; j++)
            {
                data[j] = new DBData(m_arrayDepth);
            }

        }
        for(int i = 0; i < m_noOfArgs; i++)
        {
            DBType dbtype = types[i];
            DBItem dbitem = m_connection.db_access.createDBItem(dbtype);
            if(dbtype.type != 109 && dbtype.type != 111 && !dbtype.is_stream)
            {
                dbitem.allocBuffer();
            }
            _setRowItems(i, dbitem);
        }

        return;
    }

    // Decompiling method: _getDBItem  Signature: (II)Loracle/jdbc/dbaccess/DBItem;
    // Max stack: 2, #locals: 3, #params: 3
    // Code length: 29 bytes, Code offset: 9257
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 29 Range 0 28 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 29 Range 0 28 Init 0
    // Parameter  2 added: Name j Type I At 0 29 Range 0 28 Init 0
    // RetValue   3 added: Name <returnValue> Type Loracle/jdbc/dbaccess/DBItem; At 0 29 Range 0 28 Init 0 fixed
    public final DBItem _getDBItem(int i, int j)
        throws SQLException
    {
        if(data == null || data[i] == null)
        {
            return null;
        } else
        {
            return data[i].getItem(j);
        }
    }

    // Decompiling method: _getDBType  Signature: (I)Loracle/jdbc/dbaccess/DBType;
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 29 bytes, Code offset: 9342
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 29 Range 0 28 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 29 Range 0 28 Init 0
    // RetValue   2 added: Name <returnValue> Type Loracle/jdbc/dbaccess/DBType; At 0 29 Range 0 28 Init 0 fixed
    private final DBType _getDBType(int i)
    {
        if(types != null && i >= 0 && i < types.length)
        {
            return types[i];
        } else
        {
            return null;
        }
    }

    // Decompiling method: _getLastDBItem  Signature: (I)Loracle/jdbc/dbaccess/DBItem;
    // Max stack: 3, #locals: 3, #params: 2
    // Code length: 70 bytes, Code offset: 9417
    // Line Number Table found: 8 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 70 Range 0 69 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 70 Range 0 69 Init 0
    // RetValue   3 added: Name <returnValue> Type Loracle/jdbc/dbaccess/DBItem; At 0 70 Range 0 69 Init 0 fixed
    // LocalVar   2 added: Name j Type I At 34 14 Range 34 47 Init 34
    private final DBItem _getLastDBItem(int i)
        throws SQLException
    {
        if(data == null || data[i] == null)
        {
            return null;
        }
        if(m_dynamic)
        {
            int j = data[i].getNItems();
            if(j == 0)
            {
                return null;
            } else
            {
                return data[i].getItem(j - 1);
            }
        } else
        {
            return data[i].getItem(m_arrayDepth - 1);
        }
    }

    // Decompiling method: _setBindDBItem  Signature: (ILoracle/jdbc/dbaccess/DBItem;)V
    // Max stack: 3, #locals: 3, #params: 3
    // Code length: 25 bytes, Code offset: 9563
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 25 Range 0 24 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 25 Range 0 24 Init 0
    // Parameter  2 added: Name dbitem Type Loracle/jdbc/dbaccess/DBItem; At 0 25 Range 0 24 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 25 Range 0 24 Init 0 fixed
    protected void _setBindDBItem(int i, DBItem dbitem)
    {
        if(m_first_row)
        {
            m_tmp_first_row_items[i] = dbitem;
        } else
        {
            m_last_bind_values[i] = dbitem;
        }
        return;
    }

    // Decompiling method: _setBindDBType  Signature: (ILoracle/jdbc/dbaccess/DBType;)V
    // Max stack: 3, #locals: 3, #params: 3
    // Code length: 80 bytes, Code offset: 9642
    // Line Number Table found: 11 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 80 Range 0 79 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 80 Range 0 79 Init 0
    // Parameter  2 added: Name dbtype Type Loracle/jdbc/dbaccess/DBType; At 0 80 Range 0 79 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 80 Range 0 79 Init 0 fixed
    protected void _setBindDBType(int i, DBType dbtype)
    {
        dbtype.FormOfUse = getFormOfUse(i);
        if(dbtype.isNType())
        {
            dbtype.ncs = m_connection.conversion.getNCharSet();
        } else
        {
            dbtype.ncs = m_connection.conversion.getDbCharSet();
        }
        if(m_first_row)
        {
            if(m_tmp_first_row_types[i] == null)
            {
                m_tmp_first_row_types[i] = dbtype;
            }
        } else
        {
            _setDBType(i, dbtype);
        }
        return;
    }

    // Decompiling method: _setDBItem  Signature: (Loracle/jdbc/dbaccess/DBItem;II)V
    // Max stack: 3, #locals: 4, #params: 4
    // Code length: 47 bytes, Code offset: 9800
    // Line Number Table found: 7 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 47 Range 0 46 Init 0 fixed
    // Parameter  1 added: Name dbitem Type Loracle/jdbc/dbaccess/DBItem; At 0 47 Range 0 46 Init 0
    // Parameter  2 added: Name i Type I At 0 47 Range 0 46 Init 0
    // Parameter  3 added: Name j Type I At 0 47 Range 0 46 Init 0
    // RetValue   4 added: Name <returnValue> Type V At 0 47 Range 0 46 Init 0 fixed
    private final void _setDBItem(DBItem dbitem, int i, int j)
        throws SQLException
    {
        if(data[i] == null)
        {
            DBError.throwSqlException(44);
        }
        if(m_dynamic)
        {
            data[i].addItem(dbitem);
        } else
        {
            data[i].setItem(j, dbitem);
        }
        return;
    }

    // Decompiling method: _setDBType  Signature: (ILoracle/jdbc/dbaccess/DBType;)V
    // Max stack: 3, #locals: 3, #params: 3
    // Code length: 28 bytes, Code offset: 9919
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 28 Range 0 27 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 28 Range 0 27 Init 0
    // Parameter  2 added: Name dbtype Type Loracle/jdbc/dbaccess/DBType; At 0 28 Range 0 27 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 28 Range 0 27 Init 0 fixed
    private final void _setDBType(int i, DBType dbtype)
    {
        if(types != null && i >= 0 && i < types.length)
        {
            types[i] = dbtype;
        }
        return;
    }

    // Decompiling method: _setRowItems  Signature: (ILoracle/jdbc/dbaccess/DBItem;)V
    // Max stack: 3, #locals: 5, #params: 3
    // Code length: 71 bytes, Code offset: 9993
    // Line Number Table found: 8 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 71 Range 0 70 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 71 Range 0 70 Init 0
    // Parameter  2 added: Name dbitem Type Loracle/jdbc/dbaccess/DBItem; At 0 71 Range 0 70 Init 0
    // RetValue   5 added: Name <returnValue> Type V At 0 71 Range 0 70 Init 0 fixed
    // LocalVar   3 added: Name flag Type Z At 24 39 Range 24 62 Init 24
    // LocalVar   3 chged: Name j Oname flag Type I At 62 1 Range 24 62 Init 24
    // LocalVar   4 added: Name dbitem1 Type Loracle/jdbc/dbaccess/DBItem; At 45 11 Range 45 55 Init 45
    private final void _setRowItems(int i, DBItem dbitem)
        throws SQLException
    {
        if(m_dynamic)
        {
            DBError.throwSqlException(89);
        }
        data[i].setItem(0, dbitem);
        for(int j = 1; j < m_arrayDepth; j++)
        {
            DBItem dbitem1 = dbitem.clone(types[i], m_connection.db_access);
            data[i].setItem(j, dbitem1);
        }

        return;
    }

    // Decompiling method: _transformToDynamic  Signature: ()V
    // Max stack: 2, #locals: 2, #params: 1
    // Code length: 44 bytes, Code offset: 10140
    // Line Number Table found: 8 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 44 Range 0 43 Init 0 fixed
    // RetValue   2 added: Name <returnValue> Type V At 0 44 Range 0 43 Init 0 fixed
    // LocalVar   1 added: Name flag Type Z At 22 13 Range 22 34 Init 22
    // LocalVar   1 chged: Name i Oname flag Type I At 34 1 Range 22 34 Init 22
    private void _transformToDynamic()
    {
        m_dynamic = true;
        m_arrayDepth = 0;
        if(!m_first_row)
        {
            _cleanData();
            for(int i = 0; i < types.length; i++)
            {
                _allocData(i);
            }

        }
        return;
    }

    // Decompiling method: checkBindObjectTypes  Signature: (Loracle/jdbc/dbaccess/DBDataSet;IILoracle/sql/StructDescriptor;)I
    // Max stack: 3, #locals: 7, #params: 5
    // Code length: 178 bytes, Code offset: 10250
    // Line Number Table found: 22 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 178 Range 0 177 Init 0 fixed
    // Parameter  1 added: Name dbdataset Type Loracle/jdbc/dbaccess/DBDataSet; At 0 178 Range 0 177 Init 0
    // Parameter  2 added: Name i Type I At 0 178 Range 0 177 Init 0
    // Parameter  3 added: Name j Type I At 0 178 Range 0 177 Init 0
    // Parameter  4 added: Name structdescriptor Type Loracle/sql/StructDescriptor; At 0 178 Range 0 177 Init 0
    // RetValue   7 added: Name <returnValue> Type I At 0 178 Range 0 177 Init 0 fixed
    // LocalVar   5 added: Name dbtype Type Loracle/jdbc/dbaccess/DBType; At 38 39 Range 38 76 Init 38
    // LocalVar   5 added: Name dbdatasetimpl Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 94 27 Range 94 120 Init 94
    // LocalVar   6 added: Name dbtype1 Type Loracle/jdbc/dbaccess/DBType; At 125 33 Range 125 157 Init 125
    public int checkBindObjectTypes(DBDataSet dbdataset, int i, int j, StructDescriptor structdescriptor)
        throws SQLException
    {
        if(i < 0)
        {
            DBError.throwSqlException(3);
        }
        if(m_first_row)
        {
            return 0;
        }
        if(types != null && types.length > i)
        {
            DBType dbtype = _getDBType(i);
            if(dbtype != null && (dbtype.type != j || dbtype.max_length == 0 && !m_statement.isColumnSetNull(i + 1) || !dbtype.otype.isInHierarchyOf(structdescriptor)))
            {
                return -1;
            }
        }
        DBDataSetImpl dbdatasetimpl = (DBDataSetImpl)dbdataset;
        if(dbdatasetimpl != null && dbdatasetimpl.types != null && dbdatasetimpl.types.length > i)
        {
            DBType dbtype1 = dbdatasetimpl._getDBType(i);
            if(dbtype1 != null && dbtype1.type != j && (dbtype1.type != 96 || j != 1) && (dbtype1.type != 1 || j != 96))
            {
                DBError.throwSqlException(12);
            }
        }
        return 0;
    }

    // Decompiling method: checkBindTypes  Signature: (Loracle/jdbc/dbaccess/DBDataSet;II)I
    // Max stack: 3, #locals: 6, #params: 4
    // Code length: 165 bytes, Code offset: 10560
    // Line Number Table found: 21 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 165 Range 0 164 Init 0 fixed
    // Parameter  1 added: Name dbdataset Type Loracle/jdbc/dbaccess/DBDataSet; At 0 165 Range 0 164 Init 0
    // Parameter  2 added: Name i Type I At 0 165 Range 0 164 Init 0
    // Parameter  3 added: Name j Type I At 0 165 Range 0 164 Init 0
    // RetValue   6 added: Name <returnValue> Type I At 0 165 Range 0 164 Init 0 fixed
    // LocalVar   4 added: Name dbtype Type Loracle/jdbc/dbaccess/DBType; At 38 18 Range 38 55 Init 38
    // LocalVar   4 added: Name dbdatasetimpl Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 81 27 Range 81 107 Init 81
    // LocalVar   5 added: Name dbtype1 Type Loracle/jdbc/dbaccess/DBType; At 112 33 Range 112 144 Init 112
    public int checkBindTypes(DBDataSet dbdataset, int i, int j)
        throws SQLException
    {
        if(i < 0)
        {
            DBError.throwSqlException(3);
        }
        if(m_first_row)
        {
            return 0;
        }
        if(types != null && types.length > i)
        {
            DBType dbtype = _getDBType(i);
            if(dbtype != null && (dbtype.type != j || dbtype.max_length == 0 && !m_statement.isColumnSetNull(i + 1)))
            {
                return -1;
            }
        }
        DBDataSetImpl dbdatasetimpl = (DBDataSetImpl)dbdataset;
        if(dbdatasetimpl != null && dbdatasetimpl.types != null && dbdatasetimpl.types.length > i)
        {
            DBType dbtype1 = dbdatasetimpl._getDBType(i);
            if(dbtype1 != null && dbtype1.type != j && (dbtype1.type != 96 || j != 1) && (dbtype1.type != 1 || j != 96))
            {
                DBError.throwSqlException(12);
            }
        }
        return 0;
    }

    // Decompiling method: checkBindsInAndOut  Signature: (Loracle/jdbc/dbaccess/DBDataSet;I)I
    // Max stack: 2, #locals: 6, #params: 3
    // Code length: 157 bytes, Code offset: 10853
    // Line Number Table found: 19 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 157 Range 0 156 Init 0 fixed
    // Parameter  1 added: Name dbdataset Type Loracle/jdbc/dbaccess/DBDataSet; At 0 157 Range 0 156 Init 0
    // Parameter  2 added: Name i Type I At 0 157 Range 0 156 Init 0
    // RetValue   6 added: Name <returnValue> Type I At 0 157 Range 0 156 Init 0 fixed
    // LocalVar   3 added: Name dbdatasetimpl Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 4 125 Range 4 128 Init 4
    // LocalVar   4 added: Name flag Type Z At 6 146 Range 6 151 Init 6
    // LocalVar   4 chged: Name j Oname flag Type I At 20 132 Range 6 151 Init 6
    // LocalVar   5 added: Name flag Type Z At 51 99 Range 51 149 Init 51
    // LocalVar   5 chged: Name k Oname flag Type I At 148 2 Range 51 149 Init 51
    public int checkBindsInAndOut(DBDataSet dbdataset, int i)
        throws SQLException
    {
        DBDataSetImpl dbdatasetimpl = (DBDataSetImpl)dbdataset;
        int j = 0;
        if(types != null)
        {
            j = types.length;
        }
        if(dbdatasetimpl != null && dbdatasetimpl.types != null && dbdatasetimpl.types.length > j)
        {
            j = dbdatasetimpl.types.length;
        }
        for(int k = 0; k < j; k++)
        {
            if((data == null || k >= data.length || data[k] == null || data[k].getItem(i) == null) && (dbdatasetimpl == null || dbdatasetimpl.data == null || k >= dbdatasetimpl.data.length || dbdatasetimpl.data[k] == null || dbdatasetimpl.data[k].getItem(i) == null))
            {
                return k;
            }
        }

        return -1;
    }

    // Decompiling method: cleanData  Signature: ()V
    // Max stack: 3, #locals: 3, #params: 1
    // Code length: 47 bytes, Code offset: 11130
    // Line Number Table found: 8 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 47 Range 0 46 Init 0 fixed
    // RetValue   3 added: Name <returnValue> Type V At 0 47 Range 0 46 Init 0 fixed
    // LocalVar   2 added: Name i Type I At 12 27 Range 12 38 Init 12
    // LocalVar   1 added: Name flag Type Z At 14 24 Range 14 37 Init 14
    // LocalVar   1 chged: Name j Oname flag Type I At 37 1 Range 14 37 Init 14
    public final void cleanData()
    {
        if(m_last_bind_values != null)
        {
            int j = m_last_bind_values.length;
            for(int i = 0; i < j; i++)
            {
                if(m_last_bind_values[i] != null)
                {
                    m_last_bind_values[i] = null;
                }
            }

        }
        _cleanData();
        return;
    }

    // Decompiling method: cleanTypes  Signature: ()V
    // Max stack: 3, #locals: 2, #params: 1
    // Code length: 37 bytes, Code offset: 11243
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 37 Range 0 36 Init 0 fixed
    // RetValue   2 added: Name <returnValue> Type V At 0 37 Range 0 36 Init 0 fixed
    // LocalVar   1 added: Name flag Type Z At 8 15 Range 8 22 Init 8
    // LocalVar   1 chged: Name i Oname flag Type I At 22 1 Range 8 22 Init 8
    public final void cleanTypes()
    {
        if(types != null)
        {
            for(int i = 0; i < types.length; i++)
            {
                types[i] = null;
            }

        }
        types = null;
        return;
    }

    // Decompiling method: cleanup  Signature: ()V
    // Max stack: 3, #locals: 3, #params: 1
    // Code length: 101 bytes, Code offset: 11338
    // Line Number Table found: 19 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 101 Range 0 100 Init 0 fixed
    // RetValue   3 added: Name <returnValue> Type V At 0 101 Range 0 100 Init 0 fixed
    // LocalVar   1 added: Name flag Type Z At 14 1 Range 14 14 Init 14
    // LocalVar   2 added: Name i Type I At 32 18 Range 32 49 Init 32
    // LocalVar   1 added: Name flag1 Type Z At 34 15 Range 34 48 Init 34
    // LocalVar   1 chged: Name j Oname flag1 Type I At 48 1 Range 34 48 Init 34
    // LocalVar   2 added: Name k Type I At 70 18 Range 70 87 Init 70
    // LocalVar   1 added: Name flag1 Type Z At 72 15 Range 72 86 Init 72
    // LocalVar   1 chged: Name l Oname flag1 Type I At 86 1 Range 72 86 Init 72
    public final void cleanup()
    {
        cleanTypes();
        cleanData();
        data = null;
        boolean flag = false;
        m_last_bind_values = null;
        if(m_tmp_first_row_items != null)
        {
            int k = m_tmp_first_row_items.length;
            for(int i = 0; i < k; i++)
            {
                m_tmp_first_row_items[i] = null;
            }

            m_tmp_first_row_items = null;
        }
        if(m_tmp_first_row_types != null)
        {
            int l = m_tmp_first_row_types.length;
            for(int j = 0; j < l; j++)
            {
                m_tmp_first_row_types[j] = null;
            }

            m_tmp_first_row_types = null;
        }
        init();
        return;
    }

    // Decompiling method: clearItems  Signature: ()V
    // Max stack: 3, #locals: 3, #params: 1
    // Code length: 112 bytes, Code offset: 11549
    // Line Number Table found: 16 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 112 Range 0 111 Init 0 fixed
    // RetValue   3 added: Name <returnValue> Type V At 0 112 Range 0 111 Init 0 fixed
    // LocalVar   2 added: Name flag Type Z At 15 15 Range 15 29 Init 15
    // LocalVar   2 chged: Name i Oname flag Type I At 29 1 Range 15 29 Init 15
    // LocalVar   2 added: Name flag Type Z At 41 15 Range 41 55 Init 41
    // LocalVar   2 chged: Name j Oname flag Type I At 55 1 Range 41 55 Init 41
    // LocalVar   1 added: Name flag Type Z At 72 26 Range 72 97 Init 72
    // LocalVar   1 chged: Name k Oname flag Type I At 97 1 Range 72 97 Init 72
    public final void clearItems()
    {
        if(m_first_row && m_tmp_first_row_items != null)
        {
            for(int j = 0; j < m_noOfArgs; j++)
            {
                m_tmp_first_row_items[j] = null;
            }

        } else
        {
            for(int k = 0; k < m_noOfArgs; k++)
            {
                m_last_bind_values[k] = null;
            }

            if(data == null)
            {
                return;
            }
            for(int i = 0; i < data.length; i++)
            {
                if(data[i] != null)
                {
                    data[i].clearItems();
                }
            }

            m_cleanedData = true;
        }
        return;
    }

    // Decompiling method: dataAllocated  Signature: (I)Z
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 29 bytes, Code offset: 11759
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 29 Range 0 28 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 29 Range 0 28 Init 0
    // RetValue   2 added: Name <returnValue> Type Z At 0 29 Range 0 28 Init 0 fixed
    public boolean dataAllocated(int i)
    {
        return data != null && i < data.length && data[i] != null;
    }

    // Decompiling method: getBytes  Signature: (II)[B
    // Max stack: 2, #locals: 3, #params: 3
    // Code length: 25 bytes, Code offset: 11834
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 25 Range 0 24 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 25 Range 0 24 Init 0
    // Parameter  2 added: Name j Type I At 0 25 Range 0 24 Init 0
    // RetValue   3 added: Name <returnValue> Type [B At 0 25 Range 0 24 Init 0 fixed
    public final byte[] getBytes(int i, int j)
        throws SQLException
    {
        if(data.length < i)
        {
            return null;
        } else
        {
            return data[i].getItem(j).getBytes();
        }
    }

    // Decompiling method: getBytesItem  Signature: (II)[B
    // Max stack: 5, #locals: 5, #params: 3
    // Code length: 69 bytes, Code offset: 11915
    // Line Number Table found: 8 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 69 Range 0 68 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 69 Range 0 68 Init 0
    // Parameter  2 added: Name j Type I At 0 69 Range 0 68 Init 0
    // RetValue   5 added: Name <returnValue> Type [B At 0 69 Range 0 68 Init 0 fixed
    // LocalVar   3 added: Name obj Type A At 1 67 Range 1 67 Init 1
    // LocalVar   4 added: Name dbitem Type Loracle/jdbc/dbaccess/DBItem; At 28 33 Range 28 60 Init 28
    // LocalVar   3 chged: Name abyte0 Oname obj Type [B At 50 18 Range 1 67 Init 1
    public final byte[] getBytesItem(int i, int j)
        throws SQLException
    {
        byte abyte0[] = null;
        if(data != null && data[i] != null)
        {
            DBItem dbitem = data[i].getItem(j);
            if(dbitem != null && !dbitem.is_null)
            {
                abyte0 = new byte[dbitem.data_size];
                System.arraycopy(dbitem.byte_value, 0, abyte0, 0, dbitem.data_size);
            }
        }
        return abyte0;
    }

    // Decompiling method: getCharsItem  Signature: (II[IS)[C
    // Max stack: 3, #locals: 7, #params: 5
    // Code length: 70 bytes, Code offset: 12060
    // Line Number Table found: 9 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 70 Range 0 69 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 70 Range 0 69 Init 0
    // Parameter  2 added: Name j Type I At 0 70 Range 0 69 Init 0
    // Parameter  3 added: Name ai Type [I At 0 70 Range 0 69 Init 0
    // Parameter  4 added: Name word0 Type S At 0 70 Range 0 69 Init 0
    // RetValue   7 added: Name <returnValue> Type [C At 0 70 Range 0 69 Init 0 fixed
    // LocalVar   5 added: Name obj Type A At 1 68 Range 1 68 Init 1
    // LocalVar   6 added: Name dbitem Type Loracle/jdbc/dbaccess/DBItem; At 29 34 Range 29 62 Init 29
    // LocalVar   5 chged: Name ac Oname obj Type [C At 57 12 Range 1 68 Init 1
    public final char[] getCharsItem(int i, int j, int ai[], short word0)
        throws SQLException
    {
        char ac[] = null;
        if(data != null && data[i] != null)
        {
            DBItem dbitem = data[i].getItem(j);
            if(dbitem != null && !dbitem.is_null)
            {
                dbitem.getChars(word0);
                ac = dbitem.char_value;
                ai[0] = dbitem.char_size;
            }
        }
        return ac;
    }

    // Decompiling method: getCharsStreamItem  Signature: (II[I)[C
    // Max stack: 3, #locals: 6, #params: 4
    // Code length: 64 bytes, Code offset: 12210
    // Line Number Table found: 8 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 64 Range 0 63 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 64 Range 0 63 Init 0
    // Parameter  2 added: Name j Type I At 0 64 Range 0 63 Init 0
    // Parameter  3 added: Name ai Type [I At 0 64 Range 0 63 Init 0
    // RetValue   6 added: Name <returnValue> Type [C At 0 64 Range 0 63 Init 0 fixed
    // LocalVar   4 added: Name dbitem Type Loracle/jdbc/dbaccess/DBItem; At 28 29 Range 28 56 Init 28
    // LocalVar   5 added: Name ac Type [C At 51 12 Range 51 62 Init 51
    public final char[] getCharsStreamItem(int i, int j, int ai[])
        throws SQLException
    {
        if(data == null || data[i] == null)
        {
            return null;
        }
        DBItem dbitem = data[i].getItem(j);
        if(dbitem == null || dbitem.is_null)
        {
            return null;
        } else
        {
            char ac[] = dbitem.getChars((short)1);
            ai[0] = dbitem.char_size;
            return ac;
        }
    }

    // Decompiling method: getDBData  Signature: ()[Loracle/jdbc/dbaccess/DBData;
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 5 bytes, Code offset: 12350
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 5 Range 0 4 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type [Loracle/jdbc/dbaccess/DBData; At 0 5 Range 0 4 Init 0 fixed
    public DBData[] getDBData()
    {
        return data;
    }

    // Decompiling method: getDBTypes  Signature: ()[Loracle/jdbc/dbaccess/DBType;
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 5 bytes, Code offset: 12393
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 5 Range 0 4 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type [Loracle/jdbc/dbaccess/DBType; At 0 5 Range 0 4 Init 0 fixed
    public DBType[] getDBTypes()
    {
        return types;
    }

    // Decompiling method: getExternalType  Signature: (I)I
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 41 bytes, Code offset: 12436
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; 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 I At 0 41 Range 0 40 Init 0 fixed
    public final int getExternalType(int i)
    {
        if(types == null || i < 0 || types.length <= i || types[i] == null)
        {
            return -1;
        } else
        {
            return types[i].external_type;
        }
    }

    // Decompiling method: getFormOfUse  Signature: (I)S
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 38 bytes, Code offset: 12527
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 38 Range 0 37 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 38 Range 0 37 Init 0
    // RetValue   2 added: Name <returnValue> Type S At 0 38 Range 0 37 Init 0 fixed
    public short getFormOfUse(int i)
    {
        if(form_of_use == null)
        {
            return 1;
        }
        if(form_of_use.length <= i)
        {
            return 1;
        }
        if(form_of_use[i] == 0)
        {
            return 1;
        } else
        {
            return form_of_use[i];
        }
    }

    // Decompiling method: getInfoString  Signature: ()Ljava/lang/String;
    // Max stack: 4, #locals: 5, #params: 1
    // Code length: 740 bytes, Code offset: 12615
    // Line Number Table found: 66 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 740 Range 0 739 Init 0 fixed
    // RetValue   5 added: Name <returnValue> Type Ljava/lang/String; At 0 740 Range 0 739 Init 0 fixed
    // LocalVar   3 added: Name stringbuffer Type Ljava/lang/StringBuffer; At 9 727 Range 9 735 Init 9
    // LocalVar   1 added: Name flag Type Z At 172 109 Range 172 280 Init 172
    // LocalVar   1 chged: Name i Oname flag Type I At 280 1 Range 172 280 Init 172
    // LocalVar   1 added: Name flag Type Z At 339 247 Range 339 585 Init 339
    // LocalVar   1 chged: Name j Oname flag Type I At 585 1 Range 339 585 Init 339
    // LocalVar   2 added: Name flag Type Z At 382 188 Range 382 569 Init 382
    // LocalVar   2 chged: Name k Oname flag Type I At 569 1 Range 382 569 Init 382
    // LocalVar   4 added: Name dbitem Type Loracle/jdbc/dbaccess/DBItem; At 396 158 Range 396 553 Init 396
    public final String getInfoString()
        throws SQLException
    {
        StringBuffer stringbuffer = new StringBuffer("");
        stringbuffer.append(String.valueOf(this) + "\n" + "  DBDataSetImpl.m_dynamic=" + m_dynamic + "\n" + "  DBDataSetImpl.m_arrayDepth=" + m_arrayDepth + " (valid only when m_dynamic=false)\n");
        stringbuffer.append("  DBDataSetImpl.m_dataSetType=" + m_dataSetType + "\n");
        stringbuffer.append("  DBDataSetImpl.m_noOfArgs=" + m_noOfArgs + "\n");
        if(types == null)
        {
            stringbuffer.append("  DBDataSetImpl.types is null");
        } else
        {
            stringbuffer.append("  DBDataSetImpl.types.length=" + types.length);
            for(int i = 0; i < types.length; i++)
            {
                if(types[i] == null)
                {
                    stringbuffer.append("\n    types[" + i + "]=null");
                } else
                {
                    stringbuffer.append("\n    types[" + i + "].type=" + DBType.getStringType(types[i].type) + " (max_length=" + types[i].max_length + ")");
                }
            }

        }
        stringbuffer.append("\n");
        if(data == null)
        {
            stringbuffer.append("  DBDataSetImpl.data is null");
        } else
        {
            stringbuffer.append("  DBDataSetImpl.data.length=" + data.length);
            for(int j = 0; j < data.length; j++)
            {
                if(data[j] == null)
                {
                    stringbuffer.append("\n    data[" + j + "]=null");
                } else
                {
                    for(int k = 0; k < data[j].getNItems(); k++)
                    {
                        DBItem dbitem = data[j].getItem(k);
                        if(dbitem == null)
                        {
                            stringbuffer.append("\n    data[" + j + "].items[" + k + "]=null");
                        } else
                        {
                            stringbuffer.append("\n    data[" + j + "].items[" + k + "] has " + dbitem.data_size + " bytes:\n");
                            if(dbitem.byte_value != null)
                            {
                                stringbuffer.append("\n    data[" + j + "].items[" + k + "] has " + dbitem.byte_value.length + " bytes allocated\n");
                                stringbuffer.append(OracleLog.bytesToFormattedStr(dbitem.byte_value, dbitem.data_size, "    "));
                            }
                        }
                    }

                }
            }

        }
        if(m_last_bind_values == null)
        {
            stringbuffer.append("  DBDataSetImpl.m_last_bind_values is null\n");
        } else
        {
            stringbuffer.append("  DBDataSetImpl.m_last_bind_values has size of " + m_last_bind_values.length + "\n");
        }
        if(m_tmp_first_row_items == null)
        {
            stringbuffer.append("  DBDataSetImpl.m_tmp_first_row_items is null\n");
        } else
        {
            stringbuffer.append("  DBDataSetImpl.m_tmp_first_row_items has size of " + m_tmp_first_row_items.length + "\n");
        }
        if(m_tmp_first_row_types == null)
        {
            stringbuffer.append("  DBDataSetImpl.m_tmp_first_row_types is null\n");
        } else
        {
            stringbuffer.append("  DBDataSetImpl.m_tmp_first_row_types has size of " + m_tmp_first_row_types.length + "\n");
        }
        return stringbuffer.toString();
    }

    // Decompiling method: getMissingType  Signature: ()I
    // Max stack: 2, #locals: 2, #params: 1
    // Code length: 30 bytes, Code offset: 13663
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 30 Range 0 29 Init 0 fixed
    // RetValue   2 added: Name <returnValue> Type I At 0 30 Range 0 29 Init 0 fixed
    // LocalVar   1 added: Name flag Type Z At 1 19 Range 1 19 Init 1
    // LocalVar   1 chged: Name i Oname flag Type I At 19 1 Range 1 19 Init 1
    public int getMissingType()
    {
        for(int i = 0; i < types.length; i++)
        {
            if(types[i] == null)
            {
                return i;
            }
        }

        return -1;
    }

    // Decompiling method: getNoOfArgs  Signature: ()I
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 5 bytes, Code offset: 13747
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; 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 int getNoOfArgs()
    {
        return m_noOfArgs;
    }

    // Decompiling method: getOtype  Signature: (I)Loracle/jdbc/oracore/OracleType;
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 37 bytes, Code offset: 13790
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 37 Range 0 36 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 37 Range 0 36 Init 0
    // RetValue   2 added: Name <returnValue> Type Loracle/jdbc/oracore/OracleType; At 0 37 Range 0 36 Init 0 fixed
    public final OracleType getOtype(int i)
    {
        if(types == null || types.length <= i || types[i] == null)
        {
            return null;
        } else
        {
            return types[i].otype;
        }
    }

    // Decompiling method: getStreamItem  Signature: (II)Ljava/io/InputStream;
    // Max stack: 2, #locals: 5, #params: 3
    // Code length: 93 bytes, Code offset: 13873
    // Exception table: 1 entries
    //           start  42 end 84 handler 84 type IOException
    // Line Number Table found: 15 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 93 Range 0 92 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 93 Range 0 92 Init 0
    // Parameter  2 added: Name j Type I At 0 93 Range 0 92 Init 0
    // RetValue   5 added: Name <returnValue> Type Ljava/io/InputStream; At 0 93 Range 0 92 Init 0 fixed
    // LocalVar   3 added: Name dbitem Type Loracle/jdbc/dbaccess/DBItem; At 28 52 Range 28 79 Init 28
    // LocalVar   4 added: Name ioexception Type Ljava/io/IOException; At 84 4 Range 84 87 Init 84
    public final InputStream getStreamItem(int i, int j)
        throws SQLException
    {
        if(data == null || data[i] == null)
        {
            return null;
        }
        DBItem dbitem = data[i].getItem(j);
        if(dbitem == null || dbitem.is_null)
        {
            return null;
        }
        try
        {
            if(((OracleInputStream)dbitem.stream_value).isClosed())
            {
                DBError.throwSqlException(27);
            }
            if(!((OracleInputStream)dbitem.stream_value).needBytes())
            {
                dbitem.setNull();
                return null;
            } else
            {
                return dbitem.stream_value;
            }
        }
        catch(IOException ioexception)
        {
            DBError.throwSqlException(ioexception);
        }
        return null;
    }

    // Decompiling method: getType  Signature: (I)I
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 41 bytes, Code offset: 14078
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; 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 I At 0 41 Range 0 40 Init 0 fixed
    public final int getType(int i)
    {
        if(types == null || i < 0 || types.length <= i || types[i] == null)
        {
            return -1;
        } else
        {
            return types[i].type;
        }
    }

    // Decompiling method: hasStreamType  Signature: ()Z
    // Max stack: 2, #locals: 2, #params: 1
    // Code length: 49 bytes, Code offset: 14169
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 49 Range 0 48 Init 0 fixed
    // RetValue   2 added: Name <returnValue> Type Z At 0 49 Range 0 48 Init 0 fixed
    // LocalVar   1 added: Name flag Type Z At 8 31 Range 8 38 Init 8
    // LocalVar   1 chged: Name i Oname flag Type I At 38 1 Range 8 38 Init 8
    public boolean hasStreamType()
    {
        if(types != null)
        {
            for(int i = 0; i < types.length; i++)
            {
                if(types[i] != null && types[i].is_stream)
                {
                    return true;
                }
            }

        }
        return false;
    }

    // Decompiling method: init  Signature: ()V
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 31 bytes, Code offset: 14276
    // Line Number Table found: 7 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 31 Range 0 30 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type V At 0 31 Range 0 30 Init 0 fixed
    private void init()
    {
        m_dynamic = false;
        m_first_row = true;
        m_noOfArgs = 0;
        data = null;
        types = null;
        m_cleanedData = false;
        return;
    }

    // Decompiling method: isDynamic  Signature: ()Z
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 5 bytes, Code offset: 14369
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; 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 final boolean isDynamic()
    {
        return m_dynamic;
    }

    // Decompiling method: isNull  Signature: (II)Z
    // Max stack: 2, #locals: 3, #params: 3
    // Code length: 14 bytes, Code offset: 14412
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 14 Range 0 13 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 14 Range 0 13 Init 0
    // Parameter  2 added: Name j Type I At 0 14 Range 0 13 Init 0
    // RetValue   3 added: Name <returnValue> Type Z At 0 14 Range 0 13 Init 0 fixed
    public final boolean isNull(int i, int j)
        throws SQLException
    {
        return data[i].getItem(j).is_null;
    }

    // Decompiling method: isStreamType  Signature: (I)Z
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 37 bytes, Code offset: 14474
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 37 Range 0 36 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 37 Range 0 36 Init 0
    // RetValue   2 added: Name <returnValue> Type Z At 0 37 Range 0 36 Init 0 fixed
    public boolean isStreamType(int i)
    {
        if(types != null && i < types.length && types[i] != null)
        {
            return types[i].is_stream;
        } else
        {
            return false;
        }
    }

    // Decompiling method: prependRowidColumn  Signature: ()V
    // Max stack: 5, #locals: 2, #params: 1
    // Code length: 55 bytes, Code offset: 14561
    // Line Number Table found: 8 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 55 Range 0 54 Init 0 fixed
    // RetValue   2 added: Name <returnValue> Type V At 0 55 Range 0 54 Init 0 fixed
    // LocalVar   1 added: Name adbtype Type [Loracle/jdbc/dbaccess/DBType; At 17 34 Range 17 50 Init 17
    public void prependRowidColumn()
        throws SQLException
    {
        m_noOfArgs++;
        DBType adbtype[] = new DBType[m_noOfArgs];
        adbtype[0] = m_connection.db_access.createDBType(104, false);
        System.arraycopy(types, 0, adbtype, 1, types.length);
        types = adbtype;
        return;
    }

    // Decompiling method: removeFirstRow  Signature: ()V
    // Max stack: 2, #locals: 2, #params: 1
    // Code length: 34 bytes, Code offset: 14692
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 34 Range 0 33 Init 0 fixed
    // RetValue   2 added: Name <returnValue> Type V At 0 34 Range 0 33 Init 0 fixed
    // LocalVar   1 added: Name flag Type Z At 8 17 Range 8 24 Init 8
    // LocalVar   1 chged: Name i Oname flag Type I At 24 1 Range 8 24 Init 8
    public void removeFirstRow()
        throws SQLException
    {
        if(data != null)
        {
            for(int i = 0; i < data.length; i++)
            {
                data[i].removeFirstItem();
            }

        }
        return;
    }

    // Decompiling method: removeRowidColumn  Signature: ()V
    // Max stack: 6, #locals: 2, #params: 1
    // Code length: 41 bytes, Code offset: 14790
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 41 Range 0 40 Init 0 fixed
    // RetValue   2 added: Name <returnValue> Type V At 0 41 Range 0 40 Init 0 fixed
    // LocalVar   1 added: Name adbtype Type [Loracle/jdbc/dbaccess/DBType; At 17 20 Range 17 36 Init 17
    public void removeRowidColumn()
        throws SQLException
    {
        m_noOfArgs--;
        DBType adbtype[] = new DBType[m_noOfArgs];
        System.arraycopy(types, 1, adbtype, 0, types.length - 1);
        types = adbtype;
        return;
    }

    // Decompiling method: rowCompleted  Signature: (I)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 20 bytes, Code offset: 14895
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 20 Range 0 19 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 20 Range 0 19 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 20 Range 0 19 Init 0 fixed
    public void rowCompleted(int i)
        throws SQLException
    {
        if(m_dataSetType == 0)
        {
            _definesRowCompleted();
        } else
        {
            _bindsRowCompleted(i);
        }
        return;
    }

    // Decompiling method: setADTBindItem  Signature: (III[BLoracle/jdbc/oracore/OracleType;)V
    // Max stack: 4, #locals: 8, #params: 6
    // Code length: 78 bytes, Code offset: 14979
    // Line Number Table found: 10 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 78 Range 0 77 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 78 Range 0 77 Init 0
    // Parameter  2 added: Name j Type I At 0 78 Range 0 77 Init 0
    // Parameter  3 added: Name k Type I At 0 78 Range 0 77 Init 0
    // Parameter  4 added: Name abyte0 Type [B At 0 78 Range 0 77 Init 0
    // Parameter  5 added: Name oracletype Type Loracle/jdbc/oracore/OracleType; At 0 78 Range 0 77 Init 0
    // RetValue   8 added: Name <returnValue> Type V At 0 78 Range 0 77 Init 0 fixed
    // LocalVar   6 added: Name dbtype Type Loracle/jdbc/dbaccess/DBType; At 6 61 Range 6 66 Init 6
    // LocalVar   7 added: Name dbitem Type Loracle/jdbc/dbaccess/DBItem; At 16 58 Range 16 73 Init 16
    public void setADTBindItem(int i, int j, int k, byte abyte0[], OracleType oracletype)
        throws SQLException
    {
        DBType dbtype = _createOrGetBindDBType(i, k);
        DBItem dbitem = _createOrGetDBItem(i, dbtype, j);
        ((OracleTypeADT)oracletype).getTOID();
        dbtype.max_length = abyte0.length;
        if(!oracletype.isInHierarchyOf(dbtype.otype))
        {
            dbtype.otype = oracletype;
        }
        dbitem.setArrayData(false, abyte0);
        _setBindDBType(i, dbtype);
        _setBindDBItem(i, dbitem);
        return;
    }

    // Decompiling method: setADTBindType  Signature: (IIILoracle/jdbc/oracore/OracleType;)V
    // Max stack: 4, #locals: 7, #params: 5
    // Code length: 54 bytes, Code offset: 15141
    // Line Number Table found: 8 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 54 Range 0 53 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 54 Range 0 53 Init 0
    // Parameter  2 added: Name j Type I At 0 54 Range 0 53 Init 0
    // Parameter  3 added: Name k Type I At 0 54 Range 0 53 Init 0
    // Parameter  4 added: Name oracletype Type Loracle/jdbc/oracore/OracleType; At 0 54 Range 0 53 Init 0
    // RetValue   7 added: Name <returnValue> Type V At 0 54 Range 0 53 Init 0 fixed
    // LocalVar   5 added: Name dbtype Type Loracle/jdbc/dbaccess/DBType; At 6 38 Range 6 43 Init 6
    // LocalVar   6 added: Name dbitem Type Loracle/jdbc/dbaccess/DBItem; At 16 2 Range 16 17 Init 16
    public void setADTBindType(int i, int j, int k, OracleType oracletype)
        throws SQLException
    {
        DBType dbtype = _createOrGetBindDBType(i, k);
        DBItem dbitem = _createOrGetDBItem(i, dbtype, j);
        ((OracleTypeADT)oracletype).getTOID();
        dbtype.max_length = 0;
        dbtype.otype = oracletype;
        _setBindDBType(i, dbtype);
        _setBindDBItem(i, null);
        return;
    }

    // Decompiling method: setBatchSize  Signature: (I)V
    // Max stack: 5, #locals: 12, #params: 2
    // Code length: 268 bytes, Code offset: 15271
    // Line Number Table found: 33 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 268 Range 0 267 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 268 Range 0 267 Init 0
    // RetValue  12 added: Name <returnValue> Type V At 0 268 Range 0 267 Init 0 fixed
    // LocalVar   2 added: Name j Type I At 48 216 Range 48 263 Init 48
    // LocalVar   3 added: Name flag Type Z At 50 213 Range 50 262 Init 50
    // LocalVar   3 chged: Name k Oname flag Type I At 262 1 Range 50 262 Init 50
    // LocalVar   5 added: Name dbtype Type Loracle/jdbc/dbaccess/DBType; At 60 151 Range 60 210 Init 60
    // LocalVar   6 added: Name dbdata Type Loracle/jdbc/dbaccess/DBData; At 97 76 Range 97 172 Init 97
    // LocalVar   7 added: Name l Type I At 104 10 Range 104 113 Init 104
    // LocalVar   8 added: Name i1 Type I At 118 79 Range 118 196 Init 118
    // LocalVar   4 added: Name flag Type Z At 135 28 Range 135 162 Init 135
    // LocalVar   4 chged: Name j1 Oname flag Type I At 161 2 Range 135 162 Init 135
    // LocalVar   9 added: Name byte0 Type B At 169 65 Range 169 233 Init 169
    // LocalVar  10 added: Name dbitem Type Loracle/jdbc/dbaccess/DBItem; At 177 12 Range 177 188 Init 177
    // LocalVar   9 chged: Name k1 Oname byte0 Type I At 193 41 Range 169 233 Init 169
    // LocalVar   4 added: Name l1 Type I At 197 58 Range 197 254 Init 197
    // LocalVar  11 added: Name dbitem1 Type Loracle/jdbc/dbaccess/DBItem; At 214 33 Range 214 246 Init 214
    public void setBatchSize(int i)
        throws SQLException
    {
        if(i == m_arrayDepth)
        {
            return;
        }
        m_arrayDepth = i;
        if(m_first_row || m_dynamic)
        {
            return;
        }
        if(data != null && types != null)
        {
            int j = data.length;
            for(int k = 0; k < j; k++)
            {
                DBType dbtype = types[k];
                if(data[k] == null)
                {
                    data[k] = new DBData(m_arrayDepth);
                } else
                {
                    DBData dbdata = data[k];
                    int j1 = dbdata.getNItems();
                    int k1 = j1 >= i ? i : j1;
                    data[k] = new DBData(i);
                    for(int l = 0; l < k1; l++)
                    {
                        data[k].setItem(l, dbdata.getItem(l));
                    }

                    int l1 = -1;
                    DBItem dbitem = dbdata.getItem(0);
                    if(dbitem.byte_value != null)
                    {
                        l1 = dbitem.byte_value.length;
                    }
                    for(int i1 = k1; i1 < i; i1++)
                    {
                        DBItem dbitem1 = m_connection.db_access.createDBItem(dbtype);
                        if(l1 == -1)
                        {
                            dbitem1.allocBuffer();
                        } else
                        {
                            dbitem1.allocBuffer(l1);
                        }
                        data[k].setItem(i1, dbitem1);
                    }

                }
            }

        }
        return;
    }

    // Decompiling method: setBytesBindItem  Signature: (IIILjava/lang/String;)Z
    // Max stack: 5, #locals: 8, #params: 5
    // Code length: 95 bytes, Code offset: 15715
    // Line Number Table found: 13 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 95 Range 0 94 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 95 Range 0 94 Init 0
    // Parameter  2 added: Name j Type I At 0 95 Range 0 94 Init 0
    // Parameter  3 added: Name k Type I At 0 95 Range 0 94 Init 0
    // Parameter  4 added: Name s Type Ljava/lang/String; At 0 95 Range 0 94 Init 0
    // RetValue   8 added: Name <returnValue> Type Z At 0 95 Range 0 94 Init 0 fixed
    // LocalVar   5 added: Name dbtype Type Loracle/jdbc/dbaccess/DBType; At 6 76 Range 6 81 Init 6
    // LocalVar   6 added: Name dbitem Type Loracle/jdbc/dbaccess/DBItem; At 16 73 Range 16 88 Init 16
    // LocalVar   7 added: Name flag Type Z At 22 72 Range 22 93 Init 22
    public boolean setBytesBindItem(int i, int j, int k, String s)
        throws SQLException
    {
        DBType dbtype = _createOrGetBindDBType(i, k);
        DBItem dbitem = _createOrGetDBItem(i, dbtype, j);
        boolean flag = newDBType;
        if(s == null)
        {
            dbitem.setNull();
        } else
        {
            dbitem.setArrayData(false, s, getFormOfUse(i));
            if(dbtype.max_length < dbitem.byte_value.length)
            {
                dbtype.max_length = dbitem.byte_value.length;
                flag = true;
            }
        }
        _setBindDBType(i, dbtype);
        _setBindDBItem(i, dbitem);
        return flag;
    }

    // Decompiling method: setBytesBindItem  Signature: (III[B)Z
    // Max stack: 4, #locals: 8, #params: 5
    // Code length: 84 bytes, Code offset: 15906
    // Line Number Table found: 13 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 84 Range 0 83 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 84 Range 0 83 Init 0
    // Parameter  2 added: Name j Type I At 0 84 Range 0 83 Init 0
    // Parameter  3 added: Name k Type I At 0 84 Range 0 83 Init 0
    // Parameter  4 added: Name abyte0 Type [B At 0 84 Range 0 83 Init 0
    // RetValue   8 added: Name <returnValue> Type Z At 0 84 Range 0 83 Init 0 fixed
    // LocalVar   5 added: Name dbtype Type Loracle/jdbc/dbaccess/DBType; At 6 65 Range 6 70 Init 6
    // LocalVar   6 added: Name dbitem Type Loracle/jdbc/dbaccess/DBItem; At 16 62 Range 16 77 Init 16
    // LocalVar   7 added: Name flag Type Z At 22 61 Range 22 82 Init 22
    public boolean setBytesBindItem(int i, int j, int k, byte abyte0[])
        throws SQLException
    {
        DBType dbtype = _createOrGetBindDBType(i, k);
        DBItem dbitem = _createOrGetDBItem(i, dbtype, j);
        boolean flag = newDBType;
        if(abyte0 == null)
        {
            dbitem.setNull();
        } else
        {
            if(dbtype.max_length < abyte0.length)
            {
                dbtype.max_length = abyte0.length;
                flag = true;
            }
            dbitem.setArrayData(false, abyte0);
        }
        _setBindDBType(i, dbtype);
        _setBindDBItem(i, dbitem);
        return flag;
    }

    // Decompiling method: setFirstRow  Signature: (Z)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 6 bytes, Code offset: 16086
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 6 Range 0 5 Init 0 fixed
    // Parameter  1 added: Name flag Type Z 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 setFirstRow(boolean flag)
    {
        m_first_row = flag;
        return;
    }

    // Decompiling method: setFormOfUse  Signature: (IS)V
    // Max stack: 5, #locals: 6, #params: 3
    // Code length: 100 bytes, Code offset: 16134
    // Line Number Table found: 16 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 100 Range 0 99 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 100 Range 0 99 Init 0
    // Parameter  2 added: Name word0 Type S At 0 100 Range 0 99 Init 0
    // RetValue   6 added: Name <returnValue> Type V At 0 100 Range 0 99 Init 0 fixed
    // LocalVar   3 added: Name j Type I At 3 94 Range 3 96 Init 3
    // LocalVar   4 added: Name k Type I At 20 5 Range 20 24 Init 20
    // LocalVar   4 added: Name l Type I At 47 7 Range 47 53 Init 47
    // LocalVar   4 added: Name i1 Type I At 57 5 Range 57 61 Init 57
    // LocalVar   5 added: Name aword0 Type [S At 65 21 Range 65 85 Init 65
    // LocalVar   5 added: Name obj Type A At 90 2 Range 90 91 Init 90
    // LocalVar   4 name i1(I) merged out into l(I)
    // LocalVar   5 name obj(A) merged out into aword0([S)
    public void setFormOfUse(int i, short word0)
    {
        int j = i - 1;
        if(form_of_use == null)
        {
            int k = Math.max(j + 1, _MIN_ARG_COUNT);
            form_of_use = new short[k];
        } else
        if(j >= form_of_use.length)
        {
            int l = form_of_use.length;
            l = Math.max(j + 1, l);
            short aword0[] = new short[2 * l];
            System.arraycopy(form_of_use, 0, aword0, 0, form_of_use.length);
            form_of_use = aword0;
            aword0 = null;
        }
        form_of_use[j] = word0;
        return;
    }

    // Decompiling method: setNoOfDefineCol  Signature: (I)V
    // Max stack: 4, #locals: 5, #params: 2
    // Code length: 86 bytes, Code offset: 16332
    // Line Number Table found: 13 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 86 Range 0 85 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 86 Range 0 85 Init 0
    // RetValue   5 added: Name <returnValue> Type V At 0 86 Range 0 85 Init 0 fixed
    // LocalVar   2 added: Name adbtype Type [Loracle/jdbc/dbaccess/DBType; At 24 47 Range 24 70 Init 24
    // LocalVar   4 added: Name j Type I At 58 22 Range 58 79 Init 58
    // LocalVar   3 added: Name flag Type Z At 61 17 Range 61 77 Init 61
    // LocalVar   3 chged: Name k Oname flag Type I At 77 1 Range 61 77 Init 61
    // LocalVar   2 added: Name obj Type A At 84 1 Range 84 84 Init 84
    // LocalVar   2 name obj(A) merged out into adbtype([Loracle/jdbc/dbaccess/DBType;)
    public void setNoOfDefineCol(int i)
    {
        if(m_dynamic || m_dataSetType != 0)
        {
            return;
        }
        m_noOfArgs = i;
        DBType adbtype[] = types;
        types = new DBType[m_noOfArgs];
        if(adbtype != null)
        {
            int k = m_noOfArgs >= adbtype.length ? adbtype.length : m_noOfArgs;
            for(int j = 0; j < k; j++)
            {
                types[j] = adbtype[j];
            }

            adbtype = null;
        }
        return;
    }

    // Decompiling method: setNull  Signature: (II)V
    // Max stack: 2, #locals: 3, #params: 3
    // Code length: 14 bytes, Code offset: 16504
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 14 Range 0 13 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 14 Range 0 13 Init 0
    // Parameter  2 added: Name j Type I At 0 14 Range 0 13 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 14 Range 0 13 Init 0 fixed
    public final void setNull(int i, int j)
        throws SQLException
    {
        data[i].getItem(j).setNull();
        return;
    }

    // Decompiling method: setNullADTBindItem  Signature: (IIILoracle/jdbc/oracore/OracleType;)V
    // Max stack: 4, #locals: 7, #params: 5
    // Code length: 73 bytes, Code offset: 16570
    // Line Number Table found: 10 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 73 Range 0 72 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 73 Range 0 72 Init 0
    // Parameter  2 added: Name j Type I At 0 73 Range 0 72 Init 0
    // Parameter  3 added: Name k Type I At 0 73 Range 0 72 Init 0
    // Parameter  4 added: Name oracletype Type Loracle/jdbc/oracore/OracleType; At 0 73 Range 0 72 Init 0
    // RetValue   7 added: Name <returnValue> Type V At 0 73 Range 0 72 Init 0 fixed
    // LocalVar   5 added: Name dbtype Type Loracle/jdbc/dbaccess/DBType; At 6 56 Range 6 61 Init 6
    // LocalVar   6 added: Name dbitem Type Loracle/jdbc/dbaccess/DBItem; At 16 53 Range 16 68 Init 16
    public void setNullADTBindItem(int i, int j, int k, OracleType oracletype)
        throws SQLException
    {
        DBType dbtype = _createOrGetBindDBType(i, k);
        DBItem dbitem = _createOrGetDBItem(i, dbtype, j);
        ((OracleTypeADT)oracletype).getTOID();
        if(!oracletype.isInHierarchyOf(dbtype.otype))
        {
            dbtype.otype = oracletype;
        }
        dbtype.max_length = 0;
        dbitem.setNull();
        _setBindDBType(i, dbtype);
        _setBindDBItem(i, dbitem);
        return;
    }

    // Decompiling method: setNullBindItem  Signature: (III)V
    // Max stack: 4, #locals: 6, #params: 4
    // Code length: 38 bytes, Code offset: 16727
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 38 Range 0 37 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 38 Range 0 37 Init 0
    // Parameter  2 added: Name j Type I At 0 38 Range 0 37 Init 0
    // Parameter  3 added: Name k Type I At 0 38 Range 0 37 Init 0
    // RetValue   6 added: Name <returnValue> Type V At 0 38 Range 0 37 Init 0 fixed
    // LocalVar   4 added: Name dbtype Type Loracle/jdbc/dbaccess/DBType; At 6 21 Range 6 26 Init 6
    // LocalVar   5 added: Name dbitem Type Loracle/jdbc/dbaccess/DBItem; At 16 18 Range 16 33 Init 16
    public void setNullBindItem(int i, int j, int k)
        throws SQLException
    {
        DBType dbtype = _createOrGetBindDBType(i, k);
        DBItem dbitem = _createOrGetDBItem(i, dbtype, j);
        dbitem.setNull();
        _setBindDBType(i, dbtype);
        _setBindDBItem(i, dbitem);
        return;
    }

    // Decompiling method: setStreamBindItem  Signature: (IIILjava/io/InputStream;I)V
    // Max stack: 4, #locals: 8, #params: 6
    // Code length: 43 bytes, Code offset: 16833
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 43 Range 0 42 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 43 Range 0 42 Init 0
    // Parameter  2 added: Name j Type I At 0 43 Range 0 42 Init 0
    // Parameter  3 added: Name k Type I At 0 43 Range 0 42 Init 0
    // Parameter  4 added: Name inputstream Type Ljava/io/InputStream; At 0 43 Range 0 42 Init 0
    // Parameter  5 added: Name l Type I At 0 43 Range 0 42 Init 0
    // RetValue   8 added: Name <returnValue> Type V At 0 43 Range 0 42 Init 0 fixed
    // LocalVar   6 added: Name dbtype Type Loracle/jdbc/dbaccess/DBType; At 6 26 Range 6 31 Init 6
    // LocalVar   7 added: Name dbitem Type Loracle/jdbc/dbaccess/DBItem; At 16 23 Range 16 38 Init 16
    public void setStreamBindItem(int i, int j, int k, InputStream inputstream, int l)
        throws SQLException
    {
        DBType dbtype = _createOrGetBindDBType(i, k);
        DBItem dbitem = _createOrGetDBItem(i, dbtype, j);
        dbitem.setStreamData(false, l, inputstream);
        _setBindDBType(i, dbtype);
        _setBindDBItem(i, dbitem);
        return;
    }

    // Decompiling method: setStreamItem  Signature: (IILjava/io/InputStream;)V
    // Max stack: 2, #locals: 4, #params: 4
    // Code length: 32 bytes, Code offset: 16944
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 32 Range 0 31 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 32 Range 0 31 Init 0
    // Parameter  2 added: Name j Type I At 0 32 Range 0 31 Init 0
    // Parameter  3 added: Name inputstream Type Ljava/io/InputStream; At 0 32 Range 0 31 Init 0
    // RetValue   4 added: Name <returnValue> Type V At 0 32 Range 0 31 Init 0 fixed
    public final void setStreamItem(int i, int j, InputStream inputstream)
        throws SQLException
    {
        if(data == null || data[i] == null)
        {
            return;
        } else
        {
            data[i].getItem(j).stream_value = inputstream;
            return;
        }
    }

    // Decompiling method: setType  Signature: (IIIIS)V
    // Max stack: 3, #locals: 7, #params: 6
    // Code length: 215 bytes, Code offset: 17036
    // Line Number Table found: 27 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 215 Range 0 214 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 215 Range 0 214 Init 0
    // Parameter  2 added: Name j Type I At 0 215 Range 0 214 Init 0
    // Parameter  3 added: Name k Type I At 0 215 Range 0 214 Init 0
    // Parameter  4 added: Name l Type I At 0 215 Range 0 214 Init 0
    // Parameter  5 added: Name word0 Type S At 0 215 Range 0 214 Init 0
    // RetValue   7 added: Name <returnValue> Type V At 0 215 Range 0 214 Init 0 fixed
    // LocalVar   6 added: Name dbtype Type Loracle/jdbc/dbaccess/DBType; At 36 115 Range 36 150 Init 36
    // LocalVar   6 added: Name dbtype1 Type Loracle/jdbc/dbaccess/DBType; At 163 28 Range 163 190 Init 163
    public void setType(int i, int j, int k, int l, short word0)
        throws SQLException
    {
        if(m_dataSetType == 0)
        {
            if(i + 1 > m_noOfArgs)
            {
                setNoOfDefineCol(i + 1);
            }
            DBType dbtype = m_connection.db_access.createDBType(j, false);
            if(j == 96 || j == 1 || j == 999)
            {
                if(l > 0)
                {
                    dbtype.setMaxSize(l);
                }
            } else
            if(l > 0 && l < dbtype.max_length)
            {
                dbtype.max_length = l;
            }
            dbtype.FormOfUse = word0;
            if(dbtype.isNType())
            {
                dbtype.ncs = m_connection.conversion.getNCharSet();
            } else
            {
                dbtype.ncs = m_connection.conversion.getDbCharSet();
            }
            dbtype.setExternalType(k);
            _setDBType(i, dbtype);
        } else
        {
            DBType dbtype1 = _createOrGetBindDBType(i, j);
            if(l > 0 && l < dbtype1.max_length)
            {
                dbtype1.max_length = l;
            }
            _setBindDBType(i, dbtype1);
            if(m_dataSetType == 2 && !m_first_row)
            {
                _allocDataAndItems(i);
            }
        }
        return;
    }

    // Decompiling method: setType  Signature: (IIIS)V
    // Max stack: 6, #locals: 5, #params: 5
    // Code length: 11 bytes, Code offset: 17403
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 11 Range 0 10 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 11 Range 0 10 Init 0
    // Parameter  2 added: Name j Type I At 0 11 Range 0 10 Init 0
    // Parameter  3 added: Name k Type I At 0 11 Range 0 10 Init 0
    // Parameter  4 added: Name word0 Type S At 0 11 Range 0 10 Init 0
    // RetValue   5 added: Name <returnValue> Type V At 0 11 Range 0 10 Init 0 fixed
    public final void setType(int i, int j, int k, short word0)
        throws SQLException
    {
        setType(i, j, 0, k, word0);
        return;
    }

    // Decompiling method: setType  Signature: (IILoracle/jdbc/oracore/OracleType;)V
    // Max stack: 3, #locals: 5, #params: 4
    // Code length: 76 bytes, Code offset: 17466
    // Line Number Table found: 12 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBDataSetImpl; At 0 76 Range 0 75 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 76 Range 0 75 Init 0
    // Parameter  2 added: Name j Type I At 0 76 Range 0 75 Init 0
    // Parameter  3 added: Name oracletype Type Loracle/jdbc/oracore/OracleType; At 0 76 Range 0 75 Init 0
    // RetValue   5 added: Name <returnValue> Type V At 0 76 Range 0 75 Init 0 fixed
    // LocalVar   4 added: Name dbtype Type Loracle/jdbc/dbaccess/DBType; At 36 12 Range 36 47 Init 36
    // LocalVar   4 added: Name dbtype1 Type Loracle/jdbc/dbaccess/DBType; At 60 12 Range 60 71 Init 60
    public final void setType(int i, int j, OracleType oracletype)
        throws SQLException
    {
        if(m_dataSetType == 0)
        {
            if(i + 1 > m_noOfArgs)
            {
                setNoOfDefineCol(i + 1);
            }
            DBType dbtype = m_connection.db_access.createDBType(j, false);
            dbtype.otype = oracletype;
            _setDBType(i, dbtype);
        } else
        {
            DBType dbtype1 = _createOrGetBindDBType(i, j);
            dbtype1.otype = oracletype;
            _setBindDBType(i, dbtype1);
        }
        return;
    }

    // Decompiling method: <clinit>  Signature: ()V
    // Max stack: 1, #locals: 0, #params: 0
    // Code length: 5 bytes, Code offset: 6966
    // Line Number Table found: 2 entries
    // RetValue   0 added: Name <returnValue> Type V At 0 5 Range 0 4 Init 0 fixed
    static 
    {
        /* _MIN_ARG_COUNT = 1; */
    }
}
