FOREIGN MODULE sun_util_calendar;

IMPORT
    java_lang := "java.lang",
    java_util := "java.util",
    java_util_concurrent := "java.util.concurrent",
    java_security := "java.security",
    java_lang_ref := "java.lang.ref",
    java_io := "java.io";

TYPE

  AbstractCalendar* = POINTER TO ABSTRACT RECORD (CalendarSystem)    (* Typebound Procedures *)
                      STATIC
                        PROCEDURE getDayOfWeekDateOnOrBefore*(p0 : LONGINT;
                                                              p1 : INTEGER) : LONGINT;
                        PROCEDURE Init!() : AbstractCalendar,CONSTRUCTOR;
                      END;

  BaseCalendar* = POINTER TO ABSTRACT RECORD (AbstractCalendar)    (* Typebound Procedures *)
                  STATIC
                    APRIL*                     = 4;
                    AUGUST*                    = 8;
                    DECEMBER*                  = 12;
                    FEBRUARY*                  = 2;
                    FRIDAY*                    = 6;
                    JANUARY*                   = 1;
                    JULY*                      = 7;
                    JUNE*                      = 6;
                    MARCH*                     = 3;
                    MAY*                       = 5;
                    MONDAY*                    = 2;
                    NOVEMBER*                  = 11;
                    OCTOBER*                   = 10;
                    SATURDAY*                  = 7;
                    SEPTEMBER*                 = 9;
                    SUNDAY*                    = 1;
                    THURSDAY*                  = 5;
                    TUESDAY*                   = 3;
                    WEDNESDAY*                 = 4;
                    PROCEDURE getDayOfWeekFromFixedDate*(p0 : LONGINT) : INTEGER;
                    PROCEDURE Init*() : BaseCalendar,CONSTRUCTOR;
                  END;

  BaseCalendar$Date* = POINTER TO ABSTRACT RECORD (CalendarDate)    (* Typebound Procedures *)
                       STATIC
                         PROCEDURE Init!(p0 : java_util.TimeZone) : BaseCalendar$Date,CONSTRUCTOR;
                         PROCEDURE Init!() : BaseCalendar$Date,CONSTRUCTOR;
                       END;

  CalendarDate* = POINTER TO ABSTRACT RECORD (java_lang.Object + java_lang.Cloneable)    (* Typebound Procedures *)
                  STATIC
                    FIELD_UNDEFINED* = -2147483648;
                    TIME_UNDEFINED*  = -9223372036854775808;
                    PROCEDURE Init!(p0 : java_util.TimeZone) : CalendarDate,CONSTRUCTOR;
                    PROCEDURE Init!() : CalendarDate,CONSTRUCTOR;
                  END;

  CalendarSystem* = POINTER TO ABSTRACT RECORD (java_lang.Object)    (* Typebound Procedures *)
                    STATIC
                      PROCEDURE forName*(p0 : java_lang.String) : CalendarSystem;
                      PROCEDURE getGregorianCalendar*() : Gregorian;
                      PROCEDURE Init*() : CalendarSystem,CONSTRUCTOR;
                    END;

  CalendarUtils* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)
                   STATIC
                     PROCEDURE amod*(p0 : INTEGER;
                                     p1 : INTEGER) : INTEGER;
                     PROCEDURE amod*(p0 : LONGINT;
                                     p1 : LONGINT) : LONGINT;
                     PROCEDURE floorDivide*(    p0 : INTEGER;
                                                p1 : INTEGER;
                                            IN  p2 : ARRAY OF INTEGER) : INTEGER;
                     PROCEDURE floorDivide*(    p0 : LONGINT;
                                                p1 : INTEGER;
                                            IN  p2 : ARRAY OF INTEGER) : INTEGER;
                     PROCEDURE floorDivide*(p0 : INTEGER;
                                            p1 : INTEGER) : INTEGER;
                     PROCEDURE floorDivide*(p0 : LONGINT;
                                            p1 : LONGINT) : LONGINT;
                     PROCEDURE Init*() : CalendarUtils,CONSTRUCTOR;
                     PROCEDURE isGregorianLeapYear*(p0 : INTEGER) : BOOLEAN;
                     PROCEDURE isJulianLeapYear*(p0 : INTEGER) : BOOLEAN;
                     PROCEDURE mod*(p0 : LONGINT;
                                    p1 : LONGINT) : LONGINT;
                     PROCEDURE mod*(p0 : INTEGER;
                                    p1 : INTEGER) : INTEGER;
                     PROCEDURE sprintf0d*(p0 : java_lang.StringBuffer;
                                          p1 : INTEGER;
                                          p2 : INTEGER) : java_lang.StringBuffer;
                     PROCEDURE sprintf0d*(p0 : java_lang.StringBuilder;
                                          p1 : INTEGER;
                                          p2 : INTEGER) : java_lang.StringBuilder;
                   END;

  Era* = POINTER TO RECORD (java_lang.Object)    (* Typebound Procedures *)
         STATIC
           PROCEDURE Init*(p0 : java_lang.String;
                           p1 : java_lang.String;
                           p2 : LONGINT;
                           p3 : BOOLEAN) : Era,CONSTRUCTOR;
         END;

  Gregorian* = POINTER TO EXTENSIBLE RECORD (BaseCalendar)    (* Typebound Procedures *)
               END;

  JulianCalendar* = POINTER TO EXTENSIBLE RECORD (BaseCalendar)    (* Typebound Procedures *)
                    END;

  LocalGregorianCalendar* = POINTER TO EXTENSIBLE RECORD (BaseCalendar)    (* Typebound Procedures *)
                            END;

  LocalGregorianCalendar$Date* = POINTER TO EXTENSIBLE RECORD (BaseCalendar$Date)    (* Typebound Procedures *)
                                 STATIC
                                   PROCEDURE Init!(p0 : java_util.TimeZone) : LocalGregorianCalendar$Date,CONSTRUCTOR;
                                   PROCEDURE Init!() : LocalGregorianCalendar$Date,CONSTRUCTOR;
                                 END;

  ZoneInfo* = POINTER TO EXTENSIBLE RECORD (java_util.TimeZone)    (* Typebound Procedures *)
              STATIC
                PROCEDURE getAliasTable*() : java_util.Map;
                PROCEDURE getAvailableIDs*(p0 : INTEGER) : POINTER TO ARRAY OF java_lang.String;
                PROCEDURE getAvailableIDs*() : POINTER TO ARRAY OF java_lang.String;
                PROCEDURE getTimeZone*(p0 : java_lang.String) : java_util.TimeZone;
                PROCEDURE Init*() : ZoneInfo,CONSTRUCTOR;
                PROCEDURE Init*(p0 : java_lang.String;
                                p1 : INTEGER) : ZoneInfo,CONSTRUCTOR;
              END;

  ZoneInfoFile* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)
                  STATIC
                    JAVAZI_LABEL*            : POINTER TO ARRAY OF BYTE;
                    JAVAZI_VERSION*          = 1;
                    JAVAZM_FILE_NAME*        = "ZoneInfoMappings";
                    JAVAZM_LABEL*            : POINTER TO ARRAY OF BYTE;
                    JAVAZM_VERSION*          = 1;
                    TAG_CRC32*               = 3;
                    TAG_ExcludedZones*       = 69;
                    TAG_GMTOffsetWillChange* = 7;
                    TAG_LastDSTSaving*       = 2;
                    TAG_Offset*              = 5;
                    TAG_RawOffset*           = 1;
                    TAG_RawOffsetIndices*    = 66;
                    TAG_RawOffsets*          = 65;
                    TAG_SimpleTimeZone*      = 6;
                    TAG_Transition*          = 4;
                    TAG_TZDataVersion*       = 68;
                    TAG_ZoneAliases*         = 67;
                    TAG_ZoneIDs*             = 64;
                    PROCEDURE getCustomTimeZone*(p0 : java_lang.String;
                                                 p1 : INTEGER) : ZoneInfo;
                    PROCEDURE getFileName*(p0 : java_lang.String) : java_lang.String;
                    PROCEDURE getZoneInfo*(p0 : java_lang.String) : ZoneInfo;
                    PROCEDURE Init*() : ZoneInfoFile,CONSTRUCTOR;
                    PROCEDURE toCustomID*(p0 : INTEGER) : java_lang.String;
                  END;




