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

package oracle.sql;

import java.sql.SQLException;
import oracle.gss.util.NLSError;

// Referenced classes of package oracle.sql:
//            CharacterSet, CharacterRepConstants, CharacterSetByte, CharacterSetFactoryThin, 
//            CharacterWalker, CharacterBuffer

// flag ACC_SUPER is set
class CharacterSetUnknown extends CharacterSet
    implements CharacterRepConstants
{
    // Constants:          60
    // Interfaces:         1
    // Fields:             0
    // Methods:            11
    // Class Attributes:   1


    // Decompiling method: <init>  Signature: (I)V
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 15 bytes, Code offset: 908
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/sql/CharacterSetUnknown; At 0 15 Range 0 14 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 15 Range 0 14 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 15 Range 0 14 Init 0 fixed
    CharacterSetUnknown(int i)
    {
        super(i);
        rep = 1024 + i;
        return;
    }

    // Decompiling method: convert  Signature: (Ljava/lang/String;)[B
    // Max stack: 1, #locals: 2, #params: 2
    // Code length: 6 bytes, Code offset: 969
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/CharacterSetUnknown; At 0 6 Range 0 5 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; At 0 6 Range 0 5 Init 0
    // RetValue   2 added: Name <returnValue> Type [B At 0 6 Range 0 5 Init 0 fixed
    public byte[] convert(String s)
        throws SQLException
    {
        failCharsetUnknown(this);
        return null;
    }

    // Decompiling method: convert  Signature: (Loracle/sql/CharacterSet;[BII)[B
    // Max stack: 3, #locals: 5, #params: 5
    // Code length: 25 bytes, Code offset: 1027
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/sql/CharacterSetUnknown; At 0 25 Range 0 24 Init 0 fixed
    // Parameter  1 added: Name characterset Type Loracle/sql/CharacterSet; At 0 25 Range 0 24 Init 0
    // Parameter  2 added: Name abyte0 Type [B At 0 25 Range 0 24 Init 0
    // Parameter  3 added: Name i Type I At 0 25 Range 0 24 Init 0
    // Parameter  4 added: Name j Type I At 0 25 Range 0 24 Init 0
    // RetValue   5 added: Name <returnValue> Type [B At 0 25 Range 0 24 Init 0 fixed
    public byte[] convert(CharacterSet characterset, byte abyte0[], int i, int j)
        throws SQLException
    {
        if(characterset.getOracleId() == getOracleId())
        {
            return CharacterSet.useOrCopy(abyte0, i, j);
        } else
        {
            failCharsetUnknown(this);
            return null;
        }
    }

    // Decompiling method: convertWithReplacement  Signature: (Ljava/lang/String;)[B
    // Max stack: 1, #locals: 2, #params: 2
    // Code length: 4 bytes, Code offset: 1112
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/CharacterSetUnknown; At 0 4 Range 0 3 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; At 0 4 Range 0 3 Init 0
    // RetValue   2 added: Name <returnValue> Type [B At 0 4 Range 0 3 Init 0 fixed
    public byte[] convertWithReplacement(String s)
    {
        return new byte[0];
    }

    // Decompiling method: decode  Signature: (Loracle/sql/CharacterWalker;)I
    // Max stack: 1, #locals: 2, #params: 2
    // Code length: 6 bytes, Code offset: 1154
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/CharacterSetUnknown; At 0 6 Range 0 5 Init 0 fixed
    // Parameter  1 added: Name characterwalker Type Loracle/sql/CharacterWalker; At 0 6 Range 0 5 Init 0
    // RetValue   2 added: Name <returnValue> Type I At 0 6 Range 0 5 Init 0 fixed
    int decode(CharacterWalker characterwalker)
        throws SQLException
    {
        failCharsetUnknown(this);
        return 0;
    }

    // Decompiling method: encode  Signature: (Loracle/sql/CharacterBuffer;I)V
    // Max stack: 1, #locals: 3, #params: 3
    // Code length: 5 bytes, Code offset: 1212
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/CharacterSetUnknown; At 0 5 Range 0 4 Init 0 fixed
    // Parameter  1 added: Name characterbuffer Type Loracle/sql/CharacterBuffer; At 0 5 Range 0 4 Init 0
    // Parameter  2 added: Name i Type I At 0 5 Range 0 4 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 5 Range 0 4 Init 0 fixed
    void encode(CharacterBuffer characterbuffer, int i)
        throws SQLException
    {
        failCharsetUnknown(this);
        return;
    }

    // Decompiling method: failCharsetUnknown  Signature: (Loracle/sql/CharacterSet;)V
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 8 bytes, Code offset: 1269
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name characterset Type Loracle/sql/CharacterSet; At 0 8 Range 0 7 Init 0
    // RetValue   1 added: Name <returnValue> Type V At 0 8 Range 0 7 Init 0 fixed
    static void failCharsetUnknown(CharacterSet characterset)
        throws SQLException
    {
        NLSError.throwSQLException(17056, characterset);
        return;
    }

    // Decompiling method: isConvertibleFrom  Signature: (Loracle/sql/CharacterSet;)Z
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 17 bytes, Code offset: 1329
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/CharacterSetUnknown; At 0 17 Range 0 16 Init 0 fixed
    // Parameter  1 added: Name characterset Type Loracle/sql/CharacterSet; At 0 17 Range 0 16 Init 0
    // RetValue   2 added: Name <returnValue> Type Z At 0 17 Range 0 16 Init 0 fixed
    public boolean isConvertibleFrom(CharacterSet characterset)
    {
        return characterset.getOracleId() == getOracleId();
    }

    // Decompiling method: isLossyFrom  Signature: (Loracle/sql/CharacterSet;)Z
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 17 bytes, Code offset: 1384
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/CharacterSetUnknown; At 0 17 Range 0 16 Init 0 fixed
    // Parameter  1 added: Name characterset Type Loracle/sql/CharacterSet; At 0 17 Range 0 16 Init 0
    // RetValue   2 added: Name <returnValue> Type Z At 0 17 Range 0 16 Init 0 fixed
    public boolean isLossyFrom(CharacterSet characterset)
    {
        return characterset.getOracleId() != getOracleId();
    }

    // Decompiling method: toString  Signature: ([BII)Ljava/lang/String;
    // Max stack: 1, #locals: 4, #params: 4
    // Code length: 6 bytes, Code offset: 1439
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/CharacterSetUnknown; At 0 6 Range 0 5 Init 0 fixed
    // Parameter  1 added: Name abyte0 Type [B At 0 6 Range 0 5 Init 0
    // Parameter  2 added: Name i Type I At 0 6 Range 0 5 Init 0
    // Parameter  3 added: Name j Type I At 0 6 Range 0 5 Init 0
    // RetValue   4 added: Name <returnValue> Type Ljava/lang/String; At 0 6 Range 0 5 Init 0 fixed
    public String toString(byte abyte0[], int i, int j)
        throws SQLException
    {
        failCharsetUnknown(this);
        return null;
    }

    // Decompiling method: toStringWithReplacement  Signature: ([BII)Ljava/lang/String;
    // Max stack: 1, #locals: 4, #params: 4
    // Code length: 3 bytes, Code offset: 1497
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/CharacterSetUnknown; At 0 3 Range 0 2 Init 0 fixed
    // Parameter  1 added: Name abyte0 Type [B At 0 3 Range 0 2 Init 0
    // Parameter  2 added: Name i Type I At 0 3 Range 0 2 Init 0
    // Parameter  3 added: Name j Type I At 0 3 Range 0 2 Init 0
    // RetValue   4 added: Name <returnValue> Type Ljava/lang/String; At 0 3 Range 0 2 Init 0 fixed
    public String toStringWithReplacement(byte abyte0[], int i, int j)
    {
        return "???";
    }
}
