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

#ifndef __java_util_Collections$MapSet__
#define __java_util_Collections$MapSet__

#pragma interface

#include <java/util/AbstractSet.h>

class java::util::Collections$MapSet : public ::java::util::AbstractSet
{

public:
  Collections$MapSet(::java::util::Map *);
  virtual jboolean add(::java::lang::Object *);
  virtual jboolean addAll(::java::util::Collection *);
  virtual void clear();
  virtual jboolean contains(::java::lang::Object *);
  virtual jboolean isEmpty();
  virtual ::java::util::Iterator * iterator();
  virtual jboolean remove(::java::lang::Object *);
  virtual jint size();
private:
  ::java::util::Map * __attribute__((aligned(__alignof__( ::java::util::AbstractSet)))) map;
public:
  static ::java::lang::Class class$;
};

#endif // __java_util_Collections$MapSet__
