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

#ifndef __java_util_logging_SimpleFormatter__
#define __java_util_logging_SimpleFormatter__

#pragma interface

#include <java/util/logging/Formatter.h>
extern "Java"
{
  namespace java
  {
    namespace text
    {
        class DateFormat;
    }
  }
}

class java::util::logging::SimpleFormatter : public ::java::util::logging::Formatter
{

public:
  SimpleFormatter();
  virtual ::java::lang::String * format(::java::util::logging::LogRecord *);
private:
  ::java::text::DateFormat * __attribute__((aligned(__alignof__( ::java::util::logging::Formatter)))) dateFormat;
public: // actually package-private
  static ::java::lang::String * lineSep;
public:
  static ::java::lang::Class class$;
};

#endif // __java_util_logging_SimpleFormatter__