PROCEDURE (self:AbstractCalendar) getCalendarDate*(p0 : LONGINT) : CalendarDate,EXTENSIBLE;

PROCEDURE (self:AbstractCalendar) getCalendarDate*() : CalendarDate,EXTENSIBLE;

PROCEDURE (self:AbstractCalendar) getCalendarDate*(p0 : LONGINT;
                                                   p1 : CalendarDate) : CalendarDate,EXTENSIBLE;

PROCEDURE (self:AbstractCalendar) getCalendarDate*(p0 : LONGINT;
                                                   p1 : java_util.TimeZone) : CalendarDate,EXTENSIBLE;

PROCEDURE (self:AbstractCalendar) getCalendarDateFromFixedDate!(p0 : CalendarDate;
                                                                p1 : LONGINT),NEW,ABSTRACT;

PROCEDURE (self:AbstractCalendar) getEra*(p0 : java_lang.String) : Era,EXTENSIBLE;

PROCEDURE (self:AbstractCalendar) getEras*() : POINTER TO ARRAY OF Era,EXTENSIBLE;

PROCEDURE (self:AbstractCalendar) getFixedDate!(p0 : CalendarDate) : LONGINT,NEW,ABSTRACT;

PROCEDURE (self:AbstractCalendar) getNthDayOfWeek*(p0 : INTEGER;
                                                   p1 : INTEGER;
                                                   p2 : CalendarDate) : CalendarDate,EXTENSIBLE;

