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

#ifndef __java_text_DateFormatSymbols$DFSData__
#define __java_text_DateFormatSymbols$DFSData__

#pragma interface

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

extern "Java"
{
  namespace java
  {
    namespace text
    {
        class DateFormatSymbols$DFSData;
    }
  }
}

class java::text::DateFormatSymbols$DFSData : public ::java::lang::Object
{

public:
  DateFormatSymbols$DFSData(JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, ::java::lang::String *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, JArray< ::java::lang::String * > *, JArray< JArray< ::java::lang::String * > * > *);
  virtual JArray< ::java::lang::String * > * getAMPMs();
  virtual JArray< ::java::lang::String * > * getEras();
  virtual ::java::lang::String * getLocalPatternChars();
  virtual JArray< ::java::lang::String * > * getMonths();
  virtual JArray< ::java::lang::String * > * getShortMonths();
  virtual JArray< ::java::lang::String * > * getWeekdays();
  virtual JArray< ::java::lang::String * > * getShortWeekdays();
  virtual JArray< ::java::lang::String * > * getDateFormats();
  virtual JArray< ::java::lang::String * > * getTimeFormats();
  virtual JArray< JArray< ::java::lang::String * > * > * getZoneStrings();
private:
  JArray< ::java::lang::String * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) ampms;
  JArray< ::java::lang::String * > * eras;
  ::java::lang::String * localPatternChars;
  JArray< ::java::lang::String * > * months;
  JArray< ::java::lang::String * > * shortMonths;
  JArray< ::java::lang::String * > * weekdays;
  JArray< ::java::lang::String * > * shortWeekdays;
  JArray< ::java::lang::String * > * dateFormats;
  JArray< ::java::lang::String * > * timeFormats;
  JArray< JArray< ::java::lang::String * > * > * runtimeZoneStrings;
public:
  static ::java::lang::Class class$;
};

#endif // __java_text_DateFormatSymbols$DFSData__
