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

#ifndef __gnu_xml_validation_datatype_EnumerationFacet__
#define __gnu_xml_validation_datatype_EnumerationFacet__

#pragma interface

#include <gnu/xml/validation/datatype/Facet.h>
extern "Java"
{
  namespace gnu
  {
    namespace xml
    {
      namespace validation
      {
        namespace datatype
        {
            class Annotation;
            class EnumerationFacet;
        }
      }
    }
  }
}

class gnu::xml::validation::datatype::EnumerationFacet : public ::gnu::xml::validation::datatype::Facet
{

public:
  EnumerationFacet(::java::lang::String *, ::gnu::xml::validation::datatype::Annotation *);
  jint hashCode();
  jboolean equals(::java::lang::Object *);
  ::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::validation::datatype::Facet)))) value;
  static ::java::lang::Class class$;
};

#endif // __gnu_xml_validation_datatype_EnumerationFacet__
