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

#ifndef __java_util_Calendar__
#define __java_util_Calendar__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>


class java::util::Calendar : public ::java::lang::Object
{

  static ::java::util::ResourceBundle * getBundle(::java::util::Locale *);
public: // actually protected
  Calendar();
  Calendar(::java::util::TimeZone *, ::java::util::Locale *);
public:
  static ::java::util::Calendar * getInstance();
  static ::java::util::Calendar * getInstance(::java::util::TimeZone *);
  static ::java::util::Calendar * getInstance(::java::util::Locale *);
  static ::java::util::Calendar * getInstance(::java::util::TimeZone *, ::java::util::Locale *);
  static JArray< ::java::util::Locale * > * getAvailableLocales();
public: // actually protected
  virtual void computeTime() = 0;
  virtual void computeFields() = 0;
public:
  virtual ::java::util::Date * getTime();
  virtual void setTime(::java::util::Date *);
  virtual jlong getTimeInMillis();
  virtual void setTimeInMillis(jlong);
  virtual jint get(jint);
public: // actually protected
  virtual jint internalGet(jint);
public:
  virtual void set(jint, jint);
  virtual void set(jint, jint, jint);
  virtual void set(jint, jint, jint, jint, jint);
  virtual void set(jint, jint, jint, jint, jint, jint);
  virtual void clear();
  virtual void clear(jint);
  virtual jboolean isSet(jint);
public: // actually protected
  virtual void complete();
public:
  virtual jboolean equals(::java::lang::Object *);
  virtual jint hashCode();
  virtual jboolean before(::java::lang::Object *);
  virtual jboolean after(::java::lang::Object *);
  virtual void add(jint, jint) = 0;
  virtual void roll(jint, jboolean) = 0;
  virtual void roll(jint, jint);
  virtual void setTimeZone(::java::util::TimeZone *);
  virtual ::java::util::TimeZone * getTimeZone();
  virtual void setLenient(jboolean);
  virtual jboolean isLenient();
  virtual void setFirstDayOfWeek(jint);
  virtual jint getFirstDayOfWeek();
  virtual void setMinimalDaysInFirstWeek(jint);
  virtual jint getMinimalDaysInFirstWeek();
  virtual jint getMinimum(jint) = 0;
  virtual jint getMaximum(jint) = 0;
  virtual jint getGreatestMinimum(jint) = 0;
  virtual jint getLeastMaximum(jint) = 0;
  virtual jint getActualMinimum(jint);
  virtual jint getActualMaximum(jint);
  virtual jint Calendar$compareTo(::java::util::Calendar *);
  virtual ::java::lang::Object * clone();
  virtual ::java::lang::String * toString();
private:
  void writeObject(::java::io::ObjectOutputStream *);
  void readObject(::java::io::ObjectInputStream *);
public:
  virtual ::java::lang::String * getDisplayName(jint, jint, ::java::util::Locale *);
  virtual ::java::util::Map * getDisplayNames(jint, jint, ::java::util::Locale *);
  virtual jint compareTo(::java::lang::Object *);
  static const jint ERA = 0;
  static const jint YEAR = 1;
  static const jint MONTH = 2;
  static const jint WEEK_OF_YEAR = 3;
  static const jint WEEK_OF_MONTH = 4;
  static const jint DATE = 5;
  static const jint DAY_OF_MONTH = 5;
  static const jint DAY_OF_YEAR = 6;
  static const jint DAY_OF_WEEK = 7;
  static const jint DAY_OF_WEEK_IN_MONTH = 8;
  static const jint AM_PM = 9;
  static const jint HOUR = 10;
  static const jint HOUR_OF_DAY = 11;
  static const jint MINUTE = 12;
  static const jint SECOND = 13;
  static const jint MILLISECOND = 14;
  static const jint ZONE_OFFSET = 15;
  static const jint DST_OFFSET = 16;
  static const jint FIELD_COUNT = 17;
  static const jint SUNDAY = 1;
  static const jint MONDAY = 2;
  static const jint TUESDAY = 3;
  static const jint WEDNESDAY = 4;
  static const jint THURSDAY = 5;
  static const jint FRIDAY = 6;
  static const jint SATURDAY = 7;
  static const jint JANUARY = 0;
  static const jint FEBRUARY = 1;
  static const jint MARCH = 2;
  static const jint APRIL = 3;
  static const jint MAY = 4;
  static const jint JUNE = 5;
  static const jint JULY = 6;
  static const jint AUGUST = 7;
  static const jint SEPTEMBER = 8;
  static const jint OCTOBER = 9;
  static const jint NOVEMBER = 10;
  static const jint DECEMBER = 11;
  static const jint UNDECIMBER = 12;
  static const jint AM = 0;
  static const jint PM = 1;
  static const jint ALL_STYLES = 0;
  static const jint SHORT = 1;
  static const jint LONG = 2;
public: // actually protected
  JArray< jint > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) fields;
  JArray< jboolean > * isSet__;
  jlong time;
  jboolean isTimeSet;
  jboolean areFieldsSet;
private:
  ::java::util::TimeZone * zone;
  jboolean lenient;
  jint firstDayOfWeek;
  jint minimalDaysInFirstWeek;
  jboolean explicitDSTOffset;
  jint serialVersionOnStream;
public: // actually package-private
  static const jlong serialVersionUID = -1807547505821590642LL;
private:
  static ::java::lang::String * bundleName;
  static ::java::util::HashMap * cache;
  static JArray< ::java::lang::Class * > * ctorArgTypes;
  static JArray< ::java::lang::String * > * fieldNames;
public:
  static ::java::lang::Class class$;
};

#endif // __java_util_Calendar__
