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

#ifndef __java_security_AccessController__
#define __java_security_AccessController__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace security
    {
        class AccessControlContext;
        class AccessController;
        class Permission;
        class PrivilegedAction;
        class PrivilegedExceptionAction;
    }
  }
}

class java::security::AccessController : public ::java::lang::Object
{

  AccessController();
public:
  static void checkPermission(::java::security::Permission *);
  static ::java::lang::Object * doPrivileged(::java::security::PrivilegedAction *);
  static ::java::lang::Object * doPrivileged(::java::security::PrivilegedAction *, ::java::security::AccessControlContext *);
  static ::java::lang::Object * doPrivileged(::java::security::PrivilegedExceptionAction *);
  static ::java::lang::Object * doPrivileged(::java::security::PrivilegedExceptionAction *, ::java::security::AccessControlContext *);
  static ::java::security::AccessControlContext * getContext();
  static ::java::lang::Class class$;
};

#endif // __java_security_AccessController__
