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

package oracle.sql;

import java.sql.SQLException;
import oracle.sql.converter.CharacterConverter;
import oracle.sql.converter.CharacterConverter2ByteFixed;

// Referenced classes of package oracle.sql:
//            CharacterSetWithConverter, CharacterBuffer, CharacterSet, CharacterWalker

// flag ACC_SUPER is set
class CharacterSet2ByteFixed extends CharacterSetWithConverter
{
    // Constants:          73
    // Interfaces:         0
    // Fields:             6
    // Methods:            4
    // Class Attributes:   1


    static final String CHAR_CONV_SUPERCLASS_NAME = "oracle.sql.converter.CharacterConverter2ByteFixed";
    static final short MAX_7BIT = 127;
    static final short MIN_8BIT_SB = 161;
    static final short MAX_8BIT_SB = 223;
    static final short CHARLENGTH = 2;
    static Class m_charConvSuperclass;

    // Decompiling method: <init>  Signature: (ILoracle/sql/converter/CharacterConverter2ByteFixed;)V
    // Max stack: 3, #locals: 3, #params: 3
    // Code length: 7 bytes, Code offset: 1232
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/CharacterSet2ByteFixed; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // Parameter  2 added: Name characterconverter2bytefixed Type Loracle/sql/converter/CharacterConverter2ByteFixed; At 0 7 Range 0 6 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 7 Range 0 6 Init 0 fixed
    CharacterSet2ByteFixed(int i, CharacterConverter2ByteFixed characterconverter2bytefixed)
    {
        super(i, characterconverter2bytefixed);
        return;
    }

    // Decompiling method: decode  Signature: (Loracle/sql/CharacterWalker;)I
    // Max stack: 3, #locals: 3, #params: 2
    // Code length: 76 bytes, Code offset: 1281
    // Line Number Table found: 8 entries
    // Parameter  0 added: Name this Type Loracle/sql/CharacterSet2ByteFixed; At 0 76 Range 0 75 Init 0 fixed
    // Parameter  1 added: Name characterwalker Type Loracle/sql/CharacterWalker; At 0 76 Range 0 75 Init 0
    // RetValue   3 added: Name <returnValue> Type I At 0 76 Range 0 75 Init 0 fixed
    // LocalVar   2 added: Name i Type I At 13 24 Range 13 36 Init 13
    // LocalVar   2 added: Name j Type I At 50 25 Range 50 74 Init 50
    // LocalVar   2 name j(I) merged out into i(I)
    int decode(CharacterWalker characterwalker)
        throws SQLException
    {
        int i = characterwalker.bytes[characterwalker.next] & 0xff;
        characterwalker.next++;
        if(characterwalker.bytes.length > characterwalker.next)
        {
            i = i << 8 | characterwalker.bytes[characterwalker.next];
            characterwalker.next++;
        } else
        {
            throw new SQLException("destination too small");
        }
        return i;
    }

    // Decompiling method: encode  Signature: (Loracle/sql/CharacterBuffer;I)V
    // Max stack: 5, #locals: 3, #params: 3
    // Code length: 53 bytes, Code offset: 1433
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/sql/CharacterSet2ByteFixed; At 0 53 Range 0 52 Init 0 fixed
    // Parameter  1 added: Name characterbuffer Type Loracle/sql/CharacterBuffer; At 0 53 Range 0 52 Init 0
    // Parameter  2 added: Name i Type I At 0 53 Range 0 52 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 53 Range 0 52 Init 0 fixed
    void encode(CharacterBuffer characterbuffer, int i)
        throws SQLException
    {
        CharacterSet.need(characterbuffer, 2);
        characterbuffer.bytes[characterbuffer.next++] = (byte)(i >> 8 & 0xff);
        characterbuffer.bytes[characterbuffer.next++] = (byte)(i & 0xff);
        return;
    }

    // Decompiling method: getInstance  Signature: (ILoracle/sql/converter/CharacterConverter;)Loracle/sql/CharacterSet2ByteFixed;
    // Max stack: 4, #locals: 2, #params: 2
    // Code length: 24 bytes, Code offset: 1546
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name i Type I At 0 24 Range 0 23 Init 0
    // Parameter  1 added: Name characterconverter Type Loracle/sql/converter/CharacterConverter; At 0 24 Range 0 23 Init 0
    // RetValue   2 added: Name <returnValue> Type Loracle/sql/CharacterSet2ByteFixed; At 0 24 Range 0 23 Init 0 fixed
    static CharacterSet2ByteFixed getInstance(int i, CharacterConverter characterconverter)
    {
        if(characterconverter.getGroupId() == 6)
        {
            return new CharacterSet2ByteFixed(i, (CharacterConverter2ByteFixed)characterconverter);
        } else
        {
            return null;
        }
    }
}