PROCEDURE (self:AbstractCalendar) getTime*(p0 : CalendarDate) : LONGINT,EXTENSIBLE;

PROCEDURE (self:AbstractCalendar) getTimeOfDay!(p0 : CalendarDate) : LONGINT,NEW,EXTENSIBLE;

PROCEDURE (self:AbstractCalendar) getTimeOfDayValue*(p0 : CalendarDate) : LONGINT,NEW,EXTENSIBLE;

PROCEDURE (self:AbstractCalendar) getWeekLength*() : INTEGER,EXTENSIBLE;

PROCEDURE (self:AbstractCalendar) isLeapYear!(p0 : CalendarDate) : BOOLEAN,NEW,ABSTRACT;

PROCEDURE (self:AbstractCalendar) setEra*(p0 : CalendarDate;
                                          p1 : java_lang.String),EXTENSIBLE;

PROCEDURE (self:AbstractCalendar) setEras!(IN  p0 : ARRAY OF Era),NEW,EXTENSIBLE;

PROCEDURE (self:AbstractCalendar) setTimeOfDay*(p0 : CalendarDate;
                                                p1 : INTEGER) : CalendarDate,EXTENSIBLE;

PROCEDURE (self:AbstractCalendar) validateTime*(p0 : CalendarDate) : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:BaseCalendar) getCalendarDateFromFixedDate*(p0 : CalendarDate;
                                                            p1 : LONGINT),EXTENSIBLE;

PROCEDURE (self:BaseCalendar) getDayOfWeek*(p0 : CalendarDate) : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:BaseCalendar) getDayOfYear*(p0 : CalendarDate) : LONGINT,NEW,EXTENSIBLE;

PROCEDURE (self:BaseCalendar) getFixedDate*(p0 : CalendarDate) : LONGINT,EXTENSIBLE;

PROCEDURE (self:BaseCalendar) getFixedDate*(p0 : INTEGER;
                                            p1 : INTEGER;
                                            p2 : INTEGER;
                                            p3 : BaseCalendar$Date) : LONGINT,NEW,EXTENSIBLE;

PROCEDURE (self:BaseCalendar) getMonthLength*(p0 : CalendarDate) : INTEGER,EXTENSIBLE;

