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

#ifndef __java_util_EnumSet__
#define __java_util_EnumSet__

#pragma interface

#include <java/util/AbstractSet.h>
#include <gcj/array.h>


class java::util::EnumSet : public ::java::util::AbstractSet
{

public: // actually package-private
  EnumSet();
public:
  virtual ::java::util::EnumSet * EnumSet$clone();
  static ::java::util::EnumSet * allOf(::java::lang::Class *);
  static ::java::util::EnumSet * noneOf(::java::lang::Class *);
  static ::java::util::EnumSet * copyOf(::java::util::EnumSet *);
  static ::java::util::EnumSet * copyOf(::java::util::Collection *);
  static ::java::util::EnumSet * complementOf(::java::util::EnumSet *);
  static ::java::util::EnumSet * of(::java::lang::Enum *);
  static ::java::util::EnumSet * of(::java::lang::Enum *, ::java::lang::Enum *);
  static ::java::util::EnumSet * of(::java::lang::Enum *, ::java::lang::Enum *, ::java::lang::Enum *);
  static ::java::util::EnumSet * of(::java::lang::Enum *, ::java::lang::Enum *, ::java::lang::Enum *, ::java::lang::Enum *);
  static ::java::util::EnumSet * of(::java::lang::Enum *, ::java::lang::Enum *, ::java::lang::Enum *, ::java::lang::Enum *, ::java::lang::Enum *);
  static ::java::util::EnumSet * of(::java::lang::Enum *, JArray< ::java::lang::Enum * > *);
  static ::java::util::EnumSet * range(::java::lang::Enum *, ::java::lang::Enum *);
  virtual ::java::lang::Object * clone();
private:
  static const jlong serialVersionUID = 4782406773684236311LL;
public: // actually package-private
  ::java::util::BitSet * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) store;
  jint cardinality;
  ::java::lang::Class * enumClass;
public:
  static ::java::lang::Class class$;
};

#endif // __java_util_EnumSet__
