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

package oracle.jdbc.driver;

import java.io.*;
import java.math.BigDecimal;
import java.sql.*;
import java.util.Calendar;
import java.util.Map;
import oracle.jdbc.dbaccess.DBConversion;
import oracle.jdbc.dbaccess.DBError;
import oracle.sql.*;

// Referenced classes of package oracle.jdbc.driver:
//            BaseResultSet, OracleConnection

// flag ACC_SUPER is set
public class ArrayDataResultSet extends BaseResultSet
{
    // Constants:          375
    // Interfaces:         0
    // Fields:             11
    // Methods:            61
    // Class Attributes:   1


    Datum m_data[];
    Map m_map;
    private int m_idx;
    private int m_lastIdx;
    boolean m_closed;
    OracleConnection m_conn;
    private Boolean m_wasNull;
    private static Boolean BOOLEAN_TRUE = new Boolean(true);
    private static Boolean BOOLEAN_FALSE = new Boolean(false);
    private int m_fetchSz;
    ARRAY m_array;

    // Decompiling method: <init>  Signature: (Loracle/jdbc/driver/OracleConnection;Loracle/sql/ARRAY;JILjava/util/Map;)V
    // Max stack: 4, #locals: 8, #params: 7
    // Code length: 90 bytes, Code offset: 4927
    // Line Number Table found: 13 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 90 Range 0 89 Init 0 fixed
    // Parameter  1 added: Name oracleconnection Type Loracle/jdbc/driver/OracleConnection; At 0 90 Range 0 89 Init 0
    // Parameter  2 added: Name array Type Loracle/sql/ARRAY; At 0 90 Range 0 89 Init 0
    // Parameter  3 added: Name l Type J At 0 90 Range 0 89 Init 0
    // Parameter  5 added: Name i Type I At 0 90 Range 0 89 Init 0
    // Parameter  6 added: Name map Type Ljava/util/Map; At 0 90 Range 0 89 Init 0
    // RetValue   8 added: Name <returnValue> Type V At 0 90 Range 0 89 Init 0 fixed
    // LocalVar   7 added: Name j Type I At 43 25 Range 43 67 Init 43
    public ArrayDataResultSet(OracleConnection oracleconnection, ARRAY array, long l, int i, Map map)
        throws SQLException
    {
        super();
        m_conn = oracleconnection;
        m_array = array;
        m_map = map;
        m_idx = (int)l - 1;
        int j = m_array != null ? array.length() : 0;
        m_lastIdx = m_idx + (i != -1 ? Math.min(j - m_idx, i) : j - m_idx);
        m_fetchSz = OracleConnection.DEFAULT_ROW_PREFETCH;
        return;
    }

    // Decompiling method: <init>  Signature: (Loracle/jdbc/driver/OracleConnection;[Loracle/sql/Datum;JILjava/util/Map;)V
    // Max stack: 4, #locals: 8, #params: 7
    // Code length: 75 bytes, Code offset: 5113
    // Line Number Table found: 9 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 75 Range 0 74 Init 0 fixed
    // Parameter  1 added: Name oracleconnection Type Loracle/jdbc/driver/OracleConnection; At 0 75 Range 0 74 Init 0
    // Parameter  2 added: Name adatum Type [Loracle/sql/Datum; At 0 75 Range 0 74 Init 0
    // Parameter  3 added: Name l Type J At 0 75 Range 0 74 Init 0
    // Parameter  5 added: Name i Type I At 0 75 Range 0 74 Init 0
    // Parameter  6 added: Name map Type Ljava/util/Map; At 0 75 Range 0 74 Init 0
    // RetValue   8 added: Name <returnValue> Type V At 0 75 Range 0 74 Init 0 fixed
    // LocalVar   7 added: Name j Type I At 44 9 Range 44 52 Init 44
    public ArrayDataResultSet(OracleConnection oracleconnection, Datum adatum[], long l, int i, Map map)
        throws SQLException
    {
        super();
        m_conn = oracleconnection;
        m_data = adatum;
        m_map = map;
        m_idx = (int)l - 1;
        int j = m_data != null ? m_data.length : 0;
        m_lastIdx = m_idx + Math.min(j - m_idx, i);
        m_fetchSz = OracleConnection.DEFAULT_ROW_PREFETCH;
        return;
    }