PROCEDURE (self:BaseCalendar) getYearFromFixedDate*(p0 : LONGINT) : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:BaseCalendar) getYearLength*(p0 : CalendarDate) : INTEGER,EXTENSIBLE;

PROCEDURE (self:BaseCalendar) getYearLengthInMonths*(p0 : CalendarDate) : INTEGER,EXTENSIBLE;

PROCEDURE (self:BaseCalendar) isLeapYear!(p0 : CalendarDate) : BOOLEAN,EXTENSIBLE;

PROCEDURE (self:BaseCalendar) normalize*(p0 : CalendarDate) : BOOLEAN,EXTENSIBLE;

PROCEDURE (self:BaseCalendar) validate*(p0 : CalendarDate) : BOOLEAN,EXTENSIBLE;

PROCEDURE (self:BaseCalendar$Date) getCachedJan1!() : LONGINT,NEW,EXTENSIBLE;

PROCEDURE (self:BaseCalendar$Date) getCachedYear!() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:BaseCalendar$Date) getNormalizedYear*() : INTEGER,NEW,ABSTRACT;

PROCEDURE (self:BaseCalendar$Date) hit!(p0 : LONGINT) : BOOLEAN,NEW;

PROCEDURE (self:BaseCalendar$Date) hit!(p0 : INTEGER) : BOOLEAN,NEW;

PROCEDURE (self:BaseCalendar$Date) setCache!(p0 : INTEGER;
                                             p1 : LONGINT;
                                             p2 : INTEGER),NEW,EXTENSIBLE;

PROCEDURE (self:BaseCalendar$Date) setNormalizedDate*(p0 : INTEGER;
                                                      p1 : INTEGER;
                                                      p2 : INTEGER) : BaseCalendar$Date,NEW,EXTENSIBLE;

PROCEDURE (self:BaseCalendar$Date) setNormalizedYear*(p0 : INTEGER),NEW,ABSTRACT;

PROCEDURE (self:CalendarDate) addDate*(p0 : INTEGER;
                                       p1 : INTEGER;
                                       p2 : INTEGER) : CalendarDate,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) addDayOfMonth*(p0 : INTEGER) : CalendarDate,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) addHours*(p0 : INTEGER) : CalendarDate,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) addMillis*(p0 : INTEGER) : CalendarDate,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) addMinutes*(p0 : INTEGER) : CalendarDate,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) addMonth*(p0 : INTEGER) : CalendarDate,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) addSeconds*(p0 : INTEGER) : CalendarDate,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) addTimeOfDay*(p0 : INTEGER;
                                            p1 : INTEGER;
                                            p2 : INTEGER;
                                            p3 : INTEGER) : CalendarDate,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) addYear*(p0 : INTEGER) : CalendarDate,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) clone*() : java_lang.Object,EXTENSIBLE;

PROCEDURE (self:CalendarDate) equals*(p0 : java_lang.Object) : BOOLEAN,EXTENSIBLE;

PROCEDURE (self:CalendarDate) getDaylightSaving*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) getDayOfMonth*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) getDayOfWeek*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) getEra*() : Era,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) getHours*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) getMillis*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) getMinutes*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) getMonth*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) getSeconds*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) getTimeOfDay*() : LONGINT,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) getYear*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) getZone*() : java_util.TimeZone,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) getZoneOffset*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) hashCode*() : INTEGER,EXTENSIBLE;

