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

#ifndef __java_security_UnresolvedPermissionCollection__
#define __java_security_UnresolvedPermissionCollection__

#pragma interface

#include <java/security/PermissionCollection.h>
extern "Java"
{
  namespace java
  {
    namespace security
    {
        class Permission;
        class UnresolvedPermissionCollection;
    }
  }
}

class java::security::UnresolvedPermissionCollection : public ::java::security::PermissionCollection
{

public: // actually package-private
  UnresolvedPermissionCollection();
public:
  virtual void add(::java::security::Permission *);
  virtual jboolean implies(::java::security::Permission *);
  virtual ::java::util::Enumeration * elements();
private:
  static const jlong serialVersionUID = -7176153071733132400LL;
public: // actually package-private
  ::java::util::Hashtable * __attribute__((aligned(__alignof__( ::java::security::PermissionCollection)))) permissions;
public:
  static ::java::lang::Class class$;
};

#endif // __java_security_UnresolvedPermissionCollection__
