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

#ifndef __java_net_URISyntaxException__
#define __java_net_URISyntaxException__

#pragma interface

#include <java/lang/Exception.h>
extern "Java"
{
  namespace java
  {
    namespace net
    {
        class URISyntaxException;
    }
  }
}

class java::net::URISyntaxException : public ::java::lang::Exception
{

public:
  URISyntaxException(::java::lang::String *, ::java::lang::String *);
  URISyntaxException(::java::lang::String *, ::java::lang::String *, jint);
  virtual ::java::lang::String * getInput();
  virtual ::java::lang::String * getReason();
  virtual jint getIndex();
  virtual ::java::lang::String * getMessage();
private:
  static const jlong serialVersionUID = 2137979680897488891LL;
  ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Exception)))) input;
  jint index;
public:
  static ::java::lang::Class class$;
};

#endif // __java_net_URISyntaxException__
