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

#ifndef __java_text_MessageFormat$MessageFormatElement__
#define __java_text_MessageFormat$MessageFormatElement__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace text
    {
        class Format;
        class MessageFormat$MessageFormatElement;
    }
  }
}

class java::text::MessageFormat$MessageFormatElement : public ::java::lang::Object
{

  MessageFormat$MessageFormatElement();
public: // actually package-private
  void setLocale(::java::util::Locale *);
  MessageFormat$MessageFormatElement(::java::text::MessageFormat$MessageFormatElement *);
  jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) argNumber;
  ::java::text::Format * setFormat;
  ::java::text::Format * format;
  ::java::lang::Class * formatClass;
  ::java::lang::String * type;
  ::java::lang::String * style;
  ::java::lang::String * trailer;
public:
  static ::java::lang::Class class$;
};

#endif // __java_text_MessageFormat$MessageFormatElement__
