// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __java_util_GregorianCalendar__
#define __java_util_GregorianCalendar__

#pragma interface

#include <java/util/Calendar.h>
#include <gcj/array.h>

class java::util::GregorianCalendar : public ::java::util::Calendar
{
public:
  GregorianCalendar ();
  GregorianCalendar (::java::util::TimeZone *);
  GregorianCalendar (::java::util::Locale *);
  GregorianCalendar (::java::util::TimeZone *, ::java::util::Locale *);
private:
  GregorianCalendar (::java::util::TimeZone *, ::java::util::Locale *, jboolean);
public:
  GregorianCalendar (jint, jint, jint);
  GregorianCalendar (jint, jint, jint, jint, jint);
  GregorianCalendar (jint, jint, jint, jint, jint, jint);
  virtual void setGregorianChange (::java::util::Date *);
  virtual ::java::util::Date *getGregorianChange ();
  virtual jboolean isLeapYear (jint);
private:
  jint getWeekDay (jint, jint);
  jint getFirstDayOfMonth (jint, jint);
  jboolean isGregorian (jint, jint);
  void nonLeniencyCheck ();
public:  // actually protected
  virtual void computeTime ();
private:
  jlong getLinearDay (jint, jint, jboolean);
  void calculateDay (jintArray, jlong, jboolean);
public:  // actually protected
  virtual void computeFields ();
public:
  virtual jint hashCode ();
  virtual jboolean equals (::java::lang::Object *);
  virtual void add (jint, jint);
  virtual void roll (jint, jboolean);
private:
  void cleanUpAfterRoll (jint, jint);
public:
  virtual void roll (jint, jint);
  virtual jint getMinimum (jint);
  virtual jint getMaximum (jint);
  virtual jint getGreatestMinimum (jint);
  virtual jint getLeastMaximum (jint);
  virtual jint getActualMinimum (jint);
  virtual jint getActualMaximum (jint);
  static const jint BC = 0L;
  static const jint AD = 1L;
private:
  jlong __attribute__((aligned(__alignof__( ::java::util::Calendar ))))  gregorianCutover;
public: // actually package-private
  static const jlong serialVersionUID = -8125100834729963327LL;
private:
  static ::java::lang::String *bundleName;
  static const jint EPOCH_DAYS = 719162L;
  static jintArray minimums;
  static jintArray maximums;
public:

  static ::java::lang::Class class$;
};

#endif /* __java_util_GregorianCalendar__ */