PROCEDURE (self:CalendarDate) isDaylightTime*() : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) isLeapYear*() : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) isNormalized*() : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) isSameDate*(p0 : CalendarDate) : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) isStandardTime*() : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) setDate*(p0 : INTEGER;
                                       p1 : INTEGER;
                                       p2 : INTEGER) : CalendarDate,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) setDaylightSaving!(p0 : INTEGER),NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) setDayOfMonth*(p0 : INTEGER) : CalendarDate,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) setDayOfWeek!(p0 : INTEGER),NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) setEra*(p0 : Era) : CalendarDate,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) setHours*(p0 : INTEGER) : CalendarDate,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) setLocale!(p0 : java_util.Locale),NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) setMillis*(p0 : INTEGER) : CalendarDate,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) setMinutes*(p0 : INTEGER) : CalendarDate,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) setMonth*(p0 : INTEGER) : CalendarDate,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) setNormalized!(p0 : BOOLEAN),NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) setSeconds*(p0 : INTEGER) : CalendarDate,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) setStandardTime*(p0 : BOOLEAN),NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) setTimeOfDay*(p0 : INTEGER;
                                            p1 : INTEGER;
                                            p2 : INTEGER;
                                            p3 : INTEGER) : CalendarDate,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) setTimeOfDay!(p0 : LONGINT),NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) setYear*(p0 : INTEGER) : CalendarDate,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) setZone*(p0 : java_util.TimeZone) : CalendarDate,NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) setZoneOffset!(p0 : INTEGER),NEW,EXTENSIBLE;

PROCEDURE (self:CalendarDate) toString*() : java_lang.String,EXTENSIBLE;

PROCEDURE (self:CalendarSystem) getCalendarDate*(p0 : LONGINT;
                                                 p1 : CalendarDate) : CalendarDate,NEW,ABSTRACT;

PROCEDURE (self:CalendarSystem) getCalendarDate*(p0 : LONGINT;
                                                 p1 : java_util.TimeZone) : CalendarDate,NEW,ABSTRACT;

PROCEDURE (self:CalendarSystem) getCalendarDate*(p0 : LONGINT) : CalendarDate,NEW,ABSTRACT;

PROCEDURE (self:CalendarSystem) getCalendarDate*() : CalendarDate,NEW,ABSTRACT;

PROCEDURE (self:CalendarSystem) getEra*(p0 : java_lang.String) : Era,NEW,ABSTRACT;

PROCEDURE (self:CalendarSystem) getEras*() : POINTER TO ARRAY OF Era,NEW,ABSTRACT;

PROCEDURE (self:CalendarSystem) getMonthLength*(p0 : CalendarDate) : INTEGER,NEW,ABSTRACT;

PROCEDURE (self:CalendarSystem) getName*() : java_lang.String,NEW,ABSTRACT;

PROCEDURE (self:CalendarSystem) getNthDayOfWeek*(p0 : INTEGER;
                                                 p1 : INTEGER;
                                                 p2 : CalendarDate) : CalendarDate,NEW,ABSTRACT;

PROCEDURE (self:CalendarSystem) getTime*(p0 : CalendarDate) : LONGINT,NEW,ABSTRACT;

PROCEDURE (self:CalendarSystem) getWeekLength*() : INTEGER,NEW,ABSTRACT;

PROCEDURE (self:CalendarSystem) getYearLength*(p0 : CalendarDate) : INTEGER,NEW,ABSTRACT;

PROCEDURE (self:CalendarSystem) getYearLengthInMonths*(p0 : CalendarDate) : INTEGER,NEW,ABSTRACT;

PROCEDURE (self:CalendarSystem) newCalendarDate*() : CalendarDate,NEW,ABSTRACT;

PROCEDURE (self:CalendarSystem) newCalendarDate*(p0 : java_util.TimeZone) : CalendarDate,NEW,ABSTRACT;

PROCEDURE (self:CalendarSystem) normalize*(p0 : CalendarDate) : BOOLEAN,NEW,ABSTRACT;

PROCEDURE (self:CalendarSystem) setEra*(p0 : CalendarDate;
                                        p1 : java_lang.String),NEW,ABSTRACT;

PROCEDURE (self:CalendarSystem) setTimeOfDay*(p0 : CalendarDate;
                                              p1 : INTEGER) : CalendarDate,NEW,ABSTRACT;

PROCEDURE (self:CalendarSystem) validate*(p0 : CalendarDate) : BOOLEAN,NEW,ABSTRACT;

PROCEDURE (self:Era) equals*(p0 : java_lang.Object) : BOOLEAN,EXTENSIBLE;

