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

package oracle.sql;

import java.io.PrintStream;
import java.sql.Date;
import java.sql.SQLException;
import java.sql.Time;
import java.sql.Timestamp;
import java.util.Calendar;
import java.util.TimeZone;

// Referenced classes of package oracle.sql:
//            Datum, LdxLib, LdxLibServer, LdxLibThin, 
//            NUMBER

// flag ACC_SUPER is set
public class DATE extends Datum
{
    // Constants:          412
    // Interfaces:         0
    // Fields:             26
    // Methods:            60
    // Class Attributes:   1


    public static final int BDA = 1;
    public static final int BDAL = 2;
    public static final int BMO = 4;
    public static final int BMOL = 8;
    public static final int BYR = 16;
    public static final int BYRL = 32;
    public static final int BHR = 64;
    public static final int BHRL = 128;
    public static final int BMN = 256;
    public static final int BMNL = 512;
    public static final int BSC = 1024;
    public static final int BSCL = 2048;
    public static final int MSD = 4096;
    public static final int YR0 = 8192;
    public static final int BDT = 32768;
    public static final int HRZER0 = 0x10000;
    public static final int MIZERO = 0x20000;
    public static final int SEZERO = 0x40000;
    private static final byte LDXTCE = 0;
    private static final byte LDXTYE = 1;
    private static final byte LDXTMO = 2;
    private static final byte LDXTDA = 3;
    private static final byte LDXTHO = 4;
    private static final byte LDXTMI = 5;
    private static final byte LDXTSE = 6;
    private static LdxLib _sldxlib;

    // Decompiling method: <init>  Signature: ()V
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 8 bytes, Code offset: 5350
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 8 Range 0 7 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type V At 0 8 Range 0 7 Init 0 fixed
    public DATE()
    {
        super(_initDate());
        return;
    }

    // Decompiling method: <init>  Signature: (Ljava/lang/Object;)V
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 99 bytes, Code offset: 5400
    // Line Number Table found: 15 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 99 Range 0 98 Init 0 fixed
    // Parameter  1 added: Name obj Type Ljava/lang/Object; At 0 99 Range 0 98 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 99 Range 0 98 Init 0 fixed
    public DATE(Object obj)
        throws SQLException
    {
        super();
        if(obj instanceof Date)
        {
            setShareBytes(toBytes((Date)obj));
        } else
        if(obj instanceof Time)
        {
            setShareBytes(toBytes((Time)obj));
        } else
        if(obj instanceof Timestamp)
        {
            setShareBytes(toBytes((Timestamp)obj));
        } else
        if(obj instanceof String)
        {
            setShareBytes(toBytes((String)obj));
        } else
        {
            throw new SQLException("Initialization failed");
        }
        return;
    }

    // Decompiling method: <init>  Signature: (Ljava/lang/Object;Ljava/util/Calendar;)V
    // Max stack: 3, #locals: 3, #params: 3
    // Code length: 103 bytes, Code offset: 5603
    // Line Number Table found: 15 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 103 Range 0 102 Init 0 fixed
    // Parameter  1 added: Name obj Type Ljava/lang/Object; At 0 103 Range 0 102 Init 0
    // Parameter  2 added: Name calendar Type Ljava/util/Calendar; At 0 103 Range 0 102 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 103 Range 0 102 Init 0 fixed
    public DATE(Object obj, Calendar calendar)
        throws SQLException
    {
        super();
        if(obj instanceof Date)
        {
            setShareBytes(toBytes((Date)obj, calendar));
        } else
        if(obj instanceof Time)
        {
            setShareBytes(toBytes((Time)obj, calendar));
        } else
        if(obj instanceof Timestamp)
        {
            setShareBytes(toBytes((Timestamp)obj, calendar));
        } else
        if(obj instanceof String)
        {
            setShareBytes(toBytes((String)obj, calendar));
        } else
        {
            throw new SQLException("Initialization failed");
        }
        return;
    }

    // Decompiling method: <init>  Signature: (Ljava/lang/String;)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 9 bytes, Code offset: 5810
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 9 Range 0 8 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; 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 DATE(String s)
    {
        super(toBytes(s));
        return;
    }

    // Decompiling method: <init>  Signature: (Ljava/lang/String;Ljava/util/Calendar;)V
    // Max stack: 3, #locals: 3, #params: 3
    // Code length: 10 bytes, Code offset: 5861
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 10 Range 0 9 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; At 0 10 Range 0 9 Init 0
    // Parameter  2 added: Name calendar Type Ljava/util/Calendar; At 0 10 Range 0 9 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 10 Range 0 9 Init 0 fixed
    public DATE(String s, Calendar calendar)
    {
        super(toBytes(s, calendar));
        return;
    }

    // Decompiling method: <init>  Signature: (Ljava/sql/Date;)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 9 bytes, Code offset: 5913
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 9 Range 0 8 Init 0 fixed
    // Parameter  1 added: Name date Type Ljava/sql/Date; 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 DATE(Date date)
    {
        super(toBytes(date));
        return;
    }

    // Decompiling method: <init>  Signature: (Ljava/sql/Date;Ljava/util/Calendar;)V
    // Max stack: 3, #locals: 3, #params: 3
    // Code length: 10 bytes, Code offset: 5964
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 10 Range 0 9 Init 0 fixed
    // Parameter  1 added: Name date Type Ljava/sql/Date; At 0 10 Range 0 9 Init 0
    // Parameter  2 added: Name calendar Type Ljava/util/Calendar; At 0 10 Range 0 9 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 10 Range 0 9 Init 0 fixed
    public DATE(Date date, Calendar calendar)
    {
        super(toBytes(date, calendar));
        return;
    }

    // Decompiling method: <init>  Signature: (Ljava/sql/Time;)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 9 bytes, Code offset: 6016
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 9 Range 0 8 Init 0 fixed
    // Parameter  1 added: Name time Type Ljava/sql/Time; 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 DATE(Time time)
    {
        super(toBytes(time));
        return;
    }

    // Decompiling method: <init>  Signature: (Ljava/sql/Time;Ljava/util/Calendar;)V
    // Max stack: 3, #locals: 3, #params: 3
    // Code length: 10 bytes, Code offset: 6067
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 10 Range 0 9 Init 0 fixed
    // Parameter  1 added: Name time Type Ljava/sql/Time; At 0 10 Range 0 9 Init 0
    // Parameter  2 added: Name calendar Type Ljava/util/Calendar; At 0 10 Range 0 9 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 10 Range 0 9 Init 0 fixed
    public DATE(Time time, Calendar calendar)
    {
        super(toBytes(time, calendar));
        return;
    }

    // Decompiling method: <init>  Signature: (Ljava/sql/Timestamp;)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 9 bytes, Code offset: 6119
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 9 Range 0 8 Init 0 fixed
    // Parameter  1 added: Name timestamp Type Ljava/sql/Timestamp; 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 DATE(Timestamp timestamp)
    {
        super(toBytes(timestamp));
        return;
    }

    // Decompiling method: <init>  Signature: (Ljava/sql/Timestamp;Ljava/util/Calendar;)V
    // Max stack: 3, #locals: 3, #params: 3
    // Code length: 10 bytes, Code offset: 6170
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 10 Range 0 9 Init 0 fixed
    // Parameter  1 added: Name timestamp Type Ljava/sql/Timestamp; At 0 10 Range 0 9 Init 0
    // Parameter  2 added: Name calendar Type Ljava/util/Calendar; At 0 10 Range 0 9 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 10 Range 0 9 Init 0 fixed
    public DATE(Timestamp timestamp, Calendar calendar)
    {
        super(toBytes(timestamp, calendar));
        return;
    }

    // Decompiling method: <init>  Signature: ([B)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 6 bytes, Code offset: 6222
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; 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 DATE(byte abyte0[])
    {
        super(abyte0);
        return;
    }

    // Decompiling method: _getLdxLib  Signature: ()Loracle/sql/LdxLib;
    // Max stack: 2, #locals: 0, #params: 0
    // Code length: 58 bytes, Code offset: 6270
    // Exception table: 1 entries
    //           start  6 end 37 handler 40 type SecurityException
    // Line Number Table found: 11 entries
    // RetValue   0 added: Name <returnValue> Type Loracle/sql/LdxLib; At 0 58 Range 0 57 Init 0 fixed
    private static LdxLib _getLdxLib()
    {
        if(_sldxlib == null)
        {
            try
            {
                if(System.getProperty("oracle.jserver.version") != null)
                {
                    _sldxlib = new LdxLibServer();
                } else
                {
                    _sldxlib = new LdxLibThin();
                }
            }
            catch(SecurityException _ex)
            {
                _sldxlib = new LdxLibThin();
            }
        }
        return _sldxlib;
    }

    // Decompiling method: _initDate  Signature: ()[B
    // Max stack: 3, #locals: 1, #params: 0
    // Code length: 38 bytes, Code offset: 6414
    // Line Number Table found: 9 entries
    // RetValue   1 added: Name <returnValue> Type [B At 0 38 Range 0 37 Init 0 fixed
    // LocalVar   0 added: Name abyte0 Type [B At 4 33 Range 4 36 Init 4
    private static byte[] _initDate()
    {
        byte abyte0[] = new byte[7];
        abyte0[0] = 119;
        abyte0[1] = -86;
        abyte0[2] = 1;
        abyte0[3] = 1;
        abyte0[4] = 1;
        abyte0[5] = 1;
        abyte0[6] = 1;
        return abyte0;
    }

    // Decompiling method: _printBytes  Signature: ([B)V
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 11 bytes, Code offset: 6522
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name abyte0 Type [B At 0 11 Range 0 10 Init 0
    // RetValue   1 added: Name <returnValue> Type V At 0 11 Range 0 10 Init 0 fixed
    private static void _printBytes(byte abyte0[])
    {
        System.out.println(toString(abyte0));
        return;
    }

    // Decompiling method: addJulianDays  Signature: (II)Loracle/sql/DATE;
    // Max stack: 6, #locals: 3, #params: 3
    // Code length: 22 bytes, Code offset: 6575
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 22 Range 0 21 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 22 Range 0 21 Init 0
    // Parameter  2 added: Name j Type I At 0 22 Range 0 21 Init 0
    // RetValue   3 added: Name <returnValue> Type Loracle/sql/DATE; At 0 22 Range 0 21 Init 0 fixed
    public DATE addJulianDays(int i, int j)
        throws SQLException
    {
        return new DATE(_getLdxLib().ldxads(shareBytes(), i, j));
    }

    // Decompiling method: addMonths  Signature: (I)Loracle/sql/DATE;
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 21 bytes, Code offset: 6653
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 21 Range 0 20 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 21 Range 0 20 Init 0
    // RetValue   2 added: Name <returnValue> Type Loracle/sql/DATE; At 0 21 Range 0 20 Init 0 fixed
    public DATE addMonths(int i)
        throws SQLException
    {
        return new DATE(_getLdxLib().ldxadm(shareBytes(), i));
    }

    // Decompiling method: checkValidity  Signature: ([B)I
    // Max stack: 2, #locals: 1, #params: 1
    // Code length: 10 bytes, Code offset: 6722
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name abyte0 Type [B At 0 10 Range 0 9 Init 0
    // RetValue   1 added: Name <returnValue> Type I At 0 10 Range 0 9 Init 0 fixed
    public static int checkValidity(byte abyte0[])
        throws SQLException
    {
        return _getLdxLib().ldxchk(abyte0);
    }

    // Decompiling method: compareTo  Signature: (Loracle/sql/DATE;)I
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 12 bytes, Code offset: 6780
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 12 Range 0 11 Init 0 fixed
    // Parameter  1 added: Name date Type Loracle/sql/DATE; At 0 12 Range 0 11 Init 0
    // RetValue   2 added: Name <returnValue> Type I At 0 12 Range 0 11 Init 0 fixed
    public int compareTo(DATE date)
    {
        return Datum.compareBytes(shareBytes(), date.shareBytes());
    }

    // Decompiling method: dateValue  Signature: ()Ljava/sql/Date;
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 8 bytes, Code offset: 6830
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 8 Range 0 7 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/sql/Date; At 0 8 Range 0 7 Init 0 fixed
    public Date dateValue()
    {
        return toDate(getBytes());
    }

    // Decompiling method: dateValue  Signature: (Ljava/util/Calendar;)Ljava/sql/Date;
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 9 bytes, Code offset: 6876
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 9 Range 0 8 Init 0 fixed
    // Parameter  1 added: Name calendar Type Ljava/util/Calendar; At 0 9 Range 0 8 Init 0
    // RetValue   2 added: Name <returnValue> Type Ljava/sql/Date; At 0 9 Range 0 8 Init 0 fixed
    public Date dateValue(Calendar calendar)
    {
        return toDate(getBytes(), calendar);
    }

    // Decompiling method: diffInJulianDays  Signature: (Loracle/sql/DATE;[I[I)V
    // Max stack: 5, #locals: 4, #params: 4
    // Code length: 19 bytes, Code offset: 6923
    // Line Number Table found: 4 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 19 Range 0 18 Init 0 fixed
    // Parameter  1 added: Name date Type Loracle/sql/DATE; At 0 19 Range 0 18 Init 0
    // Parameter  2 added: Name ai Type [I At 0 19 Range 0 18 Init 0
    // Parameter  3 added: Name ai1 Type [I At 0 19 Range 0 18 Init 0
    // RetValue   4 added: Name <returnValue> Type V At 0 19 Range 0 18 Init 0 fixed
    public void diffInJulianDays(DATE date, int ai[], int ai1[])
        throws SQLException
    {
        _getLdxLib().ldxsub(shareBytes(), date.shareBytes(), ai, ai1);
        return;
    }

    // Decompiling method: diffInMonths  Signature: (Loracle/sql/DATE;)Loracle/sql/NUMBER;
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 24 bytes, Code offset: 7002
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 24 Range 0 23 Init 0 fixed
    // Parameter  1 added: Name date Type Loracle/sql/DATE; At 0 24 Range 0 23 Init 0
    // RetValue   2 added: Name <returnValue> Type Loracle/sql/NUMBER; At 0 24 Range 0 23 Init 0 fixed
    public NUMBER diffInMonths(DATE date)
        throws SQLException
    {
        return new NUMBER(_getLdxLib().ldxsbm(shareBytes(), date.shareBytes()));
    }

    // Decompiling method: fromJulianDays  Signature: (II)Loracle/sql/DATE;
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 18 bytes, Code offset: 7082
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name i Type I At 0 18 Range 0 17 Init 0
    // Parameter  1 added: Name j Type I At 0 18 Range 0 17 Init 0
    // RetValue   2 added: Name <returnValue> Type Loracle/sql/DATE; At 0 18 Range 0 17 Init 0 fixed
    public static DATE fromJulianDays(int i, int j)
        throws SQLException
    {
        return new DATE(_getLdxLib().ldxdfd(i, j));
    }

    // Decompiling method: fromText  Signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Loracle/sql/DATE;
    // Max stack: 6, #locals: 3, #params: 3
    // Code length: 19 bytes, Code offset: 7148
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name s Type Ljava/lang/String; At 0 19 Range 0 18 Init 0
    // Parameter  1 added: Name s1 Type Ljava/lang/String; At 0 19 Range 0 18 Init 0
    // Parameter  2 added: Name s2 Type Ljava/lang/String; At 0 19 Range 0 18 Init 0
    // RetValue   3 added: Name <returnValue> Type Loracle/sql/DATE; At 0 19 Range 0 18 Init 0 fixed
    public static DATE fromText(String s, String s1, String s2)
        throws SQLException
    {
        return new DATE(_getLdxLib().ldxstd(s, s1, s2));
    }

    // Decompiling method: getCurrentDate  Signature: ()Loracle/sql/DATE;
    // Max stack: 3, #locals: 0, #params: 0
    // Code length: 16 bytes, Code offset: 7215
    // Line Number Table found: 1 entries
    // RetValue   0 added: Name <returnValue> Type Loracle/sql/DATE; At 0 16 Range 0 15 Init 0 fixed
    public static DATE getCurrentDate()
        throws SQLException
    {
        return new DATE(_getLdxLib().ldxgdt());
    }

    // Decompiling method: isConvertibleTo  Signature: (Ljava/lang/Class;)Z
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 52 bytes, Code offset: 7279
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 52 Range 0 51 Init 0 fixed
    // Parameter  1 added: Name class1 Type Ljava/lang/Class; At 0 52 Range 0 51 Init 0
    // RetValue   2 added: Name <returnValue> Type Z At 0 52 Range 0 51 Init 0 fixed
    public boolean isConvertibleTo(Class class1)
    {
        return class1.getName().compareTo("java.sql.Date") == 0 || class1.getName().compareTo("java.sql.Time") == 0 || class1.getName().compareTo("java.sql.Timestamp") == 0 || class1.getName().compareTo("java.lang.String") == 0;
    }

    // Decompiling method: lastDayOfMonth  Signature: ()Loracle/sql/DATE;
    // Max stack: 4, #locals: 1, #params: 1
    // Code length: 20 bytes, Code offset: 7389
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 20 Range 0 19 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Loracle/sql/DATE; At 0 20 Range 0 19 Init 0 fixed
    public DATE lastDayOfMonth()
        throws SQLException
    {
        return new DATE(_getLdxLib().ldxldd(shareBytes()));
    }

    // Decompiling method: makeJdbcArray  Signature: (I)Ljava/lang/Object;
    // Max stack: 1, #locals: 3, #params: 2
    // Code length: 7 bytes, Code offset: 7457
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 7 Range 0 6 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 7 Range 0 6 Init 0
    // RetValue   3 added: Name <returnValue> Type Ljava/lang/Object; At 0 7 Range 0 6 Init 0 fixed
    // LocalVar   2 added: Name atimestamp Type [Ljava/sql/Timestamp; At 4 2 Range 4 5 Init 4
    public Object makeJdbcArray(int i)
    {
        Timestamp atimestamp[] = new Timestamp[i];
        return atimestamp;
    }

    // Decompiling method: numberToJulianDays  Signature: (Loracle/sql/NUMBER;[I[I)V
    // Max stack: 4, #locals: 3, #params: 3
    // Code length: 15 bytes, Code offset: 7506
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name number Type Loracle/sql/NUMBER; At 0 15 Range 0 14 Init 0
    // Parameter  1 added: Name ai Type [I At 0 15 Range 0 14 Init 0
    // Parameter  2 added: Name ai1 Type [I At 0 15 Range 0 14 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 15 Range 0 14 Init 0 fixed
    public static void numberToJulianDays(NUMBER number, int ai[], int ai1[])
        throws SQLException
    {
        _getLdxLib().ldxftd(number.toBytes(), ai, ai1);
        return;
    }

    // Decompiling method: parseFormat  Signature: (Ljava/lang/String;Ljava/lang/String;)[B
    // Max stack: 3, #locals: 2, #params: 2
    // Code length: 11 bytes, Code offset: 7573
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name s Type Ljava/lang/String; At 0 11 Range 0 10 Init 0
    // Parameter  1 added: Name s1 Type Ljava/lang/String; At 0 11 Range 0 10 Init 0
    // RetValue   2 added: Name <returnValue> Type [B At 0 11 Range 0 10 Init 0 fixed
    public static byte[] parseFormat(String s, String s1)
        throws SQLException
    {
        return _getLdxLib().ldxsto(s, s1);
    }

    // Decompiling method: round  Signature: (Ljava/lang/String;)Loracle/sql/DATE;
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 21 bytes, Code offset: 7632
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 21 Range 0 20 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; At 0 21 Range 0 20 Init 0
    // RetValue   2 added: Name <returnValue> Type Loracle/sql/DATE; At 0 21 Range 0 20 Init 0 fixed
    public DATE round(String s)
        throws SQLException
    {
        return new DATE(_getLdxLib().ldxrnd(shareBytes(), s));
    }

    // Decompiling method: setDayOfWeek  Signature: (I)Loracle/sql/DATE;
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 21 bytes, Code offset: 7701
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 21 Range 0 20 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 21 Range 0 20 Init 0
    // RetValue   2 added: Name <returnValue> Type Loracle/sql/DATE; At 0 21 Range 0 20 Init 0 fixed
    public DATE setDayOfWeek(int i)
        throws SQLException
    {
        return new DATE(_getLdxLib().ldxnxd(shareBytes(), i));
    }

    // Decompiling method: stringValue  Signature: ()Ljava/lang/String;
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 8 bytes, Code offset: 7770
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 8 Range 0 7 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/lang/String; At 0 8 Range 0 7 Init 0 fixed
    public String stringValue()
    {
        return toString(getBytes());
    }

    // Decompiling method: timeValue  Signature: ()Ljava/sql/Time;
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 8 bytes, Code offset: 7816
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 8 Range 0 7 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/sql/Time; At 0 8 Range 0 7 Init 0 fixed
    public Time timeValue()
    {
        return toTime(getBytes());
    }

    // Decompiling method: timeValue  Signature: (Ljava/util/Calendar;)Ljava/sql/Time;
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 9 bytes, Code offset: 7862
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 9 Range 0 8 Init 0 fixed
    // Parameter  1 added: Name calendar Type Ljava/util/Calendar; At 0 9 Range 0 8 Init 0
    // RetValue   2 added: Name <returnValue> Type Ljava/sql/Time; At 0 9 Range 0 8 Init 0 fixed
    public Time timeValue(Calendar calendar)
    {
        return toTime(getBytes(), calendar);
    }

    // Decompiling method: timestampValue  Signature: ()Ljava/sql/Timestamp;
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 8 bytes, Code offset: 7909
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 8 Range 0 7 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/sql/Timestamp; At 0 8 Range 0 7 Init 0 fixed
    public Timestamp timestampValue()
    {
        return toTimestamp(getBytes());
    }

    // Decompiling method: timestampValue  Signature: (Ljava/util/Calendar;)Ljava/sql/Timestamp;
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 9 bytes, Code offset: 7955
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 9 Range 0 8 Init 0 fixed
    // Parameter  1 added: Name calendar Type Ljava/util/Calendar; At 0 9 Range 0 8 Init 0
    // RetValue   2 added: Name <returnValue> Type Ljava/sql/Timestamp; At 0 9 Range 0 8 Init 0 fixed
    public Timestamp timestampValue(Calendar calendar)
    {
        return toTimestamp(getBytes(), calendar);
    }

    // Decompiling method: toBytes  Signature: ()[B
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 5 bytes, Code offset: 8002
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; 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[] toBytes()
    {
        return getBytes();
    }

    // Decompiling method: toBytes  Signature: (Ljava/lang/String;)[B
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 8 bytes, Code offset: 8045
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name s Type Ljava/lang/String; At 0 8 Range 0 7 Init 0
    // RetValue   1 added: Name <returnValue> Type [B At 0 8 Range 0 7 Init 0 fixed
    public static byte[] toBytes(String s)
    {
        return toBytes(Timestamp.valueOf(s));
    }

    // Decompiling method: toBytes  Signature: (Ljava/lang/String;Ljava/util/Calendar;)[B
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 9 bytes, Code offset: 8091
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name s Type Ljava/lang/String; At 0 9 Range 0 8 Init 0
    // Parameter  1 added: Name calendar Type Ljava/util/Calendar; At 0 9 Range 0 8 Init 0
    // RetValue   2 added: Name <returnValue> Type [B At 0 9 Range 0 8 Init 0 fixed
    public static byte[] toBytes(String s, Calendar calendar)
    {
        return toBytes(Timestamp.valueOf(s), calendar);
    }

    // Decompiling method: toBytes  Signature: (Ljava/sql/Date;)[B
    // Max stack: 4, #locals: 4, #params: 1
    // Code length: 96 bytes, Code offset: 8138
    // Line Number Table found: 16 entries
    // Parameter  0 added: Name date Type Ljava/sql/Date; At 0 96 Range 0 95 Init 0
    // RetValue   4 added: Name <returnValue> Type [B At 0 96 Range 0 95 Init 0 fixed
    // LocalVar   1 added: Name abyte0 Type [B At 10 85 Range 10 94 Init 10
    // LocalVar   2 added: Name calendar Type Ljava/util/Calendar; At 14 61 Range 14 74 Init 14
    // LocalVar   3 added: Name i Type I At 25 28 Range 25 52 Init 25
    public static byte[] toBytes(Date date)
    {
        if(date == null)
        {
            return null;
        }
        byte abyte0[] = new byte[7];
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        int i = calendar.get(1);
        if(calendar.get(0) == 0)
        {
            i = -(i - 1);
        }
        abyte0[0] = (byte)(i / 100 + 100);
        abyte0[1] = (byte)(i % 100 + 100);
        abyte0[2] = (byte)(calendar.get(2) + 1);
        abyte0[3] = (byte)calendar.get(5);
        abyte0[4] = 1;
        abyte0[5] = 1;
        abyte0[6] = 1;
        return abyte0;
    }

    // Decompiling method: toBytes  Signature: (Ljava/sql/Date;Ljava/util/Calendar;)[B
    // Max stack: 4, #locals: 4, #params: 2
    // Code length: 104 bytes, Code offset: 8332
    // Line Number Table found: 18 entries
    // Parameter  0 added: Name date Type Ljava/sql/Date; At 0 104 Range 0 103 Init 0
    // Parameter  1 added: Name calendar Type Ljava/util/Calendar; At 0 104 Range 0 103 Init 0
    // RetValue   4 added: Name <returnValue> Type [B At 0 104 Range 0 103 Init 0 fixed
    // LocalVar   2 added: Name abyte0 Type [B At 27 76 Range 27 102 Init 27
    // LocalVar   3 added: Name i Type I At 33 28 Range 33 60 Init 33
    public static byte[] toBytes(Date date, Calendar calendar)
    {
        if(date == null)
        {
            return null;
        }
        if(calendar == null)
        {
            calendar = Calendar.getInstance();
        }
        calendar.clear();
        calendar.setTime(date);
        byte abyte0[] = new byte[7];
        int i = calendar.get(1);
        if(calendar.get(0) == 0)
        {
            i = -(i - 1);
        }
        abyte0[0] = (byte)(i / 100 + 100);
        abyte0[1] = (byte)(i % 100 + 100);
        abyte0[2] = (byte)(calendar.get(2) + 1);
        abyte0[3] = (byte)calendar.get(5);
        abyte0[4] = 1;
        abyte0[5] = 1;
        abyte0[6] = 1;
        return abyte0;
    }

    // Decompiling method: toBytes  Signature: (Ljava/sql/Time;)[B
    // Max stack: 4, #locals: 4, #params: 1
    // Code length: 83 bytes, Code offset: 8542
    // Line Number Table found: 14 entries
    // Parameter  0 added: Name time Type Ljava/sql/Time; At 0 83 Range 0 82 Init 0
    // RetValue   4 added: Name <returnValue> Type [B At 0 83 Range 0 82 Init 0 fixed
    // LocalVar   1 added: Name abyte0 Type [B At 10 72 Range 10 81 Init 10
    // LocalVar   2 added: Name calendar Type Ljava/util/Calendar; At 14 58 Range 14 71 Init 14
    // LocalVar   3 added: Name i Type I At 25 1 Range 25 25 Init 25
    public static byte[] toBytes(Time time)
    {
        if(time == null)
        {
            return null;
        } else
        {
            byte abyte0[] = new byte[7];
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(time);
            int i = calendar.get(1);
            abyte0[0] = 119;
            abyte0[1] = 100;
            abyte0[2] = 1;
            abyte0[3] = 1;
            abyte0[4] = (byte)(calendar.get(11) + 1);
            abyte0[5] = (byte)(calendar.get(12) + 1);
            abyte0[6] = (byte)(calendar.get(13) + 1);
            return abyte0;
        }
    }

    // Decompiling method: toBytes  Signature: (Ljava/sql/Time;Ljava/util/Calendar;)[B
    // Max stack: 4, #locals: 3, #params: 2
    // Code length: 85 bytes, Code offset: 8715
    // Line Number Table found: 15 entries
    // Parameter  0 added: Name time Type Ljava/sql/Time; At 0 85 Range 0 84 Init 0
    // Parameter  1 added: Name calendar Type Ljava/util/Calendar; At 0 85 Range 0 84 Init 0
    // RetValue   3 added: Name <returnValue> Type [B At 0 85 Range 0 84 Init 0 fixed
    // LocalVar   2 added: Name abyte0 Type [B At 27 57 Range 27 83 Init 27
    public static byte[] toBytes(Time time, Calendar calendar)
    {
        if(time == null)
        {
            return null;
        }
        if(calendar == null)
        {
            calendar = Calendar.getInstance();
        }
        calendar.clear();
        calendar.setTime(time);
        byte abyte0[] = new byte[7];
        abyte0[0] = 119;
        abyte0[1] = 100;
        abyte0[2] = 1;
        abyte0[3] = 1;
        abyte0[4] = (byte)(calendar.get(11) + 1);
        abyte0[5] = (byte)(calendar.get(12) + 1);
        abyte0[6] = (byte)(calendar.get(13) + 1);
        return abyte0;
    }

    // Decompiling method: toBytes  Signature: (Ljava/sql/Timestamp;)[B
    // Max stack: 4, #locals: 4, #params: 1
    // Code length: 120 bytes, Code offset: 8894
    // Line Number Table found: 16 entries
    // Parameter  0 added: Name timestamp Type Ljava/sql/Timestamp; At 0 120 Range 0 119 Init 0
    // RetValue   4 added: Name <returnValue> Type [B At 0 120 Range 0 119 Init 0 fixed
    // LocalVar   1 added: Name abyte0 Type [B At 10 109 Range 10 118 Init 10
    // LocalVar   2 added: Name calendar Type Ljava/util/Calendar; At 14 95 Range 14 108 Init 14
    // LocalVar   3 added: Name i Type I At 25 28 Range 25 52 Init 25
    public static byte[] toBytes(Timestamp timestamp)
    {
        if(timestamp == null)
        {
            return null;
        }
        byte abyte0[] = new byte[7];
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(timestamp);
        int i = calendar.get(1);
        if(calendar.get(0) == 0)
        {
            i = -(i - 1);
        }
        abyte0[0] = (byte)(i / 100 + 100);
        abyte0[1] = (byte)(i % 100 + 100);
        abyte0[2] = (byte)(calendar.get(2) + 1);
        abyte0[3] = (byte)calendar.get(5);
        abyte0[4] = (byte)(calendar.get(11) + 1);
        abyte0[5] = (byte)(calendar.get(12) + 1);
        abyte0[6] = (byte)(calendar.get(13) + 1);
        return abyte0;
    }

    // Decompiling method: toBytes  Signature: (Ljava/sql/Timestamp;Ljava/util/Calendar;)[B
    // Max stack: 4, #locals: 4, #params: 2
    // Code length: 128 bytes, Code offset: 9112
    // Line Number Table found: 18 entries
    // Parameter  0 added: Name timestamp Type Ljava/sql/Timestamp; At 0 128 Range 0 127 Init 0
    // Parameter  1 added: Name calendar Type Ljava/util/Calendar; At 0 128 Range 0 127 Init 0
    // RetValue   4 added: Name <returnValue> Type [B At 0 128 Range 0 127 Init 0 fixed
    // LocalVar   2 added: Name abyte0 Type [B At 27 100 Range 27 126 Init 27
    // LocalVar   3 added: Name i Type I At 33 28 Range 33 60 Init 33
    public static byte[] toBytes(Timestamp timestamp, Calendar calendar)
    {
        if(timestamp == null)
        {
            return null;
        }
        if(calendar == null)
        {
            calendar = Calendar.getInstance();
        }
        calendar.clear();
        calendar.setTime(timestamp);
        byte abyte0[] = new byte[7];
        int i = calendar.get(1);
        if(calendar.get(0) == 0)
        {
            i = -(i - 1);
        }
        abyte0[0] = (byte)(i / 100 + 100);
        abyte0[1] = (byte)(i % 100 + 100);
        abyte0[2] = (byte)(calendar.get(2) + 1);
        abyte0[3] = (byte)calendar.get(5);
        abyte0[4] = (byte)(calendar.get(11) + 1);
        abyte0[5] = (byte)(calendar.get(12) + 1);
        abyte0[6] = (byte)(calendar.get(13) + 1);
        return abyte0;
    }

    // Decompiling method: toDate  Signature: ([B)Ljava/sql/Date;
    // Max stack: 6, #locals: 4, #params: 1
    // Code length: 67 bytes, Code offset: 9346
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name abyte0 Type [B At 0 67 Range 0 66 Init 0
    // RetValue   4 added: Name <returnValue> Type Ljava/sql/Date; At 0 67 Range 0 66 Init 0 fixed
    // LocalVar   1 added: Name ai Type [I At 4 57 Range 4 60 Init 4
    // LocalVar   2 added: Name flag Type Z At 6 18 Range 6 23 Init 6
    // LocalVar   2 chged: Name i Oname flag Type I At 23 1 Range 6 23 Init 6
    // LocalVar   3 added: Name j Type I At 49 6 Range 49 54 Init 49
    public static Date toDate(byte abyte0[])
    {
        int ai[] = new int[7];
        for(int i = 0; i < 7; i++)
        {
            ai[i] = abyte0[i] & 0xff;
        }

        int j = ((ai[0] - 100) * 100 + (ai[1] - 100)) - 1900;
        return new Date(j, ai[2] - 1, ai[3]);
    }

    // Decompiling method: toDate  Signature: ([BLjava/util/Calendar;)Ljava/sql/Date;
    // Max stack: 4, #locals: 7, #params: 2
    // Code length: 150 bytes, Code offset: 9471
    // Line Number Table found: 20 entries
    // Parameter  0 added: Name abyte0 Type [B At 0 150 Range 0 149 Init 0
    // Parameter  1 added: Name calendar Type Ljava/util/Calendar; At 0 150 Range 0 149 Init 0
    // RetValue   7 added: Name <returnValue> Type Ljava/sql/Date; At 0 150 Range 0 149 Init 0 fixed
    // LocalVar   2 added: Name ai Type [I At 4 90 Range 4 93 Init 4
    // LocalVar   3 added: Name timezone Type Ljava/util/TimeZone; At 8 136 Range 8 143 Init 8
    // LocalVar   4 added: Name flag Type Z At 10 22 Range 10 31 Init 10
    // LocalVar   4 chged: Name i Oname flag Type I At 30 2 Range 10 31 Init 10
    // LocalVar   5 added: Name j Type I At 53 25 Range 53 77 Init 53
    // LocalVar   6 added: Name date Type Ljava/sql/Date; At 141 8 Range 141 148 Init 141
    public static Date toDate(byte abyte0[], Calendar calendar)
    {
        int ai[] = new int[7];
        TimeZone timezone = TimeZone.getDefault();
        for(int i = 0; i < 7; i++)
        {
            ai[i] = abyte0[i] & 0xff;
        }

        int j = (ai[0] - 100) * 100 + (ai[1] - 100);
        if(calendar == null)
        {
            calendar = Calendar.getInstance();
        }
        TimeZone.setDefault(calendar.getTimeZone());
        calendar.clear();
        calendar.set(1, j);
        calendar.set(2, ai[2] - 1);
        calendar.set(5, ai[3]);
        calendar.set(11, 0);
        calendar.set(12, 0);
        calendar.set(13, 0);
        calendar.set(14, 0);
        Date date = new Date(calendar.getTime().getTime());
        TimeZone.setDefault(timezone);
        return date;
    }

    // Decompiling method: toJdbc  Signature: ()Ljava/lang/Object;
    // Max stack: 1, #locals: 1, #params: 1
    // Code length: 5 bytes, Code offset: 9735
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 5 Range 0 4 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Ljava/lang/Object; At 0 5 Range 0 4 Init 0 fixed
    public Object toJdbc()
    {
        return timestampValue();
    }

    // Decompiling method: toJulianDays  Signature: ([I[I)V
    // Max stack: 4, #locals: 3, #params: 3
    // Code length: 15 bytes, Code offset: 9778
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 15 Range 0 14 Init 0 fixed
    // Parameter  1 added: Name ai Type [I At 0 15 Range 0 14 Init 0
    // Parameter  2 added: Name ai1 Type [I At 0 15 Range 0 14 Init 0
    // RetValue   3 added: Name <returnValue> Type V At 0 15 Range 0 14 Init 0 fixed
    public void toJulianDays(int ai[], int ai1[])
        throws SQLException
    {
        _getLdxLib().ldxdtd(shareBytes(), ai, ai1);
        return;
    }

    // Decompiling method: toNumber  Signature: ()Loracle/sql/NUMBER;
    // Max stack: 4, #locals: 1, #params: 1
    // Code length: 20 bytes, Code offset: 9845
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 20 Range 0 19 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type Loracle/sql/NUMBER; At 0 20 Range 0 19 Init 0 fixed
    public NUMBER toNumber()
        throws SQLException
    {
        return new NUMBER(_getLdxLib().ldxdyf(shareBytes()));
    }

    // Decompiling method: toString  Signature: ([B)Ljava/lang/String;
    // Max stack: 4, #locals: 4, #params: 1
    // Code length: 158 bytes, Code offset: 9913
    // Line Number Table found: 18 entries
    // Parameter  0 added: Name abyte0 Type [B At 0 158 Range 0 157 Init 0
    // RetValue   4 added: Name <returnValue> Type Ljava/lang/String; At 0 158 Range 0 157 Init 0 fixed
    // LocalVar   1 added: Name ai Type [I At 4 144 Range 4 147 Init 4
    // LocalVar   2 added: Name flag Type Z At 6 33 Range 6 38 Init 6
    // LocalVar   2 chged: Name i Oname flag Type I At 38 1 Range 6 38 Init 6
    // LocalVar   3 added: Name j Type I At 86 31 Range 86 116 Init 86
    public static String toString(byte abyte0[])
    {
        int ai[] = new int[7];
        for(int i = 0; i < 7; i++)
        {
            if(abyte0[i] < 0)
            {
                ai[i] = abyte0[i] + 256;
            } else
            {
                ai[i] = abyte0[i];
            }
        }

        ai[4] = ai[4] - 1;
        ai[5] = ai[5] - 1;
        ai[6] = ai[6] - 1;
        int j = (ai[0] - 100) * 100 + (ai[1] - 100);
        return ai[2] + "/" + ai[3] + "/" + j + " " + ai[4] + ":" + ai[5] + ":" + ai[6];
    }

    // Decompiling method: toText  Signature: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    // Max stack: 4, #locals: 3, #params: 3
    // Code length: 15 bytes, Code offset: 10177
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 15 Range 0 14 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; At 0 15 Range 0 14 Init 0
    // Parameter  2 added: Name s1 Type Ljava/lang/String; At 0 15 Range 0 14 Init 0
    // RetValue   3 added: Name <returnValue> Type Ljava/lang/String; At 0 15 Range 0 14 Init 0 fixed
    public String toText(String s, String s1)
        throws SQLException
    {
        return _getLdxLib().ldxdts(shareBytes(), s, s1);
    }

    // Decompiling method: toText  Signature: ([BLjava/lang/String;)Ljava/lang/String;
    // Max stack: 4, #locals: 3, #params: 3
    // Code length: 15 bytes, Code offset: 10240
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 15 Range 0 14 Init 0 fixed
    // Parameter  1 added: Name abyte0 Type [B At 0 15 Range 0 14 Init 0
    // Parameter  2 added: Name s Type Ljava/lang/String; At 0 15 Range 0 14 Init 0
    // RetValue   3 added: Name <returnValue> Type Ljava/lang/String; At 0 15 Range 0 14 Init 0 fixed
    public String toText(byte abyte0[], String s)
        throws SQLException
    {
        return _getLdxLib().ldxdts(shareBytes(), abyte0, s);
    }

    // Decompiling method: toTime  Signature: ([B)Ljava/sql/Time;
    // Max stack: 6, #locals: 3, #params: 1
    // Code length: 53 bytes, Code offset: 10303
    // Line Number Table found: 7 entries
    // Parameter  0 added: Name abyte0 Type [B At 0 53 Range 0 52 Init 0
    // RetValue   3 added: Name <returnValue> Type Ljava/sql/Time; At 0 53 Range 0 52 Init 0 fixed
    // LocalVar   1 added: Name ai Type [I At 4 40 Range 4 43 Init 4
    // LocalVar   2 added: Name flag Type Z At 6 18 Range 6 23 Init 6
    // LocalVar   2 chged: Name i Oname flag Type I At 23 1 Range 6 23 Init 6
    public static Time toTime(byte abyte0[])
    {
        int ai[] = new int[7];
        for(int i = 0; i < 7; i++)
        {
            ai[i] = abyte0[i] & 0xff;
        }

        return new Time(ai[4] - 1, ai[5] - 1, ai[6] - 1);
    }

    // Decompiling method: toTime  Signature: ([BLjava/util/Calendar;)Ljava/sql/Time;
    // Max stack: 4, #locals: 7, #params: 2
    // Code length: 158 bytes, Code offset: 10418
    // Line Number Table found: 20 entries
    // Parameter  0 added: Name abyte0 Type [B At 0 158 Range 0 157 Init 0
    // Parameter  1 added: Name calendar Type Ljava/util/Calendar; At 0 158 Range 0 157 Init 0
    // RetValue   7 added: Name <returnValue> Type Ljava/sql/Time; At 0 158 Range 0 157 Init 0 fixed
    // LocalVar   2 added: Name ai Type [I At 4 116 Range 4 119 Init 4
    // LocalVar   3 added: Name timezone Type Ljava/util/TimeZone; At 8 144 Range 8 151 Init 8
    // LocalVar   4 added: Name flag Type Z At 10 22 Range 10 31 Init 10
    // LocalVar   4 chged: Name i Oname flag Type I At 30 2 Range 10 31 Init 10
    // LocalVar   5 added: Name j Type I At 53 2 Range 53 54 Init 53
    // LocalVar   6 added: Name time Type Ljava/sql/Time; At 149 8 Range 149 156 Init 149
    public static Time toTime(byte abyte0[], Calendar calendar)
    {
        int ai[] = new int[7];
        TimeZone timezone = TimeZone.getDefault();
        for(int i = 0; i < 7; i++)
        {
            ai[i] = abyte0[i] & 0xff;
        }

        int j = (ai[0] - 100) * 100 + (ai[1] - 100);
        if(calendar == null)
        {
            calendar = Calendar.getInstance();
        }
        TimeZone.setDefault(calendar.getTimeZone());
        calendar.clear();
        calendar.set(1, 1970);
        calendar.set(2, 0);
        calendar.set(5, 1);
        calendar.set(11, ai[4] - 1);
        calendar.set(12, ai[5] - 1);
        calendar.set(13, ai[6] - 1);
        calendar.set(14, 0);
        Time time = new Time(calendar.getTime().getTime());
        TimeZone.setDefault(timezone);
        return time;
    }

    // Decompiling method: toTimestamp  Signature: ([B)Ljava/sql/Timestamp;
    // Max stack: 9, #locals: 4, #params: 1
    // Code length: 84 bytes, Code offset: 10690
    // Line Number Table found: 9 entries
    // Parameter  0 added: Name abyte0 Type [B At 0 84 Range 0 83 Init 0
    // RetValue   4 added: Name <returnValue> Type Ljava/sql/Timestamp; At 0 84 Range 0 83 Init 0 fixed
    // LocalVar   1 added: Name ai Type [I At 4 70 Range 4 73 Init 4
    // LocalVar   2 added: Name flag Type Z At 6 18 Range 6 23 Init 6
    // LocalVar   2 chged: Name i Oname flag Type I At 23 1 Range 6 23 Init 6
    // LocalVar   3 added: Name j Type I At 49 6 Range 49 54 Init 49
    public static Timestamp toTimestamp(byte abyte0[])
    {
        int ai[] = new int[7];
        for(int i = 0; i < 7; i++)
        {
            ai[i] = abyte0[i] & 0xff;
        }

        int j = ((ai[0] - 100) * 100 + (ai[1] - 100)) - 1900;
        return new Timestamp(j, ai[2] - 1, ai[3], ai[4] - 1, ai[5] - 1, ai[6] - 1, 0);
    }

    // Decompiling method: toTimestamp  Signature: ([BLjava/util/Calendar;)Ljava/sql/Timestamp;
    // Max stack: 4, #locals: 7, #params: 2
    // Code length: 163 bytes, Code offset: 10844
    // Line Number Table found: 21 entries
    // Parameter  0 added: Name abyte0 Type [B At 0 163 Range 0 162 Init 0
    // Parameter  1 added: Name calendar Type Ljava/util/Calendar; At 0 163 Range 0 162 Init 0
    // RetValue   7 added: Name <returnValue> Type Ljava/sql/Timestamp; At 0 163 Range 0 162 Init 0 fixed
    // LocalVar   2 added: Name ai Type [I At 4 121 Range 4 124 Init 4
    // LocalVar   3 added: Name timezone Type Ljava/util/TimeZone; At 8 149 Range 8 156 Init 8
    // LocalVar   4 added: Name flag Type Z At 10 22 Range 10 31 Init 10
    // LocalVar   4 chged: Name i Oname flag Type I At 30 2 Range 10 31 Init 10
    // LocalVar   5 added: Name j Type I At 53 25 Range 53 77 Init 53
    // LocalVar   6 added: Name timestamp Type Ljava/sql/Timestamp; At 154 8 Range 154 161 Init 154
    public static Timestamp toTimestamp(byte abyte0[], Calendar calendar)
    {
        int ai[] = new int[7];
        TimeZone timezone = TimeZone.getDefault();
        for(int i = 0; i < 7; i++)
        {
            ai[i] = abyte0[i] & 0xff;
        }

        int j = (ai[0] - 100) * 100 + (ai[1] - 100);
        if(calendar == null)
        {
            calendar = Calendar.getInstance();
        }
        TimeZone.setDefault(calendar.getTimeZone());
        calendar.clear();
        calendar.set(1, j);
        calendar.set(2, ai[2] - 1);
        calendar.set(5, ai[3]);
        calendar.set(11, ai[4] - 1);
        calendar.set(12, ai[5] - 1);
        calendar.set(13, ai[6] - 1);
        calendar.set(14, 0);
        Timestamp timestamp = new Timestamp(calendar.getTime().getTime());
        TimeZone.setDefault(timezone);
        return timestamp;
    }

    // Decompiling method: truncate  Signature: (Ljava/lang/String;)Loracle/sql/DATE;
    // Max stack: 5, #locals: 2, #params: 2
    // Code length: 21 bytes, Code offset: 11125
    // Line Number Table found: 1 entries
    // Parameter  0 added: Name this Type Loracle/sql/DATE; At 0 21 Range 0 20 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; At 0 21 Range 0 20 Init 0
    // RetValue   2 added: Name <returnValue> Type Loracle/sql/DATE; At 0 21 Range 0 20 Init 0 fixed
    public DATE truncate(String s)
        throws SQLException
    {
        return new DATE(_getLdxLib().ldxtrn(shareBytes(), s));
    }
}
