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

#ifndef __gnu_java_security_util_FormatUtil__
#define __gnu_java_security_util_FormatUtil__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace security
      {
        namespace util
        {
            class FormatUtil;
        }
      }
    }
  }
}

class gnu::java::security::util::FormatUtil : public ::java::lang::Object
{

  FormatUtil();
public:
  static ::java::lang::String * getEncodingName(jint);
  static ::java::lang::String * getEncodingShortName(jint);
  static jint getFormatID(::java::lang::String *);
  static ::java::lang::Class class$;
};

#endif // __gnu_java_security_util_FormatUtil__
