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

#ifndef __java_util_regex_PatternSyntaxException__
#define __java_util_regex_PatternSyntaxException__

#pragma interface

#include <java/lang/IllegalArgumentException.h>

class java::util::regex::PatternSyntaxException : public ::java::lang::IllegalArgumentException
{

public:
  PatternSyntaxException(::java::lang::String *, ::java::lang::String *, jint);
  virtual ::java::lang::String * getDescription();
  virtual ::java::lang::String * getPattern();
  virtual jint getIndex();
  virtual ::java::lang::String * getMessage();
private:
  static const jlong serialVersionUID = -3864639126226059218LL;
  ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::IllegalArgumentException)))) desc;
  ::java::lang::String * pattern;
  jint index;
public:
  static ::java::lang::Class class$;
};

#endif // __java_util_regex_PatternSyntaxException__
