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

#ifndef __java_security_acl_AclEntry__
#define __java_security_acl_AclEntry__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace security
    {
        class Principal;
      namespace acl
      {
          class AclEntry;
          class Permission;
      }
    }
  }
}

class java::security::acl::AclEntry : public ::java::lang::Object
{

public:
  virtual ::java::security::Principal * getPrincipal() = 0;
  virtual jboolean setPrincipal(::java::security::Principal *) = 0;
  virtual void setNegativePermissions() = 0;
  virtual jboolean isNegative() = 0;
  virtual jboolean addPermission(::java::security::acl::Permission *) = 0;
  virtual jboolean removePermission(::java::security::acl::Permission *) = 0;
  virtual jboolean checkPermission(::java::security::acl::Permission *) = 0;
  virtual ::java::util::Enumeration * permissions() = 0;
  virtual ::java::lang::String * toString() = 0;
  virtual ::java::lang::Object * clone() = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __java_security_acl_AclEntry__
