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

#ifndef __gnu_java_util_regex_RETokenNamedProperty$UnicodeBlockHandler__
#define __gnu_java_util_regex_RETokenNamedProperty$UnicodeBlockHandler__

#pragma interface

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

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

public:
  RETokenNamedProperty$UnicodeBlockHandler(::java::lang::Character$UnicodeBlock *);
  virtual jboolean includes(jchar);
private:
  ::java::lang::Character$UnicodeBlock * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::RETokenNamedProperty$Handler)))) block;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_java_util_regex_RETokenNamedProperty$UnicodeBlockHandler__
