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

package oracle.sql;

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

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

// flag ACC_SUPER is set
class CharacterSetJAEUC extends CharacterSetWithConverter
{
    // Constants:          64
    // Interfaces:         0
    // Fields:             4
    // Methods:            4
    // Class Attributes:   1


    static final String CHAR_CONV_SUPERCLASS_NAME = "oracle.sql.converter.CharacterConverterJAEUC";
    static final transient short MAX_7BIT = 127;
    static final transient short LEADINGCODE = 143;
    static Class m_charConvSuperclass;

    // Decompiling method: <init>  Signature: (ILoracle/sql/converter/CharacterConverterJAEUC;)V
    // Max stack: 3, #locals: 3, #params: 3
    // Code length: 7 bytes, Code offset: 1072
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/CharacterSetJAEUC; 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 characterconverterjaeuc Type Loracle/sql/converter/CharacterConverterJAEUC; At 0 7 Range 0 6 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 7 Range 0 6 Init 0 fixed
    CharacterSetJAEUC(int i, CharacterConverterJAEUC characterconverterjaeuc)
    {
        super(i, characterconverterjaeuc);
        return;
    }

    // Decompiling method: decode  Signature: (Loracle/sql/CharacterWalker;)I
    // Max stack: 3, #locals: 4, #params: 2
    // Code length: 129 bytes, Code offset: 1121
    // Line Number Table found: 14 entries
    // Parameter  0 added: Name this Type Loracle/sql/CharacterSetJAEUC; At 0 129 Range 0 128 Init 0 fixed
    // Parameter  1 added: Name characterwalker Type Loracle/sql/CharacterWalker; At 0 129 Range 0 128 Init 0
    // RetValue   4 added: Name <returnValue> Type I At 0 129 Range 0 128 Init 0 fixed
    // LocalVar   2 added: Name i Type I At 13 115 Range 13 127 Init 13
    // LocalVar   3 added: Name flag Type Z At 78 45 Range 78 122 Init 78
    // LocalVar   3 chged: Name j Oname flag Type I At 122 1 Range 78 122 Init 78
    int decode(CharacterWalker characterwalker)
        throws SQLException
    {
        int i = characterwalker.bytes[characterwalker.next] & 0xff;
        characterwalker.next++;
        if(i > 127)
        {
            if(i != 143)
            {
                if(characterwalker.bytes.length > characterwalker.next)
                {
                    i = i << 8 | characterwalker.bytes[characterwalker.next];
                    characterwalker.next++;
                }
            } else
            {
                for(int j = 0; j < 2; j++)
                {
                    if(characterwalker.bytes.length > characterwalker.next)
                    {
                        i = i << 8 | characterwalker.bytes[characterwalker.next];
                        characterwalker.next++;
                    }
                }

            }
        }
        return i;
    }

    // Decompiling method: encode  Signature: (Loracle/sql/CharacterBuffer;I)V
    // Max stack: 5, #locals: 5, #params: 3
    // Code length: 71 bytes, Code offset: 1350
    // Line Number Table found: 12 entries
    // Parameter  0 added: Name this Type Loracle/sql/CharacterSetJAEUC; At 0 71 Range 0 70 Init 0 fixed
    // Parameter  1 added: Name characterbuffer Type Loracle/sql/CharacterBuffer; At 0 71 Range 0 70 Init 0
    // Parameter  2 added: Name i Type I At 0 71 Range 0 70 Init 0
    // RetValue   5 added: Name <returnValue> Type V At 0 71 Range 0 70 Init 0 fixed
    // LocalVar   3 added: Name flag Type Z At 1 66 Range 1 66 Init 1
    // LocalVar   4 added: Name flag1 Type Z At 3 27 Range 3 29 Init 3
    // LocalVar   3 chged: Name j Oname flag Type I At 22 1 Range 1 66 Init 1
    // LocalVar   4 chged: Name k Oname flag1 Type I At 28 2 Range 3 29 Init 3
    // LocalVar   3 chged: Name word0 Oname j Type S At 8 59 Range 1 66 Init 1
    // LocalVar   4 chged: Name word1 Oname k Type S At 14 16 Range 3 29 Init 3
    void encode(CharacterBuffer characterbuffer, int i)
        throws SQLException
    {
        short word0 = 0;
        short word1;
        for(word1 = 1; i >> word0 != 0; word1++)
        {
            word0 += 8;
        }

        CharacterSet.need(characterbuffer, word1);
        for(; word0 >= 0; word0 -= 8)
        {
            characterbuffer.bytes[characterbuffer.next++] = (byte)(i >> word0 & 0xff);
        }

        return;
    }

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