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

#ifndef __javax_management_MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration__
#define __javax_management_MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace javax
  {
    namespace management
    {
        class MBeanServerPermission;
        class MBeanServerPermission$MBeanServerPermissionCollection;
        class MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration;
    }
  }
}

class javax::management::MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration : public ::java::lang::Object
{

public:
  MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration(::javax::management::MBeanServerPermission$MBeanServerPermissionCollection *, ::javax::management::MBeanServerPermission *);
  virtual jboolean hasMoreElements();
  virtual ::java::lang::Object * nextElement();
private:
  ::javax::management::MBeanServerPermission * __attribute__((aligned(__alignof__( ::java::lang::Object)))) p;
  jboolean done;
public: // actually package-private
  ::javax::management::MBeanServerPermission$MBeanServerPermissionCollection * this$1;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_management_MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration__
