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

#ifndef __java_util_Locale__
#define __java_util_Locale__

#pragma interface

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

class java::util::Locale : public ::java::lang::Object
{
private:
  static ::java::util::Locale *getLocale (::java::lang::String *);
  static ::java::util::Locale *getLocale (::java::lang::String *, ::java::lang::String *);
  static ::java::util::Locale *getLocale (::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
  ::java::lang::String *convertLanguage (::java::lang::String *);
public:
  Locale (::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
  Locale (::java::lang::String *, ::java::lang::String *);
  Locale (::java::lang::String *);
  static ::java::util::Locale *getDefault ();
  static void setDefault (::java::util::Locale *);
  static JArray< ::java::util::Locale *> *getAvailableLocales ();
  static JArray< ::java::lang::String *> *getISOCountries ();
  static JArray< ::java::lang::String *> *getISOLanguages ();
  virtual ::java::lang::String *getLanguage () { return language; }
  virtual ::java::lang::String *getCountry () { return country; }
  virtual ::java::lang::String *getVariant () { return variant; }
  virtual ::java::lang::String *toString ();
  virtual ::java::lang::String *getISO3Language ();
  virtual ::java::lang::String *getISO3Country ();
  virtual ::java::lang::String *getDisplayLanguage ();
  virtual ::java::lang::String *getDisplayLanguage (::java::util::Locale *);
  virtual ::java::lang::String *getDisplayCountry ();
  virtual ::java::lang::String *getDisplayCountry (::java::util::Locale *);
  virtual ::java::lang::String *getDisplayVariant ();
  virtual ::java::lang::String *getDisplayVariant (::java::util::Locale *) { return variant; }
  virtual ::java::lang::String *getDisplayName ();
  virtual ::java::lang::String *getDisplayName (::java::util::Locale *);
  virtual ::java::lang::Object *clone ();
  virtual jint hashCode () { return hashcode; }
  virtual jboolean equals (::java::lang::Object *);
private:
  void writeObject (::java::io::ObjectOutputStream *);
  void readObject (::java::io::ObjectInputStream *);
public:
  static ::java::util::Locale *ENGLISH;
  static ::java::util::Locale *FRENCH;
  static ::java::util::Locale *GERMAN;
  static ::java::util::Locale *ITALIAN;
  static ::java::util::Locale *JAPANESE;
  static ::java::util::Locale *KOREAN;
  static ::java::util::Locale *CHINESE;
  static ::java::util::Locale *SIMPLIFIED_CHINESE;
  static ::java::util::Locale *TRADITIONAL_CHINESE;
  static ::java::util::Locale *FRANCE;
  static ::java::util::Locale *GERMANY;
  static ::java::util::Locale *ITALY;
  static ::java::util::Locale *JAPAN;
  static ::java::util::Locale *KOREA;
  static ::java::util::Locale *CHINA;
  static ::java::util::Locale *PRC;
  static ::java::util::Locale *TAIWAN;
  static ::java::util::Locale *UK;
  static ::java::util::Locale *US;
  static ::java::util::Locale *CANADA;
  static ::java::util::Locale *CANADA_FRENCH;
private:
  static const jlong serialVersionUID = 9149081749638150636LL;
  ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object )))) language;
  ::java::lang::String *country;
  ::java::lang::String *variant;
  jint hashcode;
  static ::java::util::Locale *defaultLocale;
public:

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

#endif /* __java_util_Locale__ */