    // Decompiling method: <init>  Signature: (Loracle/jdbc/driver/OracleConnection;[Loracle/sql/Datum;Ljava/util/Map;)V
    // Max stack: 2, #locals: 4, #params: 4
    // Code length: 52 bytes, Code offset: 5268
    // Line Number Table found: 8 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 52 Range 0 51 Init 0 fixed
    // Parameter  1 added: Name oracleconnection Type Loracle/jdbc/driver/OracleConnection; At 0 52 Range 0 51 Init 0
    // Parameter  2 added: Name adatum Type [Loracle/sql/Datum; At 0 52 Range 0 51 Init 0
    // Parameter  3 added: Name map Type Ljava/util/Map; At 0 52 Range 0 51 Init 0
    // RetValue   4 added: Name <returnValue> Type V At 0 52 Range 0 51 Init 0 fixed
    public ArrayDataResultSet(OracleConnection oracleconnection, Datum adatum[], Map map)
        throws SQLException
    {
        super();
        m_conn = oracleconnection;
        m_data = adatum;
        m_map = map;
        m_idx = 0;
        m_lastIdx = m_data != null ? m_data.length : 0;
        m_fetchSz = OracleConnection.DEFAULT_ROW_PREFETCH;
        return;
    }

    // Decompiling method: close  Signature: ()V
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 6 bytes, Code offset: 5396
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 6 Range 0 5 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type V At 0 6 Range 0 5 Init 0 fixed
    public synchronized void close()
        throws SQLException
    {
        m_closed = true;
        return;
    }

    // Decompiling method: findColumn  Signature: (Ljava/lang/String;)I
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 31 bytes, Code offset: 5454
    // Line Number Table found: 8 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 31 Range 0 30 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; At 0 31 Range 0 30 Init 0
    // RetValue   2 added: Name <returnValue> Type I At 0 31 Range 0 30 Init 0 fixed
    public synchronized int findColumn(String s)
        throws SQLException
    {
        if(s.equalsIgnoreCase("index"))
        {
            return 1;
        }
        if(s.equalsIgnoreCase("value"))
        {
            return 2;
        } else
        {
            DBError.check_error(6, "get_column_index");
            return 0;
        }
    }

