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

#ifndef __gnu_java_util_regex_RETokenNamedProperty$1__
#define __gnu_java_util_regex_RETokenNamedProperty$1__

#pragma interface

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

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

public: // actually package-private
  RETokenNamedProperty$1(::gnu::java::util::regex::RETokenNamedProperty *);
public:
  jboolean includes(jchar);
public: // actually package-private
  ::gnu::java::util::regex::RETokenNamedProperty * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::RETokenNamedProperty$Handler)))) this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_java_util_regex_RETokenNamedProperty$1__
