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

package oracle.jdbc.dbaccess;

import java.sql.SQLException;
import java.util.Vector;
import oracle.jdbc.driver.OracleLog;

// Referenced classes of package oracle.jdbc.dbaccess:
//            DBError, DBItem

// flag ACC_SUPER is set
public class DBData
{
    // Constants:          78
    // Interfaces:         0
    // Fields:             3
    // Methods:            11
    // Class Attributes:   1


    private boolean m_dynamic;
    private DBItem m_items[];
    private Vector m_vector;

    // Decompiling method: <init>  Signature: ()V
    // Max stack: 3, #locals: 1, #params: 1
    // Code length: 36 bytes, Code offset: 955
    // Line Number Table found: 7 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBData; At 0 36 Range 0 35 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type V At 0 36 Range 0 35 Init 0 fixed
    public DBData()
    {
        super();
        m_dynamic = false;
        m_items = null;
        m_vector = null;
        m_dynamic = true;
        m_vector = new Vector();
        return;
    }

    // Decompiling method: <init>  Signature: (I)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 33 bytes, Code offset: 1053
    // Line Number Table found: 7 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBData; At 0 33 Range 0 32 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 33 Range 0 32 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 33 Range 0 32 Init 0 fixed
    public DBData(int i)
    {
        super();
        m_dynamic = false;
        m_items = null;
        m_vector = null;
        m_dynamic = false;
        m_items = new DBItem[i];
        return;
    }

    // Decompiling method: addItem  Signature: (Loracle/jdbc/dbaccess/DBItem;)I
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 29 bytes, Code offset: 1148
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBData; At 0 29 Range 0 28 Init 0 fixed
    // Parameter  1 added: Name dbitem Type Loracle/jdbc/dbaccess/DBItem; At 0 29 Range 0 28 Init 0
    // RetValue   2 added: Name <returnValue> Type I At 0 29 Range 0 28 Init 0 fixed
    public int addItem(DBItem dbitem)
        throws SQLException
    {
        if(!m_dynamic)
        {
            DBError.throwSqlException(89);
        }
        m_vector.addElement(dbitem);
        return m_vector.size();
    }

    // Decompiling method: checkItemNumber  Signature: (I)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 18 bytes, Code offset: 1237
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBData; At 0 18 Range 0 17 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 18 Range 0 17 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 18 Range 0 17 Init 0 fixed
    private void checkItemNumber(int i)
        throws SQLException
    {
        if(i < 0 || i >= getNItems())
        {
            DBError.throwSqlException(46);
        }
        return;
    }

    // Decompiling method: cleanup  Signature: ()V
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 15 bytes, Code offset: 1311
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBData; At 0 15 Range 0 14 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type V At 0 15 Range 0 14 Init 0 fixed
    public final void cleanup()
    {
        clearItems();
        m_vector = null;
        m_items = null;
        return;
    }

    // Decompiling method: clearItems  Signature: ()V
    // Max stack: 3, #locals: 2, #params: 1
    // Code length: 56 bytes, Code offset: 1376
    // Line Number Table found: 9 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBData; At 0 56 Range 0 55 Init 0 fixed
    // RetValue   2 added: Name <returnValue> Type V At 0 56 Range 0 55 Init 0 fixed
    // LocalVar   1 added: Name flag Type Z At 32 15 Range 32 46 Init 32
    // LocalVar   1 chged: Name i Oname flag Type I At 46 1 Range 32 46 Init 32
    public final void clearItems()
    {
        if(m_dynamic)
        {
            if(m_vector != null)
            {
                m_vector.removeAllElements();
            }
        } else
        if(m_items != null)
        {
            for(int i = 0; i < m_items.length; i++)
            {
                m_items[i] = null;
            }

        }
        return;
    }

    // Decompiling method: getItem  Signature: (I)Loracle/jdbc/dbaccess/DBItem;
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 63 bytes, Code offset: 1502
    // Line Number Table found: 13 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBData; At 0 63 Range 0 62 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 63 Range 0 62 Init 0
    // RetValue   3 added: Name <returnValue> Type Loracle/jdbc/dbaccess/DBItem; At 0 63 Range 0 62 Init 0 fixed
    // LocalVar   2 added: Name obj Type A At 1 61 Range 1 61 Init 1
    // LocalVar   2 chged: Name dbitem Oname obj Type Loracle/jdbc/dbaccess/DBItem; At 45 17 Range 1 61 Init 1
    public DBItem getItem(int i)
        throws SQLException
    {
        DBItem dbitem = null;
        if(m_dynamic)
        {
            if(i < 0)
            {
                DBError.throwSqlException(46);
            } else
            if(i >= getNItems())
            {
                dbitem = null;
            } else
            {
                dbitem = (DBItem)m_vector.elementAt(i);
            }
        } else
        {
            checkItemNumber(i);
            dbitem = m_items[i];
        }
        return dbitem;
    }

    // Decompiling method: getNItems  Signature: ()I
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 23 bytes, Code offset: 1661
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBData; At 0 23 Range 0 22 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type I At 0 23 Range 0 22 Init 0 fixed
    public int getNItems()
    {
        return m_dynamic ? m_vector.size() : m_items.length;
    }

    // Decompiling method: isDynamic  Signature: ()Z
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 5 bytes, Code offset: 1722
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBData; 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: removeFirstItem  Signature: ()V
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 22 bytes, Code offset: 1765
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBData; At 0 22 Range 0 21 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type V At 0 22 Range 0 21 Init 0 fixed
    public void removeFirstItem()
        throws SQLException
    {
        if(!m_dynamic)
        {
            DBError.throwSqlException(89);
        }
        m_vector.removeElementAt(0);
        return;
    }

    // Decompiling method: setItem  Signature: (ILoracle/jdbc/dbaccess/DBItem;)V
    // Max stack: 3, #locals: 3, #params: 3
    // Code length: 25 bytes, Code offset: 1847
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/dbaccess/DBData; 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
    public void setItem(int i, DBItem dbitem)
        throws SQLException
    {
        if(m_dynamic)
        {
            DBError.throwSqlException(89);
        }
        checkItemNumber(i);
        m_items[i] = dbitem;
        return;
    }
}
