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

#ifndef __java_util_prefs_InvalidPreferencesFormatException__
#define __java_util_prefs_InvalidPreferencesFormatException__

#pragma interface

#include <java/lang/Exception.h>

class java::util::prefs::InvalidPreferencesFormatException : public ::java::lang::Exception
{

public:
  InvalidPreferencesFormatException(::java::lang::String *);
  InvalidPreferencesFormatException(::java::lang::Throwable *);
  InvalidPreferencesFormatException(::java::lang::String *, ::java::lang::Throwable *);
private:
  void writeObject(::java::io::ObjectOutputStream *);
  void readObject(::java::io::ObjectInputStream *);
public: // actually package-private
  static const jlong serialVersionUID = -791715184232119669LL;
public:
  static ::java::lang::Class class$;
};

#endif // __java_util_prefs_InvalidPreferencesFormatException__
