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

#ifndef __gnu_java_util_regex_RETokenNamedProperty$JavaCategoryHandler__
#define __gnu_java_util_regex_RETokenNamedProperty$JavaCategoryHandler__

#pragma interface

#include <gnu/java/util/regex/RETokenNamedProperty$Handler.h>
extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace util
      {
        namespace regex
        {
            class RETokenNamedProperty$JavaCategoryHandler;
        }
      }
    }
  }
}

class gnu::java::util::regex::RETokenNamedProperty$JavaCategoryHandler : public ::gnu::java::util::regex::RETokenNamedProperty$Handler
{

public:
  RETokenNamedProperty$JavaCategoryHandler(::java::lang::reflect::Method *);
  virtual jboolean includes(jchar);
private:
  ::java::lang::reflect::Method * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::RETokenNamedProperty$Handler)))) method;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_java_util_regex_RETokenNamedProperty$JavaCategoryHandler__
