// 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
{

  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();
private:
  static JArray< ::java::lang::String * > * getISOStrings(::java::lang::String *);
public:
  ::java::lang::String * getLanguage();
  ::java::lang::String * getCountry();
  ::java::lang::String * getVariant();
  ::java::lang::String * toString();
  ::java::lang::String * getISO3Language();
  ::java::lang::String * getISO3Country();
  ::java::lang::String * getDisplayLanguage();
  ::java::lang::String * getDisplayLanguage(::java::util::Locale *);
  ::java::lang::String * getDisplayCountry();
  ::java::lang::String * getDisplayCountry(::java::util::Locale *);
  ::java::lang::String * getDisplayVariant();
  ::java::lang::String * getDisplayVariant(::java::util::Locale *);
  ::java::lang::String * getDisplayName();
  ::java::lang::String * getDisplayName(::java::util::Locale *);
  ::java::lang::Object * clone();
  jint hashCode();
  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;
  static ::java::util::Locale * ROOT;
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 JArray< ::java::util::Locale * > * availableLocales;
  static ::java::util::HashMap * localeMap;
  static ::java::util::Locale * defaultLocale;
  static JArray< ::java::lang::String * > * languageCache;
  static JArray< ::java::lang::String * > * countryCache;
public:
  static ::java::lang::Class class$;
};

#endif // __java_util_Locale__