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

package oracle.sql;

import java.io.*;
import java.sql.Connection;
import java.sql.SQLException;
import oracle.jdbc.OracleTypes;
import oracle.jdbc.dbaccess.DBAccess;
import oracle.jdbc.dbaccess.DBError;
import oracle.jdbc.driver.*;

// Referenced classes of package oracle.sql:
//            BFILE, BLOB, BfileDBAccess, BlobDBAccess, 
//            CLOB, ClobDBAccess

// flag ACC_SUPER is set
public class LobDBAccessImpl
    implements BlobDBAccess, ClobDBAccess, BfileDBAccess
{
    // Constants:          292
    // Interfaces:         3
    // Fields:             2
    // Methods:            51
    // Class Attributes:   1


    OracleConnection m_conn;
    DBAccess m_dbaccess;

    // Decompiling method: <init>  Signature: (Loracle/jdbc/driver/OracleConnection;)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 29 bytes, Code offset: 4430
    // Line Number Table found: 8 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 29 Range 0 28 Init 0 fixed
    // Parameter  1 added: Name oracleconnection Type Loracle/jdbc/driver/OracleConnection; At 0 29 Range 0 28 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 29 Range 0 28 Init 0 fixed
    public LobDBAccessImpl(OracleConnection oracleconnection)
        throws SQLException
    {
        super();
        if(oracleconnection == null)
        {
            DBError.throwSqlException(68, "connection is null");
        }
        m_conn = oracleconnection;
        m_dbaccess = oracleconnection.db_access;
        return;
    }

    // Decompiling method: close  Signature: (Loracle/sql/BFILE;)V
    // Max stack: 4, #locals: 2, #params: 2
    // Code length: 15 bytes, Code offset: 4535
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 15 Range 0 14 Init 0 fixed
    // Parameter  1 added: Name bfile Type Loracle/sql/BFILE; At 0 15 Range 0 14 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 15 Range 0 14 Init 0 fixed
    public synchronized void close(BFILE bfile)
        throws SQLException
    {
        m_dbaccess.closeLob(bfile.getConnection(), bfile, -13);
        return;
    }

    // Decompiling method: close  Signature: (Loracle/sql/BLOB;)V
    // Max stack: 4, #locals: 2, #params: 2
    // Code length: 16 bytes, Code offset: 4602
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 16 Range 0 15 Init 0 fixed
    // Parameter  1 added: Name blob Type Loracle/sql/BLOB; At 0 16 Range 0 15 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 16 Range 0 15 Init 0 fixed
    public synchronized void close(BLOB blob)
        throws SQLException
    {
        m_dbaccess.closeLob(blob.getConnection(), blob, 2004);
        return;
    }

    // Decompiling method: close  Signature: (Loracle/sql/CLOB;)V
    // Max stack: 4, #locals: 2, #params: 2
    // Code length: 16 bytes, Code offset: 4670
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 16 Range 0 15 Init 0 fixed
    // Parameter  1 added: Name clob Type Loracle/sql/CLOB; At 0 16 Range 0 15 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 16 Range 0 15 Init 0 fixed
    public synchronized void close(CLOB clob)
        throws SQLException
    {
        m_dbaccess.closeLob(clob.getConnection(), clob, 2005);
        return;
    }

    // Decompiling method: closeFile  Signature: (Loracle/sql/BFILE;)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 9 bytes, Code offset: 4738
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 9 Range 0 8 Init 0 fixed
    // Parameter  1 added: Name bfile Type Loracle/sql/BFILE; At 0 9 Range 0 8 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 9 Range 0 8 Init 0 fixed
    public synchronized void closeFile(BFILE bfile)
        throws SQLException
    {
        m_dbaccess.fileClose(bfile);
        return;
    }

    // Decompiling method: createTemporaryBlob  Signature: (Ljava/sql/Connection;ZI)Loracle/sql/BLOB;
    // Max stack: 5, #locals: 4, #params: 4
    // Code length: 17 bytes, Code offset: 4799
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 17 Range 0 16 Init 0 fixed
    // Parameter  1 added: Name connection Type Ljava/sql/Connection; At 0 17 Range 0 16 Init 0
    // Parameter  2 added: Name flag Type Z At 0 17 Range 0 16 Init 0
    // Parameter  3 added: Name i Type I At 0 17 Range 0 16 Init 0
    // RetValue   4 added: Name <returnValue> Type Loracle/sql/BLOB; At 0 17 Range 0 16 Init 0 fixed
    public synchronized BLOB createTemporaryBlob(Connection connection, boolean flag, int i)
        throws SQLException
    {
        return (BLOB)m_dbaccess.createTemporaryLob(connection, flag, i, 2004);
    }

    // Decompiling method: createTemporaryClob  Signature: (Ljava/sql/Connection;ZI)Loracle/sql/CLOB;
    // Max stack: 5, #locals: 4, #params: 4
    // Code length: 17 bytes, Code offset: 4872
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 17 Range 0 16 Init 0 fixed
    // Parameter  1 added: Name connection Type Ljava/sql/Connection; At 0 17 Range 0 16 Init 0
    // Parameter  2 added: Name flag Type Z At 0 17 Range 0 16 Init 0
    // Parameter  3 added: Name i Type I At 0 17 Range 0 16 Init 0
    // RetValue   4 added: Name <returnValue> Type Loracle/sql/CLOB; At 0 17 Range 0 16 Init 0 fixed
    public synchronized CLOB createTemporaryClob(Connection connection, boolean flag, int i)
        throws SQLException
    {
        return (CLOB)m_dbaccess.createTemporaryLob(connection, flag, i, 2005);
    }

    // Decompiling method: fileExists  Signature: (Loracle/sql/BFILE;)Z
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 9 bytes, Code offset: 4945
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 9 Range 0 8 Init 0 fixed
    // Parameter  1 added: Name bfile Type Loracle/sql/BFILE; At 0 9 Range 0 8 Init 0
    // RetValue   2 added: Name <returnValue> Type Z At 0 9 Range 0 8 Init 0 fixed
    public synchronized boolean fileExists(BFILE bfile)
        throws SQLException
    {
        return m_dbaccess.fileExists(bfile);
    }

    // Decompiling method: freeTemporary  Signature: (Loracle/sql/BLOB;)V
    // Max stack: 4, #locals: 2, #params: 2
    // Code length: 16 bytes, Code offset: 5002
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 16 Range 0 15 Init 0 fixed
    // Parameter  1 added: Name blob Type Loracle/sql/BLOB; At 0 16 Range 0 15 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 16 Range 0 15 Init 0 fixed
    public synchronized void freeTemporary(BLOB blob)
        throws SQLException
    {
        m_dbaccess.freeTemporaryLob(blob.getConnection(), blob, 2004);
        return;
    }

    // Decompiling method: freeTemporary  Signature: (Loracle/sql/CLOB;)V
    // Max stack: 4, #locals: 2, #params: 2
    // Code length: 16 bytes, Code offset: 5078
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 16 Range 0 15 Init 0 fixed
    // Parameter  1 added: Name clob Type Loracle/sql/CLOB; At 0 16 Range 0 15 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 16 Range 0 15 Init 0 fixed
    public synchronized void freeTemporary(CLOB clob)
        throws SQLException
    {
        m_dbaccess.freeTemporaryLob(clob.getConnection(), clob, 2005);
        return;
    }

    // Decompiling method: getBytes  Signature: (Loracle/sql/BFILE;JI[B)I
    // Max stack: 7, #locals: 6, #params: 6
    // Code length: 46 bytes, Code offset: 5154
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 46 Range 0 45 Init 0 fixed
    // Parameter  1 added: Name bfile Type Loracle/sql/BFILE; At 0 46 Range 0 45 Init 0
    // Parameter  2 added: Name l Type J At 0 46 Range 0 45 Init 0
    // Parameter  4 added: Name i Type I At 0 46 Range 0 45 Init 0
    // Parameter  5 added: Name abyte0 Type [B At 0 46 Range 0 45 Init 0
    // RetValue   6 added: Name <returnValue> Type I At 0 46 Range 0 45 Init 0 fixed
    public synchronized int getBytes(BFILE bfile, long l, int i, byte abyte0[])
        throws SQLException
    {
        if(l < 1L || i < 0 || abyte0 == null)
        {
            DBError.check_error(68, "getBytes()");
        }
        if(i == 0)
        {
            return 0;
        } else
        {
            return (int)m_dbaccess.lobRead(bfile, l, i, abyte0);
        }
    }

    // Decompiling method: getBytes  Signature: (Loracle/sql/BLOB;JI[B)I
    // Max stack: 7, #locals: 6, #params: 6
    // Code length: 46 bytes, Code offset: 5260
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 46 Range 0 45 Init 0 fixed
    // Parameter  1 added: Name blob Type Loracle/sql/BLOB; At 0 46 Range 0 45 Init 0
    // Parameter  2 added: Name l Type J At 0 46 Range 0 45 Init 0
    // Parameter  4 added: Name i Type I At 0 46 Range 0 45 Init 0
    // Parameter  5 added: Name abyte0 Type [B At 0 46 Range 0 45 Init 0
    // RetValue   6 added: Name <returnValue> Type I At 0 46 Range 0 45 Init 0 fixed
    public synchronized int getBytes(BLOB blob, long l, int i, byte abyte0[])
        throws SQLException
    {
        if(i < 0 || l < 1L || abyte0 == null)
        {
            DBError.throwSqlException(68, "getBytes()");
        }
        if(i == 0)
        {
            return 0;
        } else
        {
            return (int)m_dbaccess.lobRead(blob, l, i, abyte0);
        }
    }

    // Decompiling method: getChars  Signature: (Loracle/sql/CLOB;JI[C)I
    // Max stack: 7, #locals: 6, #params: 6
    // Code length: 46 bytes, Code offset: 5370
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 46 Range 0 45 Init 0 fixed
    // Parameter  1 added: Name clob Type Loracle/sql/CLOB; At 0 46 Range 0 45 Init 0
    // Parameter  2 added: Name l Type J At 0 46 Range 0 45 Init 0
    // Parameter  4 added: Name i Type I At 0 46 Range 0 45 Init 0
    // Parameter  5 added: Name ac Type [C At 0 46 Range 0 45 Init 0
    // RetValue   6 added: Name <returnValue> Type I At 0 46 Range 0 45 Init 0 fixed
    public synchronized int getChars(CLOB clob, long l, int i, char ac[])
        throws SQLException
    {
        if(i < 0 || l < 1L || ac == null)
        {
            DBError.check_error(68, "getChars()");
        }
        if(i == 0)
        {
            return 0;
        } else
        {
            return (int)m_dbaccess.lobRead(clob, l, i, ac);
        }
    }

    // Decompiling method: getChunkSize  Signature: (Loracle/sql/BLOB;)I
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 10 bytes, Code offset: 5476
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 10 Range 0 9 Init 0 fixed
    // Parameter  1 added: Name blob Type Loracle/sql/BLOB; At 0 10 Range 0 9 Init 0
    // RetValue   2 added: Name <returnValue> Type I At 0 10 Range 0 9 Init 0 fixed
    public synchronized int getChunkSize(BLOB blob)
        throws SQLException
    {
        return (int)m_dbaccess.getLobChunkSize(blob);
    }

    // Decompiling method: getChunkSize  Signature: (Loracle/sql/CLOB;)I
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 10 bytes, Code offset: 5534
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 10 Range 0 9 Init 0 fixed
    // Parameter  1 added: Name clob Type Loracle/sql/CLOB; At 0 10 Range 0 9 Init 0
    // RetValue   2 added: Name <returnValue> Type I At 0 10 Range 0 9 Init 0 fixed
    public synchronized int getChunkSize(CLOB clob)
        throws SQLException
    {
        return (int)m_dbaccess.getLobChunkSize(clob);
    }

    // Decompiling method: getDirAlias  Signature: (Loracle/sql/BFILE;)Ljava/lang/String;
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 9 bytes, Code offset: 5592
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 9 Range 0 8 Init 0 fixed
    // Parameter  1 added: Name bfile Type Loracle/sql/BFILE; At 0 9 Range 0 8 Init 0
    // RetValue   2 added: Name <returnValue> Type Ljava/lang/String; At 0 9 Range 0 8 Init 0 fixed
    public synchronized String getDirAlias(BFILE bfile)
        throws SQLException
    {
        return m_dbaccess.fileGetDirAlias(bfile);
    }

    // Decompiling method: getName  Signature: (Loracle/sql/BFILE;)Ljava/lang/String;
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 9 bytes, Code offset: 5649
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 9 Range 0 8 Init 0 fixed
    // Parameter  1 added: Name bfile Type Loracle/sql/BFILE; At 0 9 Range 0 8 Init 0
    // RetValue   2 added: Name <returnValue> Type Ljava/lang/String; At 0 9 Range 0 8 Init 0 fixed
    public synchronized String getName(BFILE bfile)
        throws SQLException
    {
        return m_dbaccess.fileGetName(bfile);
    }

    // Decompiling method: isFileOpen  Signature: (Loracle/sql/BFILE;)Z
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 9 bytes, Code offset: 5706
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 9 Range 0 8 Init 0 fixed
    // Parameter  1 added: Name bfile Type Loracle/sql/BFILE; At 0 9 Range 0 8 Init 0
    // RetValue   2 added: Name <returnValue> Type Z At 0 9 Range 0 8 Init 0 fixed
    public synchronized boolean isFileOpen(BFILE bfile)
        throws SQLException
    {
        return m_dbaccess.fileIsOpen(bfile);
    }

    // Decompiling method: isOpen  Signature: (Loracle/sql/BFILE;)Z
    // Max stack: 4, #locals: 2, #params: 2
    // Code length: 15 bytes, Code offset: 5763
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 15 Range 0 14 Init 0 fixed
    // Parameter  1 added: Name bfile Type Loracle/sql/BFILE; At 0 15 Range 0 14 Init 0
    // RetValue   2 added: Name <returnValue> Type Z At 0 15 Range 0 14 Init 0 fixed
    public synchronized boolean isOpen(BFILE bfile)
        throws SQLException
    {
        return m_dbaccess.isLobOpen(bfile.getConnection(), bfile, -13);
    }

    // Decompiling method: isOpen  Signature: (Loracle/sql/BLOB;)Z
    // Max stack: 4, #locals: 2, #params: 2
    // Code length: 16 bytes, Code offset: 5826
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 16 Range 0 15 Init 0 fixed
    // Parameter  1 added: Name blob Type Loracle/sql/BLOB; At 0 16 Range 0 15 Init 0
    // RetValue   2 added: Name <returnValue> Type Z At 0 16 Range 0 15 Init 0 fixed
    public synchronized boolean isOpen(BLOB blob)
        throws SQLException
    {
        return m_dbaccess.isLobOpen(blob.getConnection(), blob, 2004);
    }

    // Decompiling method: isOpen  Signature: (Loracle/sql/CLOB;)Z
    // Max stack: 4, #locals: 2, #params: 2
    // Code length: 16 bytes, Code offset: 5890
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 16 Range 0 15 Init 0 fixed
    // Parameter  1 added: Name clob Type Loracle/sql/CLOB; At 0 16 Range 0 15 Init 0
    // RetValue   2 added: Name <returnValue> Type Z At 0 16 Range 0 15 Init 0 fixed
    public synchronized boolean isOpen(CLOB clob)
        throws SQLException
    {
        return m_dbaccess.isLobOpen(clob.getConnection(), clob, 2005);
    }

    // Decompiling method: isTemporary  Signature: (Loracle/sql/BLOB;)Z
    // Max stack: 4, #locals: 2, #params: 2
    // Code length: 16 bytes, Code offset: 5954
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 16 Range 0 15 Init 0 fixed
    // Parameter  1 added: Name blob Type Loracle/sql/BLOB; At 0 16 Range 0 15 Init 0
    // RetValue   2 added: Name <returnValue> Type Z At 0 16 Range 0 15 Init 0 fixed
    public synchronized boolean isTemporary(BLOB blob)
        throws SQLException
    {
        return m_dbaccess.isTemporaryLob(blob.getConnection(), blob, 2004);
    }

    // Decompiling method: isTemporary  Signature: (Loracle/sql/CLOB;)Z
    // Max stack: 4, #locals: 2, #params: 2
    // Code length: 16 bytes, Code offset: 6026
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 16 Range 0 15 Init 0 fixed
    // Parameter  1 added: Name clob Type Loracle/sql/CLOB; At 0 16 Range 0 15 Init 0
    // RetValue   2 added: Name <returnValue> Type Z At 0 16 Range 0 15 Init 0 fixed
    public synchronized boolean isTemporary(CLOB clob)
        throws SQLException
    {
        return m_dbaccess.isTemporaryLob(clob.getConnection(), clob, 2005);
    }

    // Decompiling method: length  Signature: (Loracle/sql/BFILE;)J
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 9 bytes, Code offset: 6098
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 9 Range 0 8 Init 0 fixed
    // Parameter  1 added: Name bfile Type Loracle/sql/BFILE; At 0 9 Range 0 8 Init 0
    // RetValue   2 added: Name <returnValue> Type J At 0 9 Range 0 8 Init 0 fixed
    public synchronized long length(BFILE bfile)
        throws SQLException
    {
        return m_dbaccess.lobLength(bfile);
    }

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

    // Decompiling method: length  Signature: (Loracle/sql/CLOB;)J
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 9 bytes, Code offset: 6212
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 9 Range 0 8 Init 0 fixed
    // Parameter  1 added: Name clob Type Loracle/sql/CLOB; At 0 9 Range 0 8 Init 0
    // RetValue   2 added: Name <returnValue> Type J At 0 9 Range 0 8 Init 0 fixed
    public synchronized long length(CLOB clob)
        throws SQLException
    {
        return m_dbaccess.lobLength(clob);
    }

    // Decompiling method: newConversionInputStream  Signature: (Loracle/sql/BFILE;I)Ljava/io/InputStream;
    // Max stack: 5, #locals: 3, #params: 3
    // Code length: 20 bytes, Code offset: 6269
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 20 Range 0 19 Init 0 fixed
    // Parameter  1 added: Name bfile Type Loracle/sql/BFILE; At 0 20 Range 0 19 Init 0
    // Parameter  2 added: Name i Type I At 0 20 Range 0 19 Init 0
    // RetValue   3 added: Name <returnValue> Type Ljava/io/InputStream; At 0 20 Range 0 19 Init 0 fixed
    public InputStream newConversionInputStream(BFILE bfile, int i)
        throws SQLException
    {
        return new OracleConversionInputStream(bfile.getConnection().conversion, bfile.getBinaryStream(), i);
    }

    // Decompiling method: newConversionInputStream  Signature: (Loracle/sql/BLOB;I)Ljava/io/InputStream;
    // Max stack: 5, #locals: 3, #params: 3
    // Code length: 20 bytes, Code offset: 6353
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 20 Range 0 19 Init 0 fixed
    // Parameter  1 added: Name blob Type Loracle/sql/BLOB; At 0 20 Range 0 19 Init 0
    // Parameter  2 added: Name i Type I At 0 20 Range 0 19 Init 0
    // RetValue   3 added: Name <returnValue> Type Ljava/io/InputStream; At 0 20 Range 0 19 Init 0 fixed
    public InputStream newConversionInputStream(BLOB blob, int i)
        throws SQLException
    {
        return new OracleConversionInputStream(blob.getConnection().conversion, blob.getBinaryStream(), i);
    }

    // Decompiling method: newConversionReader  Signature: (Loracle/sql/BFILE;I)Ljava/io/Reader;
    // Max stack: 5, #locals: 3, #params: 3
    // Code length: 20 bytes, Code offset: 6437
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 20 Range 0 19 Init 0 fixed
    // Parameter  1 added: Name bfile Type Loracle/sql/BFILE; At 0 20 Range 0 19 Init 0
    // Parameter  2 added: Name i Type I At 0 20 Range 0 19 Init 0
    // RetValue   3 added: Name <returnValue> Type Ljava/io/Reader; At 0 20 Range 0 19 Init 0 fixed
    public Reader newConversionReader(BFILE bfile, int i)
        throws SQLException
    {
        return new OracleConversionReader(bfile.getConnection().conversion, bfile.getBinaryStream(), i);
    }

    // Decompiling method: newConversionReader  Signature: (Loracle/sql/BLOB;I)Ljava/io/Reader;
    // Max stack: 5, #locals: 3, #params: 3
    // Code length: 20 bytes, Code offset: 6521
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 20 Range 0 19 Init 0 fixed
    // Parameter  1 added: Name blob Type Loracle/sql/BLOB; At 0 20 Range 0 19 Init 0
    // Parameter  2 added: Name i Type I At 0 20 Range 0 19 Init 0
    // RetValue   3 added: Name <returnValue> Type Ljava/io/Reader; At 0 20 Range 0 19 Init 0 fixed
    public Reader newConversionReader(BLOB blob, int i)
        throws SQLException
    {
        return new OracleConversionReader(blob.getConnection().conversion, blob.getBinaryStream(), i);
    }

    // Decompiling method: newInputStream  Signature: (Loracle/sql/BFILE;IJ)Ljava/io/InputStream;
    // Max stack: 6, #locals: 5, #params: 5
    // Code length: 27 bytes, Code offset: 6605
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 27 Range 0 26 Init 0 fixed
    // Parameter  1 added: Name bfile Type Loracle/sql/BFILE; At 0 27 Range 0 26 Init 0
    // Parameter  2 added: Name i Type I At 0 27 Range 0 26 Init 0
    // Parameter  3 added: Name l Type J At 0 27 Range 0 26 Init 0
    // RetValue   5 added: Name <returnValue> Type Ljava/io/InputStream; At 0 27 Range 0 26 Init 0 fixed
    public InputStream newInputStream(BFILE bfile, int i, long l)
        throws SQLException
    {
        if(l == 0L)
        {
            return new OracleBlobInputStream(bfile, i);
        } else
        {
            return new OracleBlobInputStream(bfile, i, l);
        }
    }

    // Decompiling method: newInputStream  Signature: (Loracle/sql/BLOB;IJ)Ljava/io/InputStream;
    // Max stack: 6, #locals: 5, #params: 5
    // Code length: 27 bytes, Code offset: 6688
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 27 Range 0 26 Init 0 fixed
    // Parameter  1 added: Name blob Type Loracle/sql/BLOB; At 0 27 Range 0 26 Init 0
    // Parameter  2 added: Name i Type I At 0 27 Range 0 26 Init 0
    // Parameter  3 added: Name l Type J At 0 27 Range 0 26 Init 0
    // RetValue   5 added: Name <returnValue> Type Ljava/io/InputStream; At 0 27 Range 0 26 Init 0 fixed
    public InputStream newInputStream(BLOB blob, int i, long l)
        throws SQLException
    {
        if(l == 0L)
        {
            return new OracleBlobInputStream(blob, i);
        } else
        {
            return new OracleBlobInputStream(blob, i, l);
        }
    }

    // Decompiling method: newInputStream  Signature: (Loracle/sql/CLOB;IJ)Ljava/io/InputStream;
    // Max stack: 6, #locals: 5, #params: 5
    // Code length: 27 bytes, Code offset: 6771
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 27 Range 0 26 Init 0 fixed
    // Parameter  1 added: Name clob Type Loracle/sql/CLOB; At 0 27 Range 0 26 Init 0
    // Parameter  2 added: Name i Type I At 0 27 Range 0 26 Init 0
    // Parameter  3 added: Name l Type J At 0 27 Range 0 26 Init 0
    // RetValue   5 added: Name <returnValue> Type Ljava/io/InputStream; At 0 27 Range 0 26 Init 0 fixed
    public InputStream newInputStream(CLOB clob, int i, long l)
        throws SQLException
    {
        if(l == 0L)
        {
            return new OracleClobInputStream(clob, i);
        } else
        {
            return new OracleClobInputStream(clob, i, l);
        }
    }

    // Decompiling method: newOutputStream  Signature: (Loracle/sql/BLOB;IJ)Ljava/io/OutputStream;
    // Max stack: 6, #locals: 5, #params: 5
    // Code length: 27 bytes, Code offset: 6854
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 27 Range 0 26 Init 0 fixed
    // Parameter  1 added: Name blob Type Loracle/sql/BLOB; At 0 27 Range 0 26 Init 0
    // Parameter  2 added: Name i Type I At 0 27 Range 0 26 Init 0
    // Parameter  3 added: Name l Type J At 0 27 Range 0 26 Init 0
    // RetValue   5 added: Name <returnValue> Type Ljava/io/OutputStream; At 0 27 Range 0 26 Init 0 fixed
    public OutputStream newOutputStream(BLOB blob, int i, long l)
        throws SQLException
    {
        if(l == 0L)
        {
            return new OracleBlobOutputStream(blob, i);
        } else
        {
            return new OracleBlobOutputStream(blob, i, l);
        }
    }

    // Decompiling method: newOutputStream  Signature: (Loracle/sql/CLOB;IJ)Ljava/io/OutputStream;
    // Max stack: 6, #locals: 5, #params: 5
    // Code length: 27 bytes, Code offset: 6937
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 27 Range 0 26 Init 0 fixed
    // Parameter  1 added: Name clob Type Loracle/sql/CLOB; At 0 27 Range 0 26 Init 0
    // Parameter  2 added: Name i Type I At 0 27 Range 0 26 Init 0
    // Parameter  3 added: Name l Type J At 0 27 Range 0 26 Init 0
    // RetValue   5 added: Name <returnValue> Type Ljava/io/OutputStream; At 0 27 Range 0 26 Init 0 fixed
    public OutputStream newOutputStream(CLOB clob, int i, long l)
        throws SQLException
    {
        if(l == 0L)
        {
            return new OracleClobOutputStream(clob, i);
        } else
        {
            return new OracleClobOutputStream(clob, i, l);
        }
    }

    // Decompiling method: newReader  Signature: (Loracle/sql/CLOB;IJ)Ljava/io/Reader;
    // Max stack: 6, #locals: 5, #params: 5
    // Code length: 27 bytes, Code offset: 7020
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 27 Range 0 26 Init 0 fixed
    // Parameter  1 added: Name clob Type Loracle/sql/CLOB; At 0 27 Range 0 26 Init 0
    // Parameter  2 added: Name i Type I At 0 27 Range 0 26 Init 0
    // Parameter  3 added: Name l Type J At 0 27 Range 0 26 Init 0
    // RetValue   5 added: Name <returnValue> Type Ljava/io/Reader; At 0 27 Range 0 26 Init 0 fixed
    public Reader newReader(CLOB clob, int i, long l)
        throws SQLException
    {
        if(l == 0L)
        {
            return new OracleClobReader(clob, i);
        } else
        {
            return new OracleClobReader(clob, i, l);
        }
    }

    // Decompiling method: newWriter  Signature: (Loracle/sql/CLOB;IJ)Ljava/io/Writer;
    // Max stack: 6, #locals: 5, #params: 5
    // Code length: 27 bytes, Code offset: 7103
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 27 Range 0 26 Init 0 fixed
    // Parameter  1 added: Name clob Type Loracle/sql/CLOB; At 0 27 Range 0 26 Init 0
    // Parameter  2 added: Name i Type I At 0 27 Range 0 26 Init 0
    // Parameter  3 added: Name l Type J At 0 27 Range 0 26 Init 0
    // RetValue   5 added: Name <returnValue> Type Ljava/io/Writer; At 0 27 Range 0 26 Init 0 fixed
    public Writer newWriter(CLOB clob, int i, long l)
        throws SQLException
    {
        if(l == 0L)
        {
            return new OracleClobWriter(clob, i);
        } else
        {
            return new OracleClobWriter(clob, i, l);
        }
    }

    // Decompiling method: open  Signature: (Loracle/sql/BFILE;I)V
    // Max stack: 5, #locals: 3, #params: 3
    // Code length: 16 bytes, Code offset: 7186
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 16 Range 0 15 Init 0 fixed
    // Parameter  1 added: Name bfile Type Loracle/sql/BFILE; At 0 16 Range 0 15 Init 0
    // Parameter  2 added: Name i Type I At 0 16 Range 0 15 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 16 Range 0 15 Init 0 fixed
    public synchronized void open(BFILE bfile, int i)
        throws SQLException
    {
        m_dbaccess.openLob(bfile.getConnection(), bfile, i, -13);
        return;
    }

    // Decompiling method: open  Signature: (Loracle/sql/BLOB;I)V
    // Max stack: 5, #locals: 3, #params: 3
    // Code length: 17 bytes, Code offset: 7262
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 17 Range 0 16 Init 0 fixed
    // Parameter  1 added: Name blob Type Loracle/sql/BLOB; At 0 17 Range 0 16 Init 0
    // Parameter  2 added: Name i Type I At 0 17 Range 0 16 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 17 Range 0 16 Init 0 fixed
    public synchronized void open(BLOB blob, int i)
        throws SQLException
    {
        m_dbaccess.openLob(blob.getConnection(), blob, i, 2004);
        return;
    }

    // Decompiling method: open  Signature: (Loracle/sql/CLOB;I)V
    // Max stack: 5, #locals: 3, #params: 3
    // Code length: 17 bytes, Code offset: 7339
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 17 Range 0 16 Init 0 fixed
    // Parameter  1 added: Name clob Type Loracle/sql/CLOB; At 0 17 Range 0 16 Init 0
    // Parameter  2 added: Name i Type I At 0 17 Range 0 16 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 17 Range 0 16 Init 0 fixed
    public synchronized void open(CLOB clob, int i)
        throws SQLException
    {
        m_dbaccess.openLob(clob.getConnection(), clob, i, 2005);
        return;
    }

    // Decompiling method: openFile  Signature: (Loracle/sql/BFILE;)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 9 bytes, Code offset: 7416
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 9 Range 0 8 Init 0 fixed
    // Parameter  1 added: Name bfile Type Loracle/sql/BFILE; At 0 9 Range 0 8 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 9 Range 0 8 Init 0 fixed
    public synchronized void openFile(BFILE bfile)
        throws SQLException
    {
        m_dbaccess.fileOpen(bfile);
        return;
    }

    // Decompiling method: position  Signature: (Loracle/sql/BFILE;Loracle/sql/BFILE;J)J
    // Max stack: 5, #locals: 7, #params: 5
    // Code length: 49 bytes, Code offset: 7477
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 49 Range 0 48 Init 0 fixed
    // Parameter  1 added: Name bfile Type Loracle/sql/BFILE; At 0 49 Range 0 48 Init 0
    // Parameter  2 added: Name bfile1 Type Loracle/sql/BFILE; At 0 49 Range 0 48 Init 0
    // Parameter  3 added: Name l Type J At 0 49 Range 0 48 Init 0
    // RetValue   7 added: Name <returnValue> Type J At 0 49 Range 0 48 Init 0 fixed
    // LocalVar   5 added: Name l1 Type J At 31 17 Range 31 47 Init 31
    public synchronized long position(BFILE bfile, BFILE bfile1, long l)
        throws SQLException
    {
        if(l < 1L)
        {
            DBError.check_error(68, "position()");
        }
        if(bfile1 == null)
        {
            return -1L;
        } else
        {
            long l1 = m_dbaccess.isSubLob(bfile, bfile1, l);
            return l1 != 0L ? l1 : -1L;
        }
    }

    // Decompiling method: position  Signature: (Loracle/sql/BFILE;[BJ)J
    // Max stack: 5, #locals: 7, #params: 5
    // Code length: 54 bytes, Code offset: 7590
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 54 Range 0 53 Init 0 fixed
    // Parameter  1 added: Name bfile Type Loracle/sql/BFILE; At 0 54 Range 0 53 Init 0
    // Parameter  2 added: Name abyte0 Type [B At 0 54 Range 0 53 Init 0
    // Parameter  3 added: Name l Type J At 0 54 Range 0 53 Init 0
    // RetValue   7 added: Name <returnValue> Type J At 0 54 Range 0 53 Init 0 fixed
    // LocalVar   5 added: Name l1 Type J At 36 17 Range 36 52 Init 36
    public synchronized long position(BFILE bfile, byte abyte0[], long l)
        throws SQLException
    {
        if(l < 1L)
        {
            DBError.check_error(68, "position()");
        }
        if(abyte0 == null || abyte0.length == 0)
        {
            return -1L;
        } else
        {
            long l1 = m_dbaccess.hasPattern(bfile, abyte0, l);
            return l1 != 0L ? l1 : -1L;
        }
    }

    // Decompiling method: position  Signature: (Loracle/sql/BLOB;Loracle/sql/BLOB;J)J
    // Max stack: 5, #locals: 7, #params: 5
    // Code length: 49 bytes, Code offset: 7708
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 49 Range 0 48 Init 0 fixed
    // Parameter  1 added: Name blob Type Loracle/sql/BLOB; At 0 49 Range 0 48 Init 0
    // Parameter  2 added: Name blob1 Type Loracle/sql/BLOB; At 0 49 Range 0 48 Init 0
    // Parameter  3 added: Name l Type J At 0 49 Range 0 48 Init 0
    // RetValue   7 added: Name <returnValue> Type J At 0 49 Range 0 48 Init 0 fixed
    // LocalVar   5 added: Name l1 Type J At 31 17 Range 31 47 Init 31
    public synchronized long position(BLOB blob, BLOB blob1, long l)
        throws SQLException
    {
        if(l < 1L)
        {
            DBError.throwSqlException(68, "position()");
        }
        if(blob1 == null)
        {
            return -1L;
        } else
        {
            long l1 = m_dbaccess.isSubLob(blob, blob1, l);
            return l1 != 0L ? l1 : -1L;
        }
    }

    // Decompiling method: position  Signature: (Loracle/sql/BLOB;[BJ)J
    // Max stack: 5, #locals: 7, #params: 5
    // Code length: 54 bytes, Code offset: 7821
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 54 Range 0 53 Init 0 fixed
    // Parameter  1 added: Name blob Type Loracle/sql/BLOB; At 0 54 Range 0 53 Init 0
    // Parameter  2 added: Name abyte0 Type [B At 0 54 Range 0 53 Init 0
    // Parameter  3 added: Name l Type J At 0 54 Range 0 53 Init 0
    // RetValue   7 added: Name <returnValue> Type J At 0 54 Range 0 53 Init 0 fixed
    // LocalVar   5 added: Name l1 Type J At 36 17 Range 36 52 Init 36
    public synchronized long position(BLOB blob, byte abyte0[], long l)
        throws SQLException
    {
        if(l < 1L)
        {
            DBError.throwSqlException(68, "position()");
        }
        if(abyte0 == null || abyte0.length == 0)
        {
            return -1L;
        } else
        {
            long l1 = m_dbaccess.hasPattern(blob, abyte0, l);
            return l1 != 0L ? l1 : -1L;
        }
    }

    // Decompiling method: position  Signature: (Loracle/sql/CLOB;Ljava/lang/String;J)J
    // Max stack: 5, #locals: 7, #params: 5
    // Code length: 59 bytes, Code offset: 7939
    // Line Number Table found: 8 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 59 Range 0 58 Init 0 fixed
    // Parameter  1 added: Name clob Type Loracle/sql/CLOB; At 0 59 Range 0 58 Init 0
    // Parameter  2 added: Name s Type Ljava/lang/String; At 0 59 Range 0 58 Init 0
    // Parameter  3 added: Name l Type J At 0 59 Range 0 58 Init 0
    // RetValue   7 added: Name <returnValue> Type J At 0 59 Range 0 58 Init 0 fixed
    // LocalVar   5 added: Name l1 Type J At 41 17 Range 41 57 Init 41
    public synchronized long position(CLOB clob, String s, long l)
        throws SQLException
    {
        if(l < 1L)
        {
            DBError.check_error(68, "position()");
        }
        if(s == null || s.length() == 0)
        {
            return -1L;
        } else
        {
            long l1 = m_dbaccess.hasPattern(clob, s.toCharArray(), l);
            return l1 != 0L ? l1 : -1L;
        }
    }

    // Decompiling method: position  Signature: (Loracle/sql/CLOB;Loracle/sql/CLOB;J)J
    // Max stack: 5, #locals: 7, #params: 5
    // Code length: 49 bytes, Code offset: 8074
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 49 Range 0 48 Init 0 fixed
    // Parameter  1 added: Name clob Type Loracle/sql/CLOB; At 0 49 Range 0 48 Init 0
    // Parameter  2 added: Name clob1 Type Loracle/sql/CLOB; At 0 49 Range 0 48 Init 0
    // Parameter  3 added: Name l Type J At 0 49 Range 0 48 Init 0
    // RetValue   7 added: Name <returnValue> Type J At 0 49 Range 0 48 Init 0 fixed
    // LocalVar   5 added: Name l1 Type J At 31 17 Range 31 47 Init 31
    public synchronized long position(CLOB clob, CLOB clob1, long l)
        throws SQLException
    {
        if(l < 1L)
        {
            DBError.check_error(68, "position");
        }
        if(clob1 == null)
        {
            return -1L;
        } else
        {
            long l1 = m_dbaccess.isSubLob(clob, clob1, l);
            return l1 != 0L ? l1 : -1L;
        }
    }

    // Decompiling method: putBytes  Signature: (Loracle/sql/BLOB;J[B)I
    // Max stack: 5, #locals: 5, #params: 5
    // Code length: 39 bytes, Code offset: 8187
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 39 Range 0 38 Init 0 fixed
    // Parameter  1 added: Name blob Type Loracle/sql/BLOB; At 0 39 Range 0 38 Init 0
    // Parameter  2 added: Name l Type J At 0 39 Range 0 38 Init 0
    // Parameter  4 added: Name abyte0 Type [B At 0 39 Range 0 38 Init 0
    // RetValue   5 added: Name <returnValue> Type I At 0 39 Range 0 38 Init 0 fixed
    public synchronized int putBytes(BLOB blob, long l, byte abyte0[])
        throws SQLException
    {
        if(l < 1L)
        {
            DBError.throwSqlException(68, "putBytes()");
        }
        if(abyte0 == null || abyte0.length == 0)
        {
            return 0;
        } else
        {
            return (int)m_dbaccess.lobWrite(blob, l, abyte0);
        }
    }

    // Decompiling method: putChars  Signature: (Loracle/sql/CLOB;J[C)I
    // Max stack: 5, #locals: 5, #params: 5
    // Code length: 39 bytes, Code offset: 8286
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 39 Range 0 38 Init 0 fixed
    // Parameter  1 added: Name clob Type Loracle/sql/CLOB; At 0 39 Range 0 38 Init 0
    // Parameter  2 added: Name l Type J At 0 39 Range 0 38 Init 0
    // Parameter  4 added: Name ac Type [C At 0 39 Range 0 38 Init 0
    // RetValue   5 added: Name <returnValue> Type I At 0 39 Range 0 38 Init 0 fixed
    public synchronized int putChars(CLOB clob, long l, char ac[])
        throws SQLException
    {
        if(l < 1L)
        {
            DBError.check_error(68, "putChars()");
        }
        if(ac == null || ac.length < 0)
        {
            return 0;
        } else
        {
            return (int)m_dbaccess.lobWrite(clob, l, ac);
        }
    }

    // Decompiling method: trim  Signature: (Loracle/sql/BLOB;J)V
    // Max stack: 6, #locals: 4, #params: 4
    // Code length: 17 bytes, Code offset: 8385
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 17 Range 0 16 Init 0 fixed
    // Parameter  1 added: Name blob Type Loracle/sql/BLOB; At 0 17 Range 0 16 Init 0
    // Parameter  2 added: Name l Type J At 0 17 Range 0 16 Init 0
    // RetValue   4 added: Name <returnValue> Type V At 0 17 Range 0 16 Init 0 fixed
    public synchronized void trim(BLOB blob, long l)
        throws SQLException
    {
        m_dbaccess.trimLob(blob.getConnection(), blob, 2004, l);
        return;
    }

    // Decompiling method: trim  Signature: (Loracle/sql/CLOB;J)V
    // Max stack: 6, #locals: 4, #params: 4
    // Code length: 17 bytes, Code offset: 8454
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/LobDBAccessImpl; At 0 17 Range 0 16 Init 0 fixed
    // Parameter  1 added: Name clob Type Loracle/sql/CLOB; At 0 17 Range 0 16 Init 0
    // Parameter  2 added: Name l Type J At 0 17 Range 0 16 Init 0
    // RetValue   4 added: Name <returnValue> Type V At 0 17 Range 0 16 Init 0 fixed
    public synchronized void trim(CLOB clob, long l)
        throws SQLException
    {
        m_dbaccess.trimLob(clob.getConnection(), clob, 2005, l);
        return;
    }
}
