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

package oracle.sql;

import java.io.InputStream;
import java.io.OutputStream;
import java.io.Reader;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.SQLException;
import oracle.jdbc.OracleConnection;
import oracle.jdbc.dbaccess.DBError;
import oracle.jdbc.driver.OracleDriver;

// Referenced classes of package oracle.sql:
//            Datum, BlobDBAccess

// flag ACC_SUPER is set
public class BLOB extends Datum
    implements Blob
{
    // Constants:          244
    // Interfaces:         1
    // Fields:             8
    // Methods:            38
    // Class Attributes:   1


    public static final int MAX_CHUNK_SIZE = 32512;
    public static final int DURATION_SESSION = 1;
    public static final int DURATION_CALL = 2;
    public static final int MODE_READONLY = 0;
    public static final int MODE_READWRITE = 1;
    OracleConnection m_conn;
    BlobDBAccess m_dbaccess;
    int m_dbChunkSize;

    // Decompiling method: <init>  Signature: ()V
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 5 bytes, Code offset: 3230
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; 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
    protected BLOB()
    {
        super();
        return;
    }

    // Decompiling method: <init>  Signature: (Loracle/jdbc/OracleConnection;)V
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 3273
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name oracleconnection Type Loracle/jdbc/OracleConnection; At 0 7 Range 0 6 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 7 Range 0 6 Init 0 fixed
    public BLOB(OracleConnection oracleconnection)
        throws SQLException
    {
        this(oracleconnection, null);
        return;
    }

    // Decompiling method: <init>  Signature: (Loracle/jdbc/OracleConnection;[B)V
    // Max stack: 2, #locals: 3, #params: 3
    // Code length: 43 bytes, Code offset: 3332
    // Line Number Table found: 8 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 43 Range 0 42 Init 0 fixed
    // Parameter  1 added: Name oracleconnection Type Loracle/jdbc/OracleConnection; At 0 43 Range 0 42 Init 0
    // Parameter  2 added: Name abyte0 Type [B At 0 43 Range 0 42 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 43 Range 0 42 Init 0 fixed
    public BLOB(OracleConnection oracleconnection, byte abyte0[])
        throws SQLException
    {
        super(abyte0);
        if(oracleconnection != null)
        {
            m_conn = oracleconnection;
        } else
        {
            DBError.check_error(68, "Connection is null");
        }
        m_dbaccess = ((oracle.jdbc.internal.OracleConnection)oracleconnection).createBlobDBAccess();
        m_dbChunkSize = -1;
        return;
    }

    // Decompiling method: asciiStreamValue  Signature: ()Ljava/io/InputStream;
    // Max stack: 3, #locals: 1, #params: 1
    // Code length: 20 bytes, Code offset: 3451
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 20 Range 0 19 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/io/InputStream; At 0 20 Range 0 19 Init 0 fixed
    public InputStream asciiStreamValue()
        throws SQLException
    {
        oracle.jdbc.internal.OracleConnection _tmp = (oracle.jdbc.internal.OracleConnection)m_conn;
        return getDBAccess().newConversionInputStream(this, 2);
    }

    // Decompiling method: binaryStreamValue  Signature: ()Ljava/io/InputStream;
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 5 bytes, Code offset: 3519
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 5 Range 0 4 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/io/InputStream; At 0 5 Range 0 4 Init 0 fixed
    public InputStream binaryStreamValue()
        throws SQLException
    {
        return getBinaryStream();
    }

    // Decompiling method: characterStreamValue  Signature: ()Ljava/io/Reader;
    // Max stack: 3, #locals: 1, #params: 1
    // Code length: 21 bytes, Code offset: 3572
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 21 Range 0 20 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/io/Reader; At 0 21 Range 0 20 Init 0 fixed
    public Reader characterStreamValue()
        throws SQLException
    {
        oracle.jdbc.internal.OracleConnection _tmp = (oracle.jdbc.internal.OracleConnection)m_conn;
        return getDBAccess().newConversionReader(this, 8);
    }

    // Decompiling method: close  Signature: ()V
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 11 bytes, Code offset: 3641
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 11 Range 0 10 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type V At 0 11 Range 0 10 Init 0 fixed
    public void close()
        throws SQLException
    {
        getDBAccess().close(this);
        return;
    }

    // Decompiling method: createTemporary  Signature: (Ljava/sql/Connection;ZI)Loracle/sql/BLOB;
    // Max stack: 4, #locals: 3, #params: 3
    // Code length: 32 bytes, Code offset: 3704
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name connection Type Ljava/sql/Connection; At 0 32 Range 0 31 Init 0
    // Parameter  1 added: Name flag Type Z At 0 32 Range 0 31 Init 0
    // Parameter  2 added: Name i Type I At 0 32 Range 0 31 Init 0
    // RetValue   3 added: Name <returnValue> Type Loracle/sql/BLOB; At 0 32 Range 0 31 Init 0 fixed
    public static BLOB createTemporary(Connection connection, boolean flag, int i)
        throws SQLException
    {
        if(connection == null || i != 1 && i != 2)
        {
            DBError.throwSqlException(68);
        }
        return getDBAccess(connection).createTemporaryBlob(connection, flag, i);
    }

    // Decompiling method: empty_lob  Signature: ()Loracle/sql/BLOB;
    // Max stack: 3, #locals: 2, #params: 0
    // Code length: 30 bytes, Code offset: 3800
    // Line Number Table found: 6 entries
    // RetValue   2 added: Name <returnValue> Type Loracle/sql/BLOB; At 0 30 Range 0 29 Init 0 fixed
    // LocalVar   0 added: Name abyte0 Type [B At 4 21 Range 4 24 Init 4
    // LocalVar   1 added: Name blob Type Loracle/sql/BLOB; At 22 7 Range 22 28 Init 22
    public static BLOB empty_lob()
        throws SQLException
    {
        byte abyte0[] = new byte[86];
        abyte0[1] = 84;
        abyte0[5] = 24;
        BLOB blob = new BLOB();
        blob.setShareBytes(abyte0);
        return blob;
    }

    // Decompiling method: freeTemporary  Signature: ()V
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 11 bytes, Code offset: 3898
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 11 Range 0 10 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type V At 0 11 Range 0 10 Init 0 fixed
    public void freeTemporary()
        throws SQLException
    {
        getDBAccess().freeTemporary(this);
        return;
    }

    // Decompiling method: freeTemporary  Signature: (Loracle/sql/BLOB;)V
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 10 bytes, Code offset: 3961
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name blob Type Loracle/sql/BLOB; At 0 10 Range 0 9 Init 0
    // RetValue   1 added: Name <returnValue> Type V At 0 10 Range 0 9 Init 0 fixed
    public static void freeTemporary(BLOB blob)
        throws SQLException
    {
        if(blob == null)
        {
            return;
        } else
        {
            blob.freeTemporary();
            return;
        }
    }

    // Decompiling method: getBinaryOutputStream  Signature: ()Ljava/io/OutputStream;
    // Max stack: 5, #locals: 1, #params: 1
    // Code length: 16 bytes, Code offset: 4027
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 16 Range 0 15 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/io/OutputStream; At 0 16 Range 0 15 Init 0 fixed
    public OutputStream getBinaryOutputStream()
        throws SQLException
    {
        return getDBAccess().newOutputStream(this, getBufferSize(), 0L);
    }

    // Decompiling method: getBinaryOutputStream  Signature: (J)Ljava/io/OutputStream;
    // Max stack: 5, #locals: 3, #params: 3
    // Code length: 16 bytes, Code offset: 4091
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 16 Range 0 15 Init 0 fixed
    // Parameter  1 added: Name l Type J At 0 16 Range 0 15 Init 0
    // RetValue   3 added: Name <returnValue> Type Ljava/io/OutputStream; At 0 16 Range 0 15 Init 0 fixed
    public OutputStream getBinaryOutputStream(long l)
        throws SQLException
    {
        return getDBAccess().newOutputStream(this, getBufferSize(), l);
    }

    // Decompiling method: getBinaryStream  Signature: ()Ljava/io/InputStream;
    // Max stack: 5, #locals: 1, #params: 1
    // Code length: 16 bytes, Code offset: 4155
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 16 Range 0 15 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/io/InputStream; At 0 16 Range 0 15 Init 0 fixed
    public InputStream getBinaryStream()
        throws SQLException
    {
        return getDBAccess().newInputStream(this, getBufferSize(), 0L);
    }

    // Decompiling method: getBinaryStream  Signature: (J)Ljava/io/InputStream;
    // Max stack: 5, #locals: 3, #params: 3
    // Code length: 16 bytes, Code offset: 4219
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 16 Range 0 15 Init 0 fixed
    // Parameter  1 added: Name l Type J At 0 16 Range 0 15 Init 0
    // RetValue   3 added: Name <returnValue> Type Ljava/io/InputStream; At 0 16 Range 0 15 Init 0 fixed
    public InputStream getBinaryStream(long l)
        throws SQLException
    {
        return getDBAccess().newInputStream(this, getBufferSize(), l);
    }

    // Decompiling method: getBufferSize  Signature: ()I
    // Max stack: 2, #locals: 2, #params: 1
    // Code length: 28 bytes, Code offset: 4283
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 28 Range 0 27 Init 0 fixed
    // RetValue   2 added: Name <returnValue> Type I At 0 28 Range 0 27 Init 0 fixed
    // LocalVar   1 added: Name i Type I At 4 22 Range 4 25 Init 4
    public int getBufferSize()
        throws SQLException
    {
        int i = getChunkSize();
        if(i >= 32512 || i <= 0)
        {
            return 32512;
        } else
        {
            return (32512 / i) * i;
        }
    }

    // Decompiling method: getBytes  Signature: (JI)[B
    // Max stack: 6, #locals: 8, #params: 4
    // Code length: 86 bytes, Code offset: 4371
    // Line Number Table found: 13 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 86 Range 0 85 Init 0 fixed
    // Parameter  1 added: Name l Type J At 0 86 Range 0 85 Init 0
    // Parameter  3 added: Name i Type I At 0 86 Range 0 85 Init 0
    // RetValue   8 added: Name <returnValue> Type [B At 0 86 Range 0 85 Init 0 fixed
    // LocalVar   4 added: Name l1 Type J At 26 2 Range 26 27 Init 26
    // LocalVar   6 added: Name abyte0 Type [B At 31 40 Range 31 70 Init 31
    // LocalVar   4 added: Name l2 Type J At 42 35 Range 42 76 Init 42
    // LocalVar   7 added: Name abyte1 Type [B At 67 16 Range 67 82 Init 67
    // LocalVar   4 name l2(J) merged out into l1(J)
    public byte[] getBytes(long l, int i)
        throws SQLException
    {
        if(i < 0 || l < 1L)
        {
            DBError.throwSqlException(68, "getBytes()");
        }
        if(i == 0)
        {
            return new byte[0];
        }
        long l1 = 0L;
        byte abyte0[] = new byte[i];
        l1 = getBytes(l, i, abyte0);
        if(l1 > 0L)
        {
            if(l1 == (long)i)
            {
                return abyte0;
            } else
            {
                byte abyte1[] = new byte[(int)l1];
                System.arraycopy(abyte0, 0, abyte1, 0, (int)l1);
                return abyte1;
            }
        } else
        {
            return null;
        }
    }

    // Decompiling method: getBytes  Signature: (JI[B)I
    // Max stack: 6, #locals: 5, #params: 5
    // Code length: 15 bytes, Code offset: 4553
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 15 Range 0 14 Init 0 fixed
    // Parameter  1 added: Name l Type J At 0 15 Range 0 14 Init 0
    // Parameter  3 added: Name i Type I At 0 15 Range 0 14 Init 0
    // Parameter  4 added: Name abyte0 Type [B At 0 15 Range 0 14 Init 0
    // RetValue   5 added: Name <returnValue> Type I At 0 15 Range 0 14 Init 0 fixed
    public int getBytes(long l, int i, byte abyte0[])
        throws SQLException
    {
        return getDBAccess().getBytes(this, l, i, abyte0);
    }

    // Decompiling method: getChunkSize  Signature: ()I
    // Max stack: 3, #locals: 1, #params: 1
    // Code length: 26 bytes, Code offset: 4616
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 26 Range 0 25 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type I At 0 26 Range 0 25 Init 0 fixed
    public int getChunkSize()
        throws SQLException
    {
        if(m_dbChunkSize <= 0)
        {
            m_dbChunkSize = getDBAccess().getChunkSize(this);
        }
        return m_dbChunkSize;
    }

    // Decompiling method: getConnection  Signature: ()Loracle/jdbc/driver/OracleConnection;
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 16 bytes, Code offset: 4698
    // Exception table: 1 entries
    //           start  0 end 8 handler 8 type ClassCastException
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 16 Range 0 15 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Loracle/jdbc/driver/OracleConnection; At 0 16 Range 0 15 Init 0 fixed
    public oracle.jdbc.driver.OracleConnection getConnection()
        throws SQLException
    {
        try
        {
            return (oracle.jdbc.driver.OracleConnection)getJavaSqlConnection();
        }
        catch(ClassCastException _ex)
        {
            DBError.throwSqlException(103);
        }
        return null;
    }

    // Decompiling method: getDBAccess  Signature: ()Loracle/sql/BlobDBAccess;
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 37 bytes, Code offset: 4792
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 37 Range 0 36 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Loracle/sql/BlobDBAccess; At 0 37 Range 0 36 Init 0 fixed
    public BlobDBAccess getDBAccess()
        throws SQLException
    {
        if(m_dbaccess == null)
        {
            if(isEmptyLob())
            {
                DBError.throwSqlException(98);
            }
            m_dbaccess = getConnection().createBlobDBAccess();
        }
        return m_dbaccess;
    }

    // Decompiling method: getDBAccess  Signature: (Ljava/sql/Connection;)Loracle/sql/BlobDBAccess;
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 10 bytes, Code offset: 4893
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name connection Type Ljava/sql/Connection; At 0 10 Range 0 9 Init 0
    // RetValue   1 added: Name <returnValue> Type Loracle/sql/BlobDBAccess; At 0 10 Range 0 9 Init 0 fixed
    public static BlobDBAccess getDBAccess(Connection connection)
        throws SQLException
    {
        return ((oracle.jdbc.internal.OracleConnection)connection).createBlobDBAccess();
    }

    // Decompiling method: getJavaSqlConnection  Signature: ()Ljava/sql/Connection;
    // Max stack: 3, #locals: 1, #params: 1
    // Code length: 29 bytes, Code offset: 4951
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 29 Range 0 28 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/sql/Connection; At 0 29 Range 0 28 Init 0 fixed
    public Connection getJavaSqlConnection()
        throws SQLException
    {
        if(m_conn == null)
        {
            m_conn = (OracleConnection)(new OracleDriver()).defaultConnection();
        }
        return m_conn;
    }

    // Decompiling method: getLocator  Signature: ()[B
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 5 bytes, Code offset: 5044
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; 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[] getLocator()
    {
        return getBytes();
    }

    // Decompiling method: isConvertibleTo  Signature: (Ljava/lang/Class;)Z
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 29 bytes, Code offset: 5087
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 29 Range 0 28 Init 0 fixed
    // Parameter  1 added: Name class1 Type Ljava/lang/Class; At 0 29 Range 0 28 Init 0
    // RetValue   3 added: Name <returnValue> Type Z At 0 29 Range 0 28 Init 0 fixed
    // LocalVar   2 added: Name s Type Ljava/lang/String; At 4 11 Range 4 14 Init 4
    public boolean isConvertibleTo(Class class1)
    {
        String s = class1.getName();
        return s.compareTo("java.io.InputStream") == 0 || s.compareTo("java.io.Reader") == 0;
    }

    // Decompiling method: isEmptyLob  Signature: ()Z
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 18 bytes, Code offset: 5166
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 18 Range 0 17 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Z At 0 18 Range 0 17 Init 0 fixed
    public boolean isEmptyLob()
        throws SQLException
    {
        return (shareBytes()[5] & 0x10) != 0;
    }

    // Decompiling method: isOpen  Signature: ()Z
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 11 bytes, Code offset: 5232
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 11 Range 0 10 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Z At 0 11 Range 0 10 Init 0 fixed
    public boolean isOpen()
        throws SQLException
    {
        return getDBAccess().isOpen(this);
    }

    // Decompiling method: isTemporary  Signature: ()Z
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 11 bytes, Code offset: 5291
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 11 Range 0 10 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Z At 0 11 Range 0 10 Init 0 fixed
    public boolean isTemporary()
        throws SQLException
    {
        return getDBAccess().isTemporary(this);
    }

    // Decompiling method: isTemporary  Signature: (Loracle/sql/BLOB;)Z
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 11 bytes, Code offset: 5350
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name blob Type Loracle/sql/BLOB; At 0 11 Range 0 10 Init 0
    // RetValue   1 added: Name <returnValue> Type Z At 0 11 Range 0 10 Init 0 fixed
    public static boolean isTemporary(BLOB blob)
        throws SQLException
    {
        if(blob == null)
        {
            return false;
        } else
        {
            return blob.isTemporary();
        }
    }

    // Decompiling method: length  Signature: ()J
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 11 bytes, Code offset: 5413
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 11 Range 0 10 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type J At 0 11 Range 0 10 Init 0 fixed
    public long length()
        throws SQLException
    {
        return getDBAccess().length(this);
    }

    // Decompiling method: makeJdbcArray  Signature: (I)Ljava/lang/Object;
    // Max stack: 1, #locals: 2, #params: 2
    // Code length: 5 bytes, Code offset: 5472
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 5 Range 0 4 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 5 Range 0 4 Init 0
    // RetValue   2 added: Name <returnValue> Type Ljava/lang/Object; At 0 5 Range 0 4 Init 0 fixed
    public Object makeJdbcArray(int i)
    {
        return new BLOB[i];
    }

    // Decompiling method: open  Signature: (I)V
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 12 bytes, Code offset: 5515
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 12 Range 0 11 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 12 Range 0 11 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 12 Range 0 11 Init 0 fixed
    public void open(int i)
        throws SQLException
    {
        getDBAccess().open(this, i);
        return;
    }

    // Decompiling method: position  Signature: (Ljava/sql/Blob;J)J
    // Max stack: 5, #locals: 4, #params: 4
    // Code length: 16 bytes, Code offset: 5579
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 16 Range 0 15 Init 0 fixed
    // Parameter  1 added: Name blob Type Ljava/sql/Blob; At 0 16 Range 0 15 Init 0
    // Parameter  2 added: Name l Type J At 0 16 Range 0 15 Init 0
    // RetValue   4 added: Name <returnValue> Type J At 0 16 Range 0 15 Init 0 fixed
    public long position(Blob blob, long l)
        throws SQLException
    {
        return getDBAccess().position(this, (BLOB)blob, l);
    }

    // Decompiling method: position  Signature: ([BJ)J
    // Max stack: 5, #locals: 4, #params: 4
    // Code length: 13 bytes, Code offset: 5643
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 13 Range 0 12 Init 0 fixed
    // Parameter  1 added: Name abyte0 Type [B At 0 13 Range 0 12 Init 0
    // Parameter  2 added: Name l Type J At 0 13 Range 0 12 Init 0
    // RetValue   4 added: Name <returnValue> Type J At 0 13 Range 0 12 Init 0 fixed
    public long position(byte abyte0[], long l)
        throws SQLException
    {
        return getDBAccess().position(this, abyte0, l);
    }

    // Decompiling method: putBytes  Signature: (J[B)I
    // Max stack: 5, #locals: 4, #params: 4
    // Code length: 13 bytes, Code offset: 5704
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 13 Range 0 12 Init 0 fixed
    // Parameter  1 added: Name l Type J At 0 13 Range 0 12 Init 0
    // Parameter  3 added: Name abyte0 Type [B At 0 13 Range 0 12 Init 0
    // RetValue   4 added: Name <returnValue> Type I At 0 13 Range 0 12 Init 0 fixed
    public int putBytes(long l, byte abyte0[])
        throws SQLException
    {
        return getDBAccess().putBytes(this, l, abyte0);
    }

    // Decompiling method: setLocator  Signature: ([B)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 6 bytes, Code offset: 5765
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; 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 setLocator(byte abyte0[])
    {
        setBytes(abyte0);
        return;
    }

    // Decompiling method: toJdbc  Signature: ()Ljava/lang/Object;
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 2 bytes, Code offset: 5809
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 2 Range 0 1 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/lang/Object; At 0 2 Range 0 1 Init 0 fixed
    public Object toJdbc()
        throws SQLException
    {
        return this;
    }

    // Decompiling method: trim  Signature: (J)V
    // Max stack: 4, #locals: 3, #params: 3
    // Code length: 23 bytes, Code offset: 5859
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/sql/BLOB; At 0 23 Range 0 22 Init 0 fixed
    // Parameter  1 added: Name l Type J At 0 23 Range 0 22 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 23 Range 0 22 Init 0 fixed
    public void trim(long l)
        throws SQLException
    {
        if(l < 0L)
        {
            DBError.throwSqlException(68);
        }
        getDBAccess().trim(this, l);
        return;
    }
}