PROCEDURE (self:Era) getAbbreviation*() : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:Era) getDiaplayAbbreviation*(p0 : java_util.Locale) : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:Era) getDisplayName*(p0 : java_util.Locale) : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:Era) getName*() : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:Era) getSince*(p0 : java_util.TimeZone) : LONGINT,NEW,EXTENSIBLE;

PROCEDURE (self:Era) getSinceDate*() : CalendarDate,NEW,EXTENSIBLE;

PROCEDURE (self:Era) hashCode*() : INTEGER,EXTENSIBLE;

PROCEDURE (self:Era) isLocalTime*() : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:Era) toString*() : java_lang.String,EXTENSIBLE;

PROCEDURE (self:Gregorian) getCalendarDate*(p0 : LONGINT) : CalendarDate,EXTENSIBLE;

PROCEDURE (self:Gregorian) getCalendarDate*() : CalendarDate,EXTENSIBLE;

PROCEDURE (self:Gregorian) getCalendarDate*(p0 : LONGINT;
                                            p1 : java_util.TimeZone) : CalendarDate,EXTENSIBLE;

PROCEDURE (self:Gregorian) getCalendarDate*(p0 : LONGINT;
                                            p1 : CalendarDate) : CalendarDate,EXTENSIBLE;

PROCEDURE (self:Gregorian) getCalendarDate*(p0 : LONGINT;
                                            p1 : java_util.TimeZone) : Gregorian$Date,NEW,EXTENSIBLE;

PROCEDURE (self:Gregorian) getCalendarDate*() : Gregorian$Date,NEW,EXTENSIBLE;

PROCEDURE (self:Gregorian) getCalendarDate*(p0 : LONGINT) : Gregorian$Date,NEW,EXTENSIBLE;

PROCEDURE (self:Gregorian) getCalendarDate*(p0 : LONGINT;
                                            p1 : CalendarDate) : Gregorian$Date,NEW,EXTENSIBLE;

PROCEDURE (self:Gregorian) getName*() : java_lang.String,EXTENSIBLE;

PROCEDURE (self:Gregorian) newCalendarDate*() : CalendarDate,EXTENSIBLE;

PROCEDURE (self:Gregorian) newCalendarDate*(p0 : java_util.TimeZone) : CalendarDate,EXTENSIBLE;

PROCEDURE (self:Gregorian) newCalendarDate*() : Gregorian$Date,NEW,EXTENSIBLE;

PROCEDURE (self:Gregorian) newCalendarDate*(p0 : java_util.TimeZone) : Gregorian$Date,NEW,EXTENSIBLE;

PROCEDURE (self:JulianCalendar) getCalendarDate*(p0 : LONGINT) : CalendarDate,EXTENSIBLE;

PROCEDURE (self:JulianCalendar) getCalendarDate*(p0 : LONGINT;
                                                 p1 : java_util.TimeZone) : JulianCalendar$Date,NEW,EXTENSIBLE;

PROCEDURE (self:JulianCalendar) getCalendarDate*(p0 : LONGINT;
                                                 p1 : CalendarDate) : CalendarDate,EXTENSIBLE;

PROCEDURE (self:JulianCalendar) getCalendarDate*(p0 : LONGINT;
                                                 p1 : java_util.TimeZone) : CalendarDate,EXTENSIBLE;

PROCEDURE (self:JulianCalendar) getCalendarDate*() : JulianCalendar$Date,NEW,EXTENSIBLE;

PROCEDURE (self:JulianCalendar) getCalendarDate*() : CalendarDate,EXTENSIBLE;

PROCEDURE (self:JulianCalendar) getCalendarDate*(p0 : LONGINT;
                                                 p1 : CalendarDate) : JulianCalendar$Date,NEW,EXTENSIBLE;

PROCEDURE (self:JulianCalendar) getCalendarDate*(p0 : LONGINT) : JulianCalendar$Date,NEW,EXTENSIBLE;

