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

package oracle.sql;

import java.io.*;
import java.math.BigDecimal;
import java.sql.*;

// flag ACC_SUPER is set
public abstract class Datum
{
    // Constants:          116
    // Interfaces:         0
    // Fields:             1
    // Methods:            27
    // Class Attributes:   1


    private byte data[];

    // Decompiling method: <init>  Signature: ()V
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 5 bytes, Code offset: 1644
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/Datum; At 0 5 Range 0 4 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type V At 0 5 Range 0 4 Init 0 fixed
    public Datum()
    {
        super();
        return;
    }

    // Decompiling method: <init>  Signature: ([B)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 10 bytes, Code offset: 1687
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/sql/Datum; At 0 10 Range 0 9 Init 0 fixed
    // Parameter  1 added: Name abyte0 Type [B At 0 10 Range 0 9 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 10 Range 0 9 Init 0 fixed
    public Datum(byte abyte0[])
    {
        super();
        data = abyte0;
        return;
    }

    // Decompiling method: asciiStreamValue  Signature: ()Ljava/io/InputStream;
    // Max stack: 3, #locals: 1, #params: 1
    // Code length: 10 bytes, Code offset: 1743
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/Datum; At 0 10 Range 0 9 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/io/InputStream; At 0 10 Range 0 9 Init 0 fixed
    public InputStream asciiStreamValue()
        throws SQLException
    {
        throw new SQLException("Conversion to ascii stream failed");
    }

    // Decompiling method: bigDecimalValue  Signature: ()Ljava/math/BigDecimal;
    // Max stack: 3, #locals: 1, #params: 1
    // Code length: 10 bytes, Code offset: 1801
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/Datum; At 0 10 Range 0 9 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/math/BigDecimal; At 0 10 Range 0 9 Init 0 fixed
    public BigDecimal bigDecimalValue()
        throws SQLException
    {
        throw new SQLException("Conversion to BigDecimal failed");
    }

    // Decompiling method: binaryStreamValue  Signature: ()Ljava/io/InputStream;
    // Max stack: 3, #locals: 1, #params: 1
    // Code length: 10 bytes, Code offset: 1859
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/Datum; At 0 10 Range 0 9 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/io/InputStream; At 0 10 Range 0 9 Init 0 fixed
    public InputStream binaryStreamValue()
        throws SQLException
    {
        throw new SQLException("Conversion to binary stream failed");
    }

    // Decompiling method: booleanValue  Signature: ()Z
    // Max stack: 3, #locals: 1, #params: 1
    // Code length: 10 bytes, Code offset: 1917
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/Datum; At 0 10 Range 0 9 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Z At 0 10 Range 0 9 Init 0 fixed
    public boolean booleanValue()
        throws SQLException
    {
        throw new SQLException("Conversion to boolean failed");
    }

    // Decompiling method: byteValue  Signature: ()B
    // Max stack: 3, #locals: 1, #params: 1
    // Code length: 10 bytes, Code offset: 1975
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/Datum; At 0 10 Range 0 9 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type B At 0 10 Range 0 9 Init 0 fixed
    public byte byteValue()
        throws SQLException
    {
        throw new SQLException("Conversion to byte failed");
    }

    // Decompiling method: characterStreamValue  Signature: ()Ljava/io/Reader;
    // Max stack: 3, #locals: 1, #params: 1
    // Code length: 10 bytes, Code offset: 2033
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/Datum; At 0 10 Range 0 9 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/io/Reader; At 0 10 Range 0 9 Init 0 fixed
    public Reader characterStreamValue()
        throws SQLException
    {
        throw new SQLException("Conversion to character stream failed");
    }

    // Decompiling method: compareBytes  Signature: ([B[B)I
    // Max stack: 2, #locals: 8, #params: 2
    // Code length: 89 bytes, Code offset: 2091
    // Line Number Table found: 20 entries
    // Parameter  0 added: Name abyte0 Type [B At 0 89 Range 0 88 Init 0
    // Parameter  1 added: Name abyte1 Type [B At 0 89 Range 0 88 Init 0
    // RetValue   8 added: Name <returnValue> Type I At 0 89 Range 0 88 Init 0 fixed
    // LocalVar   2 added: Name i Type I At 2 79 Range 2 80 Init 2
    // LocalVar   3 added: Name j Type I At 5 77 Range 5 81 Init 5
    // LocalVar   4 added: Name flag Type Z At 7 61 Range 7 67 Init 7
    // LocalVar   5 added: Name k Type I At 14 56 Range 14 69 Init 14
    // LocalVar   6 added: Name flag1 Type Z At 17 2 Range 17 18 Init 17
    // LocalVar   7 added: Name flag2 Type Z At 20 2 Range 20 21 Init 20
    // LocalVar   4 chged: Name l Oname flag Type I At 66 2 Range 7 67 Init 7
    // LocalVar   6 added: Name i1 Type I At 33 21 Range 33 53 Init 33
    // LocalVar   7 added: Name j1 Type I At 43 13 Range 43 55 Init 43
    protected static int compareBytes(byte abyte0[], byte abyte1[])
    {
        int i = abyte0.length;
        int j = abyte1.length;
        int k = 0;
        int l = Math.min(i, j);
        boolean flag = false;
        boolean flag1 = false;
        for(; k < l; k++)
        {
            int i1 = abyte0[k] & 0xff;
            int j1 = abyte1[k] & 0xff;
            if(i1 != j1)
            {
                return i1 >= j1 ? 1 : -1;
            }
        }

        if(i == j)
        {
            return 0;
        }
        return i <= j ? -1 : 1;
    }

    // Decompiling method: dateValue  Signature: ()Ljava/sql/Date;
    // Max stack: 3, #locals: 1, #params: 1
    // Code length: 10 bytes, Code offset: 2294
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/Datum; At 0 10 Range 0 9 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/sql/Date; At 0 10 Range 0 9 Init 0 fixed
    public Date dateValue()
        throws SQLException
    {
        throw new SQLException("Conversion to Date failed");
    }

    // Decompiling method: doubleValue  Signature: ()D
    // Max stack: 3, #locals: 1, #params: 1
    // Code length: 10 bytes, Code offset: 2352
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/Datum; At 0 10 Range 0 9 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type D At 0 10 Range 0 9 Init 0 fixed
    public double doubleValue()
        throws SQLException
    {
        throw new SQLException("Conversion to double failed");
    }

    // Decompiling method: equals  Signature: (Ljava/lang/Object;)Z
    // Max stack: 3, #locals: 4, #params: 2
    // Code length: 89 bytes, Code offset: 2410
    // Line Number Table found: 14 entries
    // Parameter  0 added: Name this Type Loracle/sql/Datum; At 0 89 Range 0 88 Init 0 fixed
    // Parameter  1 added: Name obj Type Ljava/lang/Object; At 0 89 Range 0 88 Init 0
    // RetValue   4 added: Name <returnValue> Type Z At 0 89 Range 0 88 Init 0 fixed
    // LocalVar   2 added: Name datum Type Loracle/sql/Datum; At 35 28 Range 35 62 Init 35
    // LocalVar   3 added: Name flag Type Z At 52 25 Range 52 76 Init 52
    // LocalVar   3 chged: Name i Oname flag Type I At 76 1 Range 52 76 Init 52
    public boolean equals(Object obj)
    {
        if(this == obj)
        {
            return true;
        }
        if(obj == null || !(obj instanceof Datum))
        {
            return false;
        }
        if(getClass() == obj.getClass())
        {
            Datum datum = (Datum)obj;
            if(data.length != datum.data.length)
            {
                return false;
            }
            for(int i = 0; i < data.length; i++)
            {
                if(data[i] != datum.data[i])
                {
                    return false;
                }
            }

            return true;
        } else
        {
            return false;
        }
    }

    // Decompiling method: floatValue  Signature: ()F
    // Max stack: 3, #locals: 1, #params: 1
    // Code length: 10 bytes, Code offset: 2589
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/Datum; At 0 10 Range 0 9 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type F At 0 10 Range 0 9 Init 0 fixed
    public float floatValue()
        throws SQLException
    {
        throw new SQLException("Conversion to float failed");
    }

    // Decompiling method: getBytes  Signature: ()[B
    // Max stack: 5, #locals: 2, #params: 1
    // Code length: 25 bytes, Code offset: 2647
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/sql/Datum; At 0 25 Range 0 24 Init 0 fixed
    // RetValue   2 added: Name <returnValue> Type [B At 0 25 Range 0 24 Init 0 fixed
    // LocalVar   1 added: Name abyte0 Type [B At 7 17 Range 7 23 Init 7
    public byte[] getBytes()
    {
        byte abyte0[] = new byte[data.length];
        System.arraycopy(data, 0, abyte0, 0, data.length);
        return abyte0;
    }

    // Decompiling method: getLength  Signature: ()J
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 16 bytes, Code offset: 2718
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/sql/Datum; At 0 16 Range 0 15 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type J At 0 16 Range 0 15 Init 0 fixed
    public long getLength()
    {
        if(data == null)
        {
            return 0L;
        } else
        {
            return (long)data.length;
        }
    }

    // Decompiling method: getStream  Signature: ()Ljava/io/InputStream;
    // Max stack: 3, #locals: 1, #params: 1
    // Code length: 12 bytes, Code offset: 2780
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/Datum; At 0 12 Range 0 11 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/io/InputStream; At 0 12 Range 0 11 Init 0 fixed
    public InputStream getStream()
    {
        return new ByteArrayInputStream(data);
    }

    // Decompiling method: intValue  Signature: ()I
    // Max stack: 3, #locals: 1, #params: 1
    // Code length: 10 bytes, Code offset: 2830
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/Datum; At 0 10 Range 0 9 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type I At 0 10 Range 0 9 Init 0 fixed
    public int intValue()
        throws SQLException
    {
        throw new SQLException("Conversion to integer failed");
    }

    // Parameter  0 added: Name this Type Loracle/sql/Datum; At 0 0 Range 0 4294967295 Init 0 fixed
    // Parameter  1 added: Name class1 Type Ljava/lang/Class; At 0 0 Range 0 4294967295 Init 0
    // RetValue   2 added: Name <returnValue> Type Z At 0 0 Range 0 4294967295 Init 0 fixed
    public abstract boolean isConvertibleTo(Class class1);

    // Decompiling method: longValue  Signature: ()J
    // Max stack: 3, #locals: 1, #params: 1
    // Code length: 10 bytes, Code offset: 2896
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/Datum; At 0 10 Range 0 9 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type J At 0 10 Range 0 9 Init 0 fixed
    public long longValue()
        throws SQLException
    {
        throw new SQLException("Conversion to long failed");
    }

    // Parameter  0 added: Name this Type Loracle/sql/Datum; At 0 0 Range 0 4294967295 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 0 Range 0 4294967295 Init 0
    // RetValue   2 added: Name <returnValue> Type Ljava/lang/Object; At 0 0 Range 0 4294967295 Init 0 fixed
    public abstract Object makeJdbcArray(int i);

    // Decompiling method: setBytes  Signature: ([B)V
    // Max stack: 5, #locals: 3, #params: 2
    // Code length: 22 bytes, Code offset: 2962
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/sql/Datum; At 0 22 Range 0 21 Init 0 fixed
    // Parameter  1 added: Name abyte0 Type [B At 0 22 Range 0 21 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 22 Range 0 21 Init 0 fixed
    // LocalVar   2 added: Name i Type I At 2 16 Range 2 17 Init 2
    public void setBytes(byte abyte0[])
    {
        int i = abyte0.length;
        data = new byte[i];
        System.arraycopy(abyte0, 0, data, 0, i);
        return;
    }

    // Decompiling method: setShareBytes  Signature: ([B)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 6 bytes, Code offset: 3034
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/Datum; At 0 6 Range 0 5 Init 0 fixed
    // Parameter  1 added: Name abyte0 Type [B 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 setShareBytes(byte abyte0[])
    {
        data = abyte0;
        return;
    }

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

    // Decompiling method: stringValue  Signature: ()Ljava/lang/String;
    // Max stack: 3, #locals: 1, #params: 1
    // Code length: 10 bytes, Code offset: 3125
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/Datum; At 0 10 Range 0 9 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/lang/String; At 0 10 Range 0 9 Init 0 fixed
    public String stringValue()
        throws SQLException
    {
        throw new SQLException("Conversion to String failed");
    }

    // Decompiling method: timeValue  Signature: ()Ljava/sql/Time;
    // Max stack: 3, #locals: 1, #params: 1
    // Code length: 10 bytes, Code offset: 3183
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/Datum; At 0 10 Range 0 9 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/sql/Time; At 0 10 Range 0 9 Init 0 fixed
    public Time timeValue()
        throws SQLException
    {
        throw new SQLException("Conversion to Time failed");
    }

    // Decompiling method: timestampValue  Signature: ()Ljava/sql/Timestamp;
    // Max stack: 3, #locals: 1, #params: 1
    // Code length: 10 bytes, Code offset: 3241
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/Datum; At 0 10 Range 0 9 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/sql/Timestamp; At 0 10 Range 0 9 Init 0 fixed
    public Timestamp timestampValue()
        throws SQLException
    {
        throw new SQLException("Conversion to Timestamp failed");
    }

    // Parameter  0 added: Name this Type Loracle/sql/Datum; At 0 0 Range 0 4294967295 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/lang/Object; At 0 0 Range 0 4294967295 Init 0 fixed
    public abstract Object toJdbc()
        throws SQLException;
}
