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

package oracle.sql;

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

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

// flag ACC_SUPER is set
public class CLOB extends Datum
    implements Clob
{
    // Constants:          268
    // Interfaces:         1
    // Fields:             9
    // Methods:            45
    // 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;
    ClobDBAccess m_dbaccess;
    private int m_dbChunkSize;
    private short csform;

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

    // Decompiling method: <init>  Signature: (Loracle/jdbc/OracleConnection;)V
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 7 bytes, Code offset: 3561
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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 CLOB(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: 3620
    // Line Number Table found: 8 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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 CLOB(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).createClobDBAccess();
        m_dbChunkSize = -1;
        return;
    }

    // Decompiling method: <init>  Signature: (Loracle/jdbc/OracleConnection;[BS)V
    // Max stack: 3, #locals: 4, #params: 4
    // Code length: 12 bytes, Code offset: 3739
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; At 0 12 Range 0 11 Init 0 fixed
    // Parameter  1 added: Name oracleconnection Type Loracle/jdbc/OracleConnection; At 0 12 Range 0 11 Init 0
    // Parameter  2 added: Name abyte0 Type [B At 0 12 Range 0 11 Init 0
    // Parameter  3 added: Name word0 Type S At 0 12 Range 0 11 Init 0
    // RetValue   4 added: Name <returnValue> Type V At 0 12 Range 0 11 Init 0 fixed
    public CLOB(OracleConnection oracleconnection, byte abyte0[], short word0)
        throws SQLException
    {
        this(oracleconnection, abyte0);
        csform = word0;
        return;
    }

    // Decompiling method: asciiStreamValue  Signature: ()Ljava/io/InputStream;
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 5 bytes, Code offset: 3807
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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 asciiStreamValue()
        throws SQLException
    {
        return getAsciiStream();
    }

    // Decompiling method: binaryStreamValue  Signature: ()Ljava/io/InputStream;
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 5 bytes, Code offset: 3860
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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 getAsciiStream();
    }

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

    // Decompiling method: close  Signature: ()V
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 11 bytes, Code offset: 3966
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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/CLOB;
    // Max stack: 4, #locals: 3, #params: 3
    // Code length: 32 bytes, Code offset: 4029
    // 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/CLOB; At 0 32 Range 0 31 Init 0 fixed
    public static CLOB createTemporary(Connection connection, boolean flag, int i)
        throws SQLException
    {
        if(connection == null || i != 1 && i != 2)
        {
            DBError.throwSqlException(68);
        }
        return getDBAccess(connection).createTemporaryClob(connection, flag, i);
    }

    // Decompiling method: empty_lob  Signature: ()Loracle/sql/CLOB;
    // Max stack: 3, #locals: 2, #params: 0
    // Code length: 30 bytes, Code offset: 4125
    // Line Number Table found: 6 entries
    // RetValue   2 added: Name <returnValue> Type Loracle/sql/CLOB; 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 clob Type Loracle/sql/CLOB; At 22 7 Range 22 28 Init 22
    public static CLOB empty_lob()
        throws SQLException
    {
        byte abyte0[] = new byte[86];
        abyte0[1] = 84;
        abyte0[5] = 24;
        CLOB clob = new CLOB();
        clob.setShareBytes(abyte0);
        return clob;
    }

    // Decompiling method: freeTemporary  Signature: ()V
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 11 bytes, Code offset: 4223
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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/CLOB;)V
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 10 bytes, Code offset: 4286
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name clob Type Loracle/sql/CLOB; 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(CLOB clob)
        throws SQLException
    {
        if(clob == null)
        {
            return;
        } else
        {
            clob.freeTemporary();
            return;
        }
    }

    // Decompiling method: getAsciiOutputStream  Signature: ()Ljava/io/OutputStream;
    // Max stack: 5, #locals: 1, #params: 1
    // Code length: 16 bytes, Code offset: 4352
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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 getAsciiOutputStream()
        throws SQLException
    {
        return getDBAccess().newOutputStream(this, getBufferSize(), 0L);
    }

    // Decompiling method: getAsciiOutputStream  Signature: (J)Ljava/io/OutputStream;
    // Max stack: 5, #locals: 3, #params: 3
    // Code length: 16 bytes, Code offset: 4416
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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 getAsciiOutputStream(long l)
        throws SQLException
    {
        return getDBAccess().newOutputStream(this, getBufferSize(), l);
    }

    // Decompiling method: getAsciiStream  Signature: ()Ljava/io/InputStream;
    // Max stack: 5, #locals: 1, #params: 1
    // Code length: 16 bytes, Code offset: 4480
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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 getAsciiStream()
        throws SQLException
    {
        return getDBAccess().newInputStream(this, getBufferSize(), 0L);
    }

    // Decompiling method: getAsciiStream  Signature: (J)Ljava/io/InputStream;
    // Max stack: 5, #locals: 3, #params: 3
    // Code length: 16 bytes, Code offset: 4544
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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 getAsciiStream(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: 4608
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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: getCharacterOutputStream  Signature: ()Ljava/io/Writer;
    // Max stack: 5, #locals: 1, #params: 1
    // Code length: 16 bytes, Code offset: 4696
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; At 0 16 Range 0 15 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/io/Writer; At 0 16 Range 0 15 Init 0 fixed
    public Writer getCharacterOutputStream()
        throws SQLException
    {
        return getDBAccess().newWriter(this, getBufferSize(), 0L);
    }

    // Decompiling method: getCharacterOutputStream  Signature: (J)Ljava/io/Writer;
    // Max stack: 5, #locals: 3, #params: 3
    // Code length: 16 bytes, Code offset: 4760
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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/Writer; At 0 16 Range 0 15 Init 0 fixed
    public Writer getCharacterOutputStream(long l)
        throws SQLException
    {
        return getDBAccess().newWriter(this, getBufferSize(), l);
    }

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

    // Decompiling method: getCharacterStream  Signature: (J)Ljava/io/Reader;
    // Max stack: 5, #locals: 3, #params: 3
    // Code length: 16 bytes, Code offset: 4888
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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/Reader; At 0 16 Range 0 15 Init 0 fixed
    public Reader getCharacterStream(long l)
        throws SQLException
    {
        return getDBAccess().newReader(this, getBufferSize(), l);
    }

    // Decompiling method: getChars  Signature: (JI[C)I
    // Max stack: 6, #locals: 5, #params: 5
    // Code length: 15 bytes, Code offset: 4952
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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 ac Type [C 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 getChars(long l, int i, char ac[])
        throws SQLException
    {
        return getDBAccess().getChars(this, l, i, ac);
    }

    // Decompiling method: getChunkSize  Signature: ()I
    // Max stack: 3, #locals: 1, #params: 1
    // Code length: 26 bytes, Code offset: 5015
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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: 5097
    // 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/CLOB; 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/ClobDBAccess;
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 37 bytes, Code offset: 5191
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; At 0 37 Range 0 36 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Loracle/sql/ClobDBAccess; At 0 37 Range 0 36 Init 0 fixed
    public ClobDBAccess getDBAccess()
        throws SQLException
    {
        if(m_dbaccess == null)
        {
            if(isEmptyLob())
            {
                DBError.throwSqlException(98);
            }
            m_dbaccess = getConnection().createClobDBAccess();
        }
        return m_dbaccess;
    }

    // Decompiling method: getDBAccess  Signature: (Ljava/sql/Connection;)Loracle/sql/ClobDBAccess;
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 10 bytes, Code offset: 5292
    // 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/ClobDBAccess; At 0 10 Range 0 9 Init 0 fixed
    public static ClobDBAccess getDBAccess(Connection connection)
        throws SQLException
    {
        return ((oracle.jdbc.internal.OracleConnection)connection).createClobDBAccess();
    }

    // Decompiling method: getJavaSqlConnection  Signature: ()Ljava/sql/Connection;
    // Max stack: 3, #locals: 1, #params: 1
    // Code length: 29 bytes, Code offset: 5350
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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: 5443
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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: getSubString  Signature: (JI)Ljava/lang/String;
    // Max stack: 5, #locals: 6, #params: 4
    // Code length: 70 bytes, Code offset: 5486
    // Line Number Table found: 8 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; At 0 70 Range 0 69 Init 0 fixed
    // Parameter  1 added: Name l Type J At 0 70 Range 0 69 Init 0
    // Parameter  3 added: Name i Type I At 0 70 Range 0 69 Init 0
    // RetValue   6 added: Name <returnValue> Type Ljava/lang/String; At 0 70 Range 0 69 Init 0 fixed
    // LocalVar   4 added: Name ac Type [C At 32 23 Range 32 54 Init 32
    // LocalVar   5 added: Name j Type I At 42 16 Range 42 57 Init 42
    public String getSubString(long l, int i)
        throws SQLException
    {
        if(i < 0 || l < 1L)
        {
            DBError.check_error(68, "getSubString");
        }
        if(i == 0)
        {
            return new String();
        }
        char ac[] = new char[i];
        int j = getChars(l, i, ac);
        if(j > 0)
        {
            return new String(ac, 0, j);
        } else
        {
            return new String();
        }
    }

    // Decompiling method: isConvertibleTo  Signature: (Ljava/lang/Class;)Z
    // Max stack: 2, #locals: 3, #params: 2
    // Code length: 29 bytes, Code offset: 5632
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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: 5711
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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: isNCLOB  Signature: ()Z
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 14 bytes, Code offset: 5777
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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 isNCLOB()
    {
        return csform == 2;
    }

    // Decompiling method: isOpen  Signature: ()Z
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 11 bytes, Code offset: 5829
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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: 5888
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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/CLOB;)Z
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 11 bytes, Code offset: 5947
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name clob Type Loracle/sql/CLOB; 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(CLOB clob)
        throws SQLException
    {
        if(clob == null)
        {
            return false;
        } else
        {
            return clob.isTemporary();
        }
    }

    // Decompiling method: length  Signature: ()J
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 11 bytes, Code offset: 6010
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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: 6069
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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 CLOB[i];
    }

    // Decompiling method: open  Signature: (I)V
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 12 bytes, Code offset: 6112
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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/lang/String;J)J
    // Max stack: 5, #locals: 4, #params: 4
    // Code length: 13 bytes, Code offset: 6176
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; At 0 13 Range 0 12 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; 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(String s, long l)
        throws SQLException
    {
        return getDBAccess().position(this, s, l);
    }

    // Decompiling method: position  Signature: (Ljava/sql/Clob;J)J
    // Max stack: 5, #locals: 4, #params: 4
    // Code length: 16 bytes, Code offset: 6237
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; At 0 16 Range 0 15 Init 0 fixed
    // Parameter  1 added: Name clob Type Ljava/sql/Clob; 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(Clob clob, long l)
        throws SQLException
    {
        return getDBAccess().position(this, (CLOB)clob, l);
    }

    // Decompiling method: putChars  Signature: (J[C)I
    // Max stack: 5, #locals: 4, #params: 4
    // Code length: 13 bytes, Code offset: 6301
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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 ac Type [C 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 putChars(long l, char ac[])
        throws SQLException
    {
        return getDBAccess().putChars(this, l, ac);
    }

    // Decompiling method: putString  Signature: (JLjava/lang/String;)I
    // Max stack: 4, #locals: 4, #params: 4
    // Code length: 36 bytes, Code offset: 6362
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; At 0 36 Range 0 35 Init 0 fixed
    // Parameter  1 added: Name l Type J At 0 36 Range 0 35 Init 0
    // Parameter  3 added: Name s Type Ljava/lang/String; At 0 36 Range 0 35 Init 0
    // RetValue   4 added: Name <returnValue> Type I At 0 36 Range 0 35 Init 0 fixed
    public int putString(long l, String s)
        throws SQLException
    {
        if(l < 1L)
        {
            DBError.check_error(68, "putString()");
        }
        if(s == null || s.length() == 0)
        {
            return 0;
        } else
        {
            return putChars(l, s.toCharArray());
        }
    }

    // Decompiling method: setLocator  Signature: ([B)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 6 bytes, Code offset: 6458
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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: 6502
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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: 6552
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/sql/CLOB; 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;
    }
}