PROCEDURE (self:JulianCalendar) getCalendarDateFromFixedDate*(p0 : CalendarDate;
                                                              p1 : LONGINT),EXTENSIBLE;

PROCEDURE (self:JulianCalendar) getDayOfWeek*(p0 : CalendarDate) : INTEGER,EXTENSIBLE;

PROCEDURE (self:JulianCalendar) getFixedDate*(p0 : INTEGER;
                                              p1 : INTEGER;
                                              p2 : INTEGER;
                                              p3 : BaseCalendar$Date) : LONGINT,EXTENSIBLE;

PROCEDURE (self:JulianCalendar) getName*() : java_lang.String,EXTENSIBLE;

PROCEDURE (self:JulianCalendar) getYearFromFixedDate*(p0 : LONGINT) : INTEGER,EXTENSIBLE;

PROCEDURE (self:JulianCalendar) newCalendarDate*(p0 : java_util.TimeZone) : CalendarDate,EXTENSIBLE;

PROCEDURE (self:JulianCalendar) newCalendarDate*() : CalendarDate,EXTENSIBLE;

PROCEDURE (self:JulianCalendar) newCalendarDate*(p0 : java_util.TimeZone) : JulianCalendar$Date,NEW,EXTENSIBLE;

PROCEDURE (self:JulianCalendar) newCalendarDate*() : JulianCalendar$Date,NEW,EXTENSIBLE;

PROCEDURE (self:LocalGregorianCalendar) getCalendarDate*(p0 : LONGINT) : CalendarDate,EXTENSIBLE;

PROCEDURE (self:LocalGregorianCalendar) getCalendarDate*() : CalendarDate,EXTENSIBLE;

PROCEDURE (self:LocalGregorianCalendar) getCalendarDate*(p0 : LONGINT;
                                                         p1 : CalendarDate) : CalendarDate,EXTENSIBLE;

PROCEDURE (self:LocalGregorianCalendar) getCalendarDate*(p0 : LONGINT;
                                                         p1 : java_util.TimeZone) : CalendarDate,EXTENSIBLE;

PROCEDURE (self:LocalGregorianCalendar) getCalendarDate*(p0 : LONGINT;
                                                         p1 : CalendarDate) : LocalGregorianCalendar$Date,NEW,EXTENSIBLE;

PROCEDURE (self:LocalGregorianCalendar) getCalendarDate*() : LocalGregorianCalendar$Date,NEW,EXTENSIBLE;

PROCEDURE (self:LocalGregorianCalendar) getCalendarDate*(p0 : LONGINT) : LocalGregorianCalendar$Date,NEW,EXTENSIBLE;

PROCEDURE (self:LocalGregorianCalendar) getCalendarDate*(p0 : LONGINT;
                                                         p1 : java_util.TimeZone) : LocalGregorianCalendar$Date,NEW,EXTENSIBLE;

PROCEDURE (self:LocalGregorianCalendar) getCalendarDateFromFixedDate*(p0 : CalendarDate;
                                                                      p1 : LONGINT),EXTENSIBLE;

PROCEDURE (self:LocalGregorianCalendar) getName*() : java_lang.String,EXTENSIBLE;

PROCEDURE (self:LocalGregorianCalendar) isLeapYear*(p0 : Era;
                                                    p1 : INTEGER) : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:LocalGregorianCalendar) isLeapYear*(p0 : INTEGER) : BOOLEAN,EXTENSIBLE;

PROCEDURE (self:LocalGregorianCalendar) newCalendarDate*(p0 : java_util.TimeZone) : LocalGregorianCalendar$Date,NEW,EXTENSIBLE;

PROCEDURE (self:LocalGregorianCalendar) newCalendarDate*() : LocalGregorianCalendar$Date,NEW,EXTENSIBLE;

PROCEDURE (self:LocalGregorianCalendar) newCalendarDate*(p0 : java_util.TimeZone) : CalendarDate,EXTENSIBLE;

PROCEDURE (self:LocalGregorianCalendar) newCalendarDate*() : CalendarDate,EXTENSIBLE;