    // Decompiling method: getARRAY  Signature: (I)Loracle/sql/ARRAY;
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 30 bytes, Code offset: 5561
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 30 Range 0 29 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 30 Range 0 29 Init 0
    // RetValue   3 added: Name <returnValue> Type Loracle/sql/ARRAY; At 0 30 Range 0 29 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 13 Range 5 17 Init 5
    public synchronized ARRAY getARRAY(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            if(datum instanceof ARRAY)
            {
                return (ARRAY)datum;
            }
            DBError.check_error(4, "getARRAY");
        }
        return null;
    }

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

    // Decompiling method: getAsciiStream  Signature: (I)Ljava/io/InputStream;
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 17 bytes, Code offset: 5713
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 17 Range 0 16 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 17 Range 0 16 Init 0
    // RetValue   3 added: Name <returnValue> Type Ljava/io/InputStream; At 0 17 Range 0 16 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 6 Range 5 10 Init 5
    public synchronized InputStream getAsciiStream(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            datum.asciiStreamValue();
        }
        return null;
    }

    // Decompiling method: getBFILE  Signature: (I)Loracle/sql/BFILE;
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 30 bytes, Code offset: 5790
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 30 Range 0 29 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 30 Range 0 29 Init 0
    // RetValue   3 added: Name <returnValue> Type Loracle/sql/BFILE; At 0 30 Range 0 29 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 13 Range 5 17 Init 5
    public synchronized BFILE getBFILE(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            if(datum instanceof BFILE)
            {
                return (BFILE)datum;
            }
            DBError.check_error(4, "getBFILE");
        }
        return null;
    }

    // Decompiling method: getBLOB  Signature: (I)Loracle/sql/BLOB;
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 30 bytes, Code offset: 5888
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 30 Range 0 29 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 30 Range 0 29 Init 0
    // RetValue   3 added: Name <returnValue> Type Loracle/sql/BLOB; At 0 30 Range 0 29 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 13 Range 5 17 Init 5
    public synchronized BLOB getBLOB(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            if(datum instanceof BLOB)
            {
                return (BLOB)datum;
            }
            DBError.check_error(4, "getBLOB");
        }
        return null;
    }

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

    // Decompiling method: getBigDecimal  Signature: (I)Ljava/math/BigDecimal;
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 17 bytes, Code offset: 6040
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 17 Range 0 16 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 17 Range 0 16 Init 0
    // RetValue   3 added: Name <returnValue> Type Ljava/math/BigDecimal; At 0 17 Range 0 16 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 6 Range 5 10 Init 5
    public synchronized BigDecimal getBigDecimal(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            return datum.bigDecimalValue();
        } else
        {
            return null;
        }
    }

    // Decompiling method: getBigDecimal  Signature: (II)Ljava/math/BigDecimal;
    // Max stack: 2, #locals: 4, #params: 3
    // Code length: 17 bytes, Code offset: 6117
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 17 Range 0 16 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 17 Range 0 16 Init 0
    // Parameter  2 added: Name j Type I At 0 17 Range 0 16 Init 0
    // RetValue   4 added: Name <returnValue> Type Ljava/math/BigDecimal; At 0 17 Range 0 16 Init 0 fixed
    // LocalVar   3 added: Name datum Type Loracle/sql/Datum; At 5 6 Range 5 10 Init 5
    public synchronized BigDecimal getBigDecimal(int i, int j)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            return datum.bigDecimalValue();
        } else
        {
            return null;
        }
    }

    // Decompiling method: getBinaryStream  Signature: (I)Ljava/io/InputStream;
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 17 bytes, Code offset: 6194
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 17 Range 0 16 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 17 Range 0 16 Init 0
    // RetValue   3 added: Name <returnValue> Type Ljava/io/InputStream; At 0 17 Range 0 16 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 6 Range 5 10 Init 5
    public synchronized InputStream getBinaryStream(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            return datum.binaryStreamValue();
        } else
        {
            return null;
        }
    }

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

    // Decompiling method: getBoolean  Signature: (I)Z
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 17 bytes, Code offset: 6325
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 17 Range 0 16 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 17 Range 0 16 Init 0
    // RetValue   3 added: Name <returnValue> Type Z At 0 17 Range 0 16 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 6 Range 5 10 Init 5
    public synchronized boolean getBoolean(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            return datum.booleanValue();
        } else
        {
            return false;
        }
    }

    // Decompiling method: getByte  Signature: (I)B
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 17 bytes, Code offset: 6402
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 17 Range 0 16 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 17 Range 0 16 Init 0
    // RetValue   3 added: Name <returnValue> Type B At 0 17 Range 0 16 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 6 Range 5 10 Init 5
    public synchronized byte getByte(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            return datum.byteValue();
        } else
        {
            return 0;
        }
    }

    // Decompiling method: getBytes  Signature: (I)[B
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 33 bytes, Code offset: 6479
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; 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   3 added: Name <returnValue> Type [B At 0 33 Range 0 32 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 13 Range 5 17 Init 5
    public synchronized byte[] getBytes(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            if(datum instanceof RAW)
            {
                return ((RAW)datum).shareBytes();
            }
            DBError.check_error(4, "getBytes");
        }
        return null;
    }

    // Decompiling method: getCHAR  Signature: (I)Loracle/sql/CHAR;
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 30 bytes, Code offset: 6580
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 30 Range 0 29 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 30 Range 0 29 Init 0
    // RetValue   3 added: Name <returnValue> Type Loracle/sql/CHAR; At 0 30 Range 0 29 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 13 Range 5 17 Init 5
    public synchronized CHAR getCHAR(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            if(datum instanceof CHAR)
            {
                return (CHAR)datum;
            }
            DBError.check_error(4, "getCHAR");
        }
        return null;
    }

    // Decompiling method: getCLOB  Signature: (I)Loracle/sql/CLOB;
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 30 bytes, Code offset: 6678
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 30 Range 0 29 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 30 Range 0 29 Init 0
    // RetValue   3 added: Name <returnValue> Type Loracle/sql/CLOB; At 0 30 Range 0 29 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 13 Range 5 17 Init 5
    public synchronized CLOB getCLOB(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            if(datum instanceof CLOB)
            {
                return (CLOB)datum;
            }
            DBError.check_error(4, "getCLOB");
        }
        return null;
    }

    // Decompiling method: getCharacterStream  Signature: (I)Ljava/io/Reader;
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 17 bytes, Code offset: 6776
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 17 Range 0 16 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 17 Range 0 16 Init 0
    // RetValue   3 added: Name <returnValue> Type Ljava/io/Reader; At 0 17 Range 0 16 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 6 Range 5 10 Init 5
    public synchronized Reader getCharacterStream(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            return datum.characterStreamValue();
        } else
        {
            return null;
        }
    }

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

    // Decompiling method: getCursor  Signature: (I)Ljava/sql/ResultSet;
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 8 bytes, Code offset: 6907
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 8 Range 0 7 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 8 Range 0 7 Init 0
    // RetValue   2 added: Name <returnValue> Type Ljava/sql/ResultSet; At 0 8 Range 0 7 Init 0 fixed
    public synchronized ResultSet getCursor(int i)
        throws SQLException
    {
        DBError.check_error(4, "getCursor");
        return null;
    }

    // Decompiling method: getCustomDatum  Signature: (ILoracle/sql/CustomDatumFactory;)Loracle/sql/CustomDatum;
    // Max stack: 3, #locals: 4, #params: 3
    // Code length: 15 bytes, Code offset: 6967
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 15 Range 0 14 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 15 Range 0 14 Init 0
    // Parameter  2 added: Name customdatumfactory Type Loracle/sql/CustomDatumFactory; At 0 15 Range 0 14 Init 0
    // RetValue   4 added: Name <returnValue> Type Loracle/sql/CustomDatum; At 0 15 Range 0 14 Init 0 fixed
    // LocalVar   3 added: Name datum Type Loracle/sql/Datum; At 5 3 Range 5 7 Init 5
    public synchronized CustomDatum getCustomDatum(int i, CustomDatumFactory customdatumfactory)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        return customdatumfactory.create(datum, 0);
    }

    // Decompiling method: getDATE  Signature: (I)Loracle/sql/DATE;
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 30 bytes, Code offset: 7040
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 30 Range 0 29 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 30 Range 0 29 Init 0
    // RetValue   3 added: Name <returnValue> Type Loracle/sql/DATE; At 0 30 Range 0 29 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 13 Range 5 17 Init 5
    public synchronized DATE getDATE(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            if(datum instanceof DATE)
            {
                return (DATE)datum;
            }
            DBError.check_error(4, "getDATE");
        }
        return null;
    }

    // Decompiling method: getDate  Signature: (I)Ljava/sql/Date;
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 17 bytes, Code offset: 7138
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 17 Range 0 16 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 17 Range 0 16 Init 0
    // RetValue   3 added: Name <returnValue> Type Ljava/sql/Date; At 0 17 Range 0 16 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 6 Range 5 10 Init 5
    public synchronized Date getDate(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            return datum.dateValue();
        } else
        {
            return null;
        }
    }

    // Decompiling method: getDate  Signature: (ILjava/util/Calendar;)Ljava/sql/Date;
    // Max stack: 3, #locals: 5, #params: 3
    // Code length: 56 bytes, Code offset: 7215
    // Line Number Table found: 9 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 56 Range 0 55 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 56 Range 0 55 Init 0
    // Parameter  2 added: Name calendar Type Ljava/util/Calendar; At 0 56 Range 0 55 Init 0
    // RetValue   5 added: Name <returnValue> Type Ljava/sql/Date; At 0 56 Range 0 55 Init 0 fixed
    // LocalVar   3 added: Name datum Type Loracle/sql/Datum; At 5 29 Range 5 33 Init 5
    // LocalVar   4 added: Name obj Type A At 11 2 Range 11 12 Init 11
    // LocalVar   4 added: Name date Type Loracle/sql/DATE; At 24 25 Range 24 48 Init 24
    // LocalVar   4 chged: Name date1 Oname obj Type Loracle/sql/DATE; At 11 2 Range 11 12 Init 11
    // LocalVar   4 name date(Loracle/sql/DATE;) merged out into date1(Loracle/sql/DATE;)
    public synchronized Date getDate(int i, Calendar calendar)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            DATE date = null;
            if(datum instanceof DATE)
            {
                date = (DATE)datum;
            } else
            {
                date = new DATE(datum.stringValue());
            }
            if(date != null)
            {
                return date.dateValue(calendar);
            }
        }
        return null;
    }

    // Decompiling method: getDouble  Signature: (I)D
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 17 bytes, Code offset: 7351
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 17 Range 0 16 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 17 Range 0 16 Init 0
    // RetValue   3 added: Name <returnValue> Type D At 0 17 Range 0 16 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 6 Range 5 10 Init 5
    public synchronized double getDouble(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            return datum.doubleValue();
        } else
        {
            return 0.0D;
        }
    }

    // Decompiling method: getFetchSize  Signature: ()I
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 5 bytes, Code offset: 7428
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; 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 getFetchSize()
        throws SQLException
    {
        return m_fetchSz;
    }

    // Decompiling method: getFloat  Signature: (I)F
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 17 bytes, Code offset: 7481
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 17 Range 0 16 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 17 Range 0 16 Init 0
    // RetValue   3 added: Name <returnValue> Type F At 0 17 Range 0 16 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 6 Range 5 10 Init 5
    public synchronized float getFloat(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            return datum.floatValue();
        } else
        {
            return 0.0F;
        }
    }

    // Decompiling method: getInt  Signature: (I)I
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 17 bytes, Code offset: 7558
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 17 Range 0 16 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 17 Range 0 16 Init 0
    // RetValue   3 added: Name <returnValue> Type I At 0 17 Range 0 16 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 6 Range 5 10 Init 5
    public synchronized int getInt(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            return datum.intValue();
        } else
        {
            return 0;
        }
    }

    // Decompiling method: getLong  Signature: (I)J
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 17 bytes, Code offset: 7635
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 17 Range 0 16 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 17 Range 0 16 Init 0
    // RetValue   3 added: Name <returnValue> Type J At 0 17 Range 0 16 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 6 Range 5 10 Init 5
    public synchronized long getLong(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            return datum.longValue();
        } else
        {
            return 0L;
        }
    }

    // Decompiling method: getMetaData  Signature: ()Ljava/sql/ResultSetMetaData;
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 23 bytes, Code offset: 7712
    // Line Number Table found: 8 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 23 Range 0 22 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/sql/ResultSetMetaData; At 0 23 Range 0 22 Init 0 fixed
    public synchronized ResultSetMetaData getMetaData()
        throws SQLException
    {
        if(m_closed)
        {
            DBError.check_error(10, "getMetaData");
        }
        DBError.check_error(23, "getMetaData");
        return null;
    }

    // Decompiling method: getNUMBER  Signature: (I)Loracle/sql/NUMBER;
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 30 bytes, Code offset: 7811
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 30 Range 0 29 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 30 Range 0 29 Init 0
    // RetValue   3 added: Name <returnValue> Type Loracle/sql/NUMBER; At 0 30 Range 0 29 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 13 Range 5 17 Init 5
    public synchronized NUMBER getNUMBER(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            if(datum instanceof NUMBER)
            {
                return (NUMBER)datum;
            }
            DBError.check_error(4, "getNUMBER");
        }
        return null;
    }

    // Decompiling method: getOPAQUE  Signature: (I)Loracle/sql/OPAQUE;
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 30 bytes, Code offset: 7909
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 30 Range 0 29 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 30 Range 0 29 Init 0
    // RetValue   3 added: Name <returnValue> Type Loracle/sql/OPAQUE; At 0 30 Range 0 29 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 13 Range 5 17 Init 5
    public synchronized OPAQUE getOPAQUE(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            if(datum instanceof OPAQUE)
            {
                return (OPAQUE)datum;
            }
            DBError.check_error(4, "getOPAQUE");
        }
        return null;
    }

    // Decompiling method: getORAData  Signature: (ILoracle/sql/ORADataFactory;)Loracle/sql/ORAData;
    // Max stack: 3, #locals: 4, #params: 3
    // Code length: 15 bytes, Code offset: 8007
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 15 Range 0 14 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 15 Range 0 14 Init 0
    // Parameter  2 added: Name oradatafactory Type Loracle/sql/ORADataFactory; At 0 15 Range 0 14 Init 0
    // RetValue   4 added: Name <returnValue> Type Loracle/sql/ORAData; At 0 15 Range 0 14 Init 0 fixed
    // LocalVar   3 added: Name datum Type Loracle/sql/Datum; At 5 3 Range 5 7 Init 5
    public synchronized ORAData getORAData(int i, ORADataFactory oradatafactory)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        return oradatafactory.create(datum, 0);
    }

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

    // Decompiling method: getObject  Signature: (ILjava/util/Map;)Ljava/lang/Object;
    // Max stack: 2, #locals: 4, #params: 3
    // Code length: 33 bytes, Code offset: 8132
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 33 Range 0 32 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 33 Range 0 32 Init 0
    // Parameter  2 added: Name map Type Ljava/util/Map; At 0 33 Range 0 32 Init 0
    // RetValue   4 added: Name <returnValue> Type Ljava/lang/Object; At 0 33 Range 0 32 Init 0 fixed
    // LocalVar   3 added: Name datum Type Loracle/sql/Datum; At 5 22 Range 5 26 Init 5
    public synchronized Object getObject(int i, Map map)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            if(datum instanceof STRUCT)
            {
                return ((STRUCT)datum).toJdbc(map);
            } else
            {
                return datum.toJdbc();
            }
        } else
        {
            return null;
        }
    }

    // Decompiling method: getOracleObject  Signature: (I)Loracle/sql/Datum;
    // Max stack: 4, #locals: 3, #params: 2
    // Code length: 155 bytes, Code offset: 8233
    // Line Number Table found: 21 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 155 Range 0 154 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 155 Range 0 154 Init 0
    // RetValue   3 added: Name <returnValue> Type Loracle/sql/Datum; At 0 155 Range 0 154 Init 0 fixed
    // LocalVar   2 added: Name adatum Type [Loracle/sql/Datum; At 108 31 Range 108 138 Init 108
    public synchronized Datum getOracleObject(int i)
        throws SQLException
    {
        if(m_idx <= 0)
        {
            DBError.check_error(14, null);
        }
        if(i == 1)
        {
            m_wasNull = BOOLEAN_FALSE;
            return new NUMBER(m_idx);
        }
        if(i == 2)
        {
            if(m_data != null)
            {
                m_wasNull = m_data[m_idx - 1] != null ? BOOLEAN_FALSE : BOOLEAN_TRUE;
                return m_data[m_idx - 1];
            }
            if(m_array != null)
            {
                Datum adatum[] = m_array.getOracleArray(m_idx, 1);
                if(adatum != null && adatum.length >= 1)
                {
                    m_wasNull = adatum[0] != null ? BOOLEAN_FALSE : BOOLEAN_TRUE;
                    return adatum[0];
                }
            }
            DBError.check_error(1, "Out of sync");
        }
        DBError.check_error(3, null);
        return null;
    }

    // Decompiling method: getRAW  Signature: (I)Loracle/sql/RAW;
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 30 bytes, Code offset: 8516
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 30 Range 0 29 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 30 Range 0 29 Init 0
    // RetValue   3 added: Name <returnValue> Type Loracle/sql/RAW; At 0 30 Range 0 29 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 13 Range 5 17 Init 5
    public synchronized RAW getRAW(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            if(datum instanceof RAW)
            {
                return (RAW)datum;
            }
            DBError.check_error(4, "getRAW");
        }
        return null;
    }

    // Decompiling method: getREF  Signature: (I)Loracle/sql/REF;
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 30 bytes, Code offset: 8614
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 30 Range 0 29 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 30 Range 0 29 Init 0
    // RetValue   3 added: Name <returnValue> Type Loracle/sql/REF; At 0 30 Range 0 29 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 13 Range 5 17 Init 5
    public synchronized REF getREF(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            if(datum instanceof REF)
            {
                return (REF)datum;
            }
            DBError.check_error(4, "getREF");
        }
        return null;
    }

    // Decompiling method: getROWID  Signature: (I)Loracle/sql/ROWID;
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 30 bytes, Code offset: 8712
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 30 Range 0 29 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 30 Range 0 29 Init 0
    // RetValue   3 added: Name <returnValue> Type Loracle/sql/ROWID; At 0 30 Range 0 29 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 13 Range 5 17 Init 5
    public synchronized ROWID getROWID(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            if(datum instanceof ROWID)
            {
                return (ROWID)datum;
            }
            DBError.check_error(4, "getROWID");
        }
        return null;
    }

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

    // Decompiling method: getRow  Signature: ()I
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 5 bytes, Code offset: 8864
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; 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 getRow()
        throws SQLException
    {
        return m_idx;
    }

    // Decompiling method: getSTRUCT  Signature: (I)Loracle/sql/STRUCT;
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 30 bytes, Code offset: 8917
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 30 Range 0 29 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 30 Range 0 29 Init 0
    // RetValue   3 added: Name <returnValue> Type Loracle/sql/STRUCT; At 0 30 Range 0 29 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 13 Range 5 17 Init 5
    public synchronized STRUCT getSTRUCT(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            if(datum instanceof STRUCT)
            {
                return (STRUCT)datum;
            }
            DBError.check_error(4, "getSTRUCT");
        }
        return null;
    }

    // Decompiling method: getShort  Signature: (I)S
    // Max stack: 4, #locals: 4, #params: 2
    // Code length: 33 bytes, Code offset: 9015
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; 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   4 added: Name <returnValue> Type S At 0 33 Range 0 32 Init 0 fixed
    // LocalVar   2 added: Name l Type J At 5 25 Range 5 29 Init 5
    public synchronized short getShort(int i)
        throws SQLException
    {
        long l = getLong(i);
        if(l > 0x000010001L || l < 0xfffffffffffefffeL)
        {
            DBError.check_error(26, "getShort");
        }
        return (short)(int)l;
    }

    // Decompiling method: getStatement  Signature: ()Ljava/sql/Statement;
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 2 bytes, Code offset: 9108
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 2 Range 0 1 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/sql/Statement; At 0 2 Range 0 1 Init 0 fixed
    public synchronized Statement getStatement()
        throws SQLException
    {
        return null;
    }

    // Decompiling method: getString  Signature: (I)Ljava/lang/String;
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 17 bytes, Code offset: 9158
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 17 Range 0 16 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 17 Range 0 16 Init 0
    // RetValue   3 added: Name <returnValue> Type Ljava/lang/String; At 0 17 Range 0 16 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 6 Range 5 10 Init 5
    public synchronized String getString(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            return datum.stringValue();
        } else
        {
            return null;
        }
    }

    // Decompiling method: getTime  Signature: (I)Ljava/sql/Time;
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 17 bytes, Code offset: 9235
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 17 Range 0 16 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 17 Range 0 16 Init 0
    // RetValue   3 added: Name <returnValue> Type Ljava/sql/Time; At 0 17 Range 0 16 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 6 Range 5 10 Init 5
    public synchronized Time getTime(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            return datum.timeValue();
        } else
        {
            return null;
        }
    }

    // Decompiling method: getTime  Signature: (ILjava/util/Calendar;)Ljava/sql/Time;
    // Max stack: 3, #locals: 5, #params: 3
    // Code length: 56 bytes, Code offset: 9312
    // Line Number Table found: 9 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 56 Range 0 55 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 56 Range 0 55 Init 0
    // Parameter  2 added: Name calendar Type Ljava/util/Calendar; At 0 56 Range 0 55 Init 0
    // RetValue   5 added: Name <returnValue> Type Ljava/sql/Time; At 0 56 Range 0 55 Init 0 fixed
    // LocalVar   3 added: Name datum Type Loracle/sql/Datum; At 5 29 Range 5 33 Init 5
    // LocalVar   4 added: Name obj Type A At 11 2 Range 11 12 Init 11
    // LocalVar   4 added: Name date Type Loracle/sql/DATE; At 24 25 Range 24 48 Init 24
    // LocalVar   4 chged: Name date1 Oname obj Type Loracle/sql/DATE; At 11 2 Range 11 12 Init 11
    // LocalVar   4 name date(Loracle/sql/DATE;) merged out into date1(Loracle/sql/DATE;)
    public synchronized Time getTime(int i, Calendar calendar)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            DATE date = null;
            if(datum instanceof DATE)
            {
                date = (DATE)datum;
            } else
            {
                date = new DATE(datum.stringValue());
            }
            if(date != null)
            {
                return date.timeValue(calendar);
            }
        }
        return null;
    }

    // Decompiling method: getTimestamp  Signature: (I)Ljava/sql/Timestamp;
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 17 bytes, Code offset: 9448
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 17 Range 0 16 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 17 Range 0 16 Init 0
    // RetValue   3 added: Name <returnValue> Type Ljava/sql/Timestamp; At 0 17 Range 0 16 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 6 Range 5 10 Init 5
    public synchronized Timestamp getTimestamp(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            return datum.timestampValue();
        } else
        {
            return null;
        }
    }

    // Decompiling method: getTimestamp  Signature: (ILjava/util/Calendar;)Ljava/sql/Timestamp;
    // Max stack: 3, #locals: 5, #params: 3
    // Code length: 56 bytes, Code offset: 9525
    // Line Number Table found: 9 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 56 Range 0 55 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 56 Range 0 55 Init 0
    // Parameter  2 added: Name calendar Type Ljava/util/Calendar; At 0 56 Range 0 55 Init 0
    // RetValue   5 added: Name <returnValue> Type Ljava/sql/Timestamp; At 0 56 Range 0 55 Init 0 fixed
    // LocalVar   3 added: Name datum Type Loracle/sql/Datum; At 5 29 Range 5 33 Init 5
    // LocalVar   4 added: Name obj Type A At 11 2 Range 11 12 Init 11
    // LocalVar   4 added: Name date Type Loracle/sql/DATE; At 24 25 Range 24 48 Init 24
    // LocalVar   4 chged: Name date1 Oname obj Type Loracle/sql/DATE; At 11 2 Range 11 12 Init 11
    // LocalVar   4 name date(Loracle/sql/DATE;) merged out into date1(Loracle/sql/DATE;)
    public synchronized Timestamp getTimestamp(int i, Calendar calendar)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            DATE date = null;
            if(datum instanceof DATE)
            {
                date = (DATE)datum;
            } else
            {
                date = new DATE(datum.stringValue());
            }
            if(date != null)
            {
                return date.timestampValue(calendar);
            }
        }
        return null;
    }

    // Decompiling method: getUnicodeStream  Signature: (I)Ljava/io/InputStream;
    // Max stack: 4, #locals: 5, #params: 2
    // Code length: 76 bytes, Code offset: 9661
    // Line Number Table found: 16 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 76 Range 0 75 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 76 Range 0 75 Init 0
    // RetValue   5 added: Name <returnValue> Type Ljava/io/InputStream; At 0 76 Range 0 75 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 5 42 Range 5 46 Init 5
    // LocalVar   3 added: Name dbconversion Type Loracle/jdbc/dbaccess/DBConversion; At 17 37 Range 17 53 Init 17
    // LocalVar   4 added: Name abyte0 Type [B At 22 38 Range 22 59 Init 22
    public synchronized InputStream getUnicodeStream(int i)
        throws SQLException
    {
        Datum datum = getOracleObject(i);
        if(datum != null)
        {
            DBConversion dbconversion = m_conn.conversion;
            byte abyte0[] = datum.shareBytes();
            if(datum instanceof RAW)
            {
                return dbconversion.ConvertStream(new ByteArrayInputStream(abyte0), 3);
            }
            if(datum instanceof CHAR)
            {
                return dbconversion.ConvertStream(new ByteArrayInputStream(abyte0), 1);
            }
            DBError.check_error(4, "getUnicodeStream");
        }
        return null;
    }

    // Decompiling method: isAfterLast  Signature: ()Z
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 17 bytes, Code offset: 9845
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 17 Range 0 16 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Z At 0 17 Range 0 16 Init 0 fixed
    public boolean isAfterLast()
        throws SQLException
    {
        return m_idx > m_lastIdx;
    }

    // Decompiling method: isBeforeFirst  Signature: ()Z
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 14 bytes, Code offset: 9910
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 14 Range 0 13 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Z At 0 14 Range 0 13 Init 0 fixed
    public boolean isBeforeFirst()
        throws SQLException
    {
        return m_idx < 1;
    }

    // Decompiling method: isFirst  Signature: ()Z
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 14 bytes, Code offset: 9972
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 14 Range 0 13 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Z At 0 14 Range 0 13 Init 0 fixed
    public boolean isFirst()
        throws SQLException
    {
        return m_idx == 1;
    }

    // Decompiling method: isLast  Signature: ()Z
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 17 bytes, Code offset: 10034
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 17 Range 0 16 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Z At 0 17 Range 0 16 Init 0 fixed
    public boolean isLast()
        throws SQLException
    {
        return m_idx == m_lastIdx;
    }

    // Decompiling method: next  Signature: ()Z
    // Max stack: 3, #locals: 1, #params: 1
    // Code length: 41 bytes, Code offset: 10099
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 41 Range 0 40 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Z At 0 41 Range 0 40 Init 0 fixed
    public boolean next()
        throws SQLException
    {
        if(m_closed)
        {
            DBError.check_error(10, "next");
        }
        m_idx++;
        return m_idx <= m_lastIdx;
    }

    // Decompiling method: setFetchSize  Signature: (I)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 32 bytes, Code offset: 10200
    // Line Number Table found: 8 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 32 Range 0 31 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 32 Range 0 31 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 32 Range 0 31 Init 0 fixed
    public void setFetchSize(int i)
        throws SQLException
    {
        if(i < 0)
        {
            DBError.throwSqlException(68);
        } else
        if(i == 0)
        {
            m_fetchSz = OracleConnection.DEFAULT_ROW_PREFETCH;
        } else
        {
            m_fetchSz = i;
        }
        return;
    }

    // Decompiling method: wasNull  Signature: ()Z
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 21 bytes, Code offset: 10308
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/jdbc/driver/ArrayDataResultSet; At 0 21 Range 0 20 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Z At 0 21 Range 0 20 Init 0 fixed
    public synchronized boolean wasNull()
        throws SQLException
    {
        if(m_wasNull == null)
        {
            DBError.check_error(24, null);
        }
        return m_wasNull.booleanValue();
    }

    // Decompiling method: <clinit>  Signature: ()V
    // Max stack: 3, #locals: 0, #params: 0
    // Code length: 23 bytes, Code offset: 4858
    // Line Number Table found: 3 entries
    // RetValue   0 added: Name <returnValue> Type V At 0 23 Range 0 22 Init 0 fixed
    static 
    {
        /* BOOLEAN_TRUE = new Boolean(true); */
        /* BOOLEAN_FALSE = new Boolean(false); */
    }
}
