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

#ifndef __gnu_java_security_provider_DefaultPolicy__
#define __gnu_java_security_provider_DefaultPolicy__

#pragma interface

#include <java/security/Policy.h>
extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace security
      {
        namespace provider
        {
            class DefaultPolicy;
        }
      }
    }
  }
  namespace java
  {
    namespace security
    {
        class CodeSource;
        class Permission;
        class PermissionCollection;
    }
  }
}

class gnu::java::security::provider::DefaultPolicy : public ::java::security::Policy
{

public:
  DefaultPolicy();
  virtual ::java::security::PermissionCollection * getPermissions(::java::security::CodeSource *);
  virtual void refresh();
public: // actually package-private
  static ::java::security::Permission * allPermission;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_java_security_provider_DefaultPolicy__