PROCEDURE (self:LocalGregorianCalendar) normalize*(p0 : CalendarDate) : BOOLEAN,EXTENSIBLE;

PROCEDURE (self:LocalGregorianCalendar) validate*(p0 : CalendarDate) : BOOLEAN,EXTENSIBLE;

PROCEDURE (self:LocalGregorianCalendar$Date) addYear*(p0 : INTEGER) : LocalGregorianCalendar$Date,NEW,EXTENSIBLE;

PROCEDURE (self:LocalGregorianCalendar$Date) addYear*(p0 : INTEGER) : CalendarDate,EXTENSIBLE;

PROCEDURE (self:LocalGregorianCalendar$Date) getNormalizedYear*() : INTEGER,EXTENSIBLE;

PROCEDURE (self:LocalGregorianCalendar$Date) setEra*(p0 : Era) : LocalGregorianCalendar$Date,NEW,EXTENSIBLE;

PROCEDURE (self:LocalGregorianCalendar$Date) setEra*(p0 : Era) : CalendarDate,EXTENSIBLE;

PROCEDURE (self:LocalGregorianCalendar$Date) setNormalizedYear*(p0 : INTEGER),EXTENSIBLE;

PROCEDURE (self:LocalGregorianCalendar$Date) setYear*(p0 : INTEGER) : LocalGregorianCalendar$Date,NEW,EXTENSIBLE;

PROCEDURE (self:LocalGregorianCalendar$Date) setYear*(p0 : INTEGER) : CalendarDate,EXTENSIBLE;

PROCEDURE (self:LocalGregorianCalendar$Date) toString*() : java_lang.String,EXTENSIBLE;

PROCEDURE (self:ZoneInfo) clone*() : java_lang.Object,EXTENSIBLE;

PROCEDURE (self:ZoneInfo) equals*(p0 : java_lang.Object) : BOOLEAN,EXTENSIBLE;

PROCEDURE (self:ZoneInfo) getDSTSavings*() : INTEGER,EXTENSIBLE;

PROCEDURE (self:ZoneInfo) getLastRuleInstance*() : java_util.SimpleTimeZone,NEW,EXTENSIBLE;

PROCEDURE (self:ZoneInfo) getOffset*(p0 : INTEGER;
                                     p1 : INTEGER;
                                     p2 : INTEGER;
                                     p3 : INTEGER;
                                     p4 : INTEGER;
                                     p5 : INTEGER) : INTEGER,EXTENSIBLE;

PROCEDURE (self:ZoneInfo) getOffset*(p0 : LONGINT) : INTEGER,EXTENSIBLE;

PROCEDURE (self:ZoneInfo) getOffsets*(    p0 : LONGINT;
                                      IN  p1 : ARRAY OF INTEGER) : INTEGER,EXTENSIBLE;

PROCEDURE (self:ZoneInfo) getOffsetsByStandard*(    p0 : LONGINT;
                                                IN  p1 : ARRAY OF INTEGER) : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:ZoneInfo) getOffsetsByWall*(    p0 : LONGINT;
                                            IN  p1 : ARRAY OF INTEGER) : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:ZoneInfo) getRawOffset*() : INTEGER,EXTENSIBLE;

PROCEDURE (self:ZoneInfo) hashCode*() : INTEGER,EXTENSIBLE;

PROCEDURE (self:ZoneInfo) hasSameRules*(p0 : java_util.TimeZone) : BOOLEAN,EXTENSIBLE;

PROCEDURE (self:ZoneInfo) inDaylightTime*(p0 : java_util.Date) : BOOLEAN,EXTENSIBLE;

PROCEDURE (self:ZoneInfo) isDirty*() : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:ZoneInfo) setRawOffset*(p0 : INTEGER),EXTENSIBLE;

PROCEDURE (self:ZoneInfo) toString*() : java_lang.String,EXTENSIBLE;

PROCEDURE (self:ZoneInfo) useDaylightTime*() : BOOLEAN,EXTENSIBLE;

END sun_util_calendar.