FOREIGN MODULE javax_security_auth;

IMPORT
    java_lang := "java.lang",
    java_security := "java.security",
    java_io := "java.io",
    java_util := "java.util",
    java_lang_ref := "java.lang.ref",
    sun_security_util := "sun.security.util";

TYPE

  AuthPermission* = POINTER TO RECORD (java_security.BasicPermission)
                    STATIC
                      PROCEDURE Init*(p0 : java_lang.String;
                                      p1 : java_lang.String) : AuthPermission,CONSTRUCTOR;
                      PROCEDURE Init*(p0 : java_lang.String) : AuthPermission,CONSTRUCTOR;
                    END;

  Destroyable* = POINTER TO INTERFACE RECORD (java_lang.Object)    (* Typebound Procedures *)
                 END;

  DestroyFailedException* = POINTER TO EXTENSIBLE RECORD (java_lang.Exception)
                            STATIC
                              PROCEDURE Init*(p0 : java_lang.String) : DestroyFailedException,CONSTRUCTOR;
                              PROCEDURE Init*() : DestroyFailedException,CONSTRUCTOR;
                            END;

  Policy* = POINTER TO ABSTRACT RECORD (java_lang.Object)    (* Typebound Procedures *)
            STATIC
              PROCEDURE getPolicy*() : Policy;
              PROCEDURE Init!() : Policy,CONSTRUCTOR;
              PROCEDURE setPolicy*(p0 : Policy);
            END;

  PrivateCredentialPermission* = POINTER TO RECORD (java_security.Permission)    (* Typebound Procedures *)
                                 STATIC
                                   PROCEDURE Init*(p0 : java_lang.String;
                                                   p1 : java_lang.String) : PrivateCredentialPermission,CONSTRUCTOR;
                                 END;

  Refreshable* = POINTER TO INTERFACE RECORD (java_lang.Object)    (* Typebound Procedures *)
                 END;

  RefreshFailedException* = POINTER TO EXTENSIBLE RECORD (java_lang.Exception)
                            STATIC
                              PROCEDURE Init*(p0 : java_lang.String) : RefreshFailedException,CONSTRUCTOR;
                              PROCEDURE Init*() : RefreshFailedException,CONSTRUCTOR;
                            END;

  Subject* = POINTER TO RECORD (java_lang.Object + java_io.Serializable)    (* Typebound Procedures *)
             STATIC
               PROCEDURE doAs*(p0 : Subject;
                               p1 : java_security.PrivilegedAction) : java_lang.Object;
               PROCEDURE doAs*(p0 : Subject;
                               p1 : java_security.PrivilegedExceptionAction) : java_lang.Object;
               PROCEDURE doAsPrivileged*(p0 : Subject;
                                         p1 : java_security.PrivilegedAction;
                                         p2 : java_security.AccessControlContext) : java_lang.Object;
               PROCEDURE doAsPrivileged*(p0 : Subject;
                                         p1 : java_security.PrivilegedExceptionAction;
                                         p2 : java_security.AccessControlContext) : java_lang.Object;
               PROCEDURE getSubject*(p0 : java_security.AccessControlContext) : Subject;
               PROCEDURE Init*(p0 : BOOLEAN;
                               p1 : java_util.Set;
                               p2 : java_util.Set;
                               p3 : java_util.Set) : Subject,CONSTRUCTOR;
               PROCEDURE Init*() : Subject,CONSTRUCTOR;
             END;

  SubjectDomainCombiner* = POINTER TO EXTENSIBLE RECORD (java_lang.Object + java_security.DomainCombiner)    (* Typebound Procedures *)
                           STATIC
                             PROCEDURE Init*(p0 : Subject) : SubjectDomainCombiner,CONSTRUCTOR;
                           END;




PROCEDURE (self:Destroyable) destroy*(),NEW,ABSTRACT;

PROCEDURE (self:Destroyable) isDestroyed*() : BOOLEAN,NEW,ABSTRACT;

PROCEDURE (self:Policy) getPermissions*(p0 : Subject;
                                        p1 : java_security.CodeSource) : java_security.PermissionCollection,NEW,ABSTRACT;

PROCEDURE (self:Policy) refresh*(),NEW,ABSTRACT;

PROCEDURE (self:PrivateCredentialPermission) equals*(p0 : java_lang.Object) : BOOLEAN,EXTENSIBLE;

PROCEDURE (self:PrivateCredentialPermission) getActions*() : java_lang.String,EXTENSIBLE;

PROCEDURE (self:PrivateCredentialPermission) getCredentialClass*() : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:PrivateCredentialPermission) getPrincipals*() : POINTER TO ARRAY OF java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:PrivateCredentialPermission) hashCode*() : INTEGER,EXTENSIBLE;

PROCEDURE (self:PrivateCredentialPermission) implies*(p0 : java_security.Permission) : BOOLEAN,EXTENSIBLE;

PROCEDURE (self:PrivateCredentialPermission) newPermissionCollection*() : java_security.PermissionCollection,EXTENSIBLE;

PROCEDURE (self:Refreshable) isCurrent*() : BOOLEAN,NEW,ABSTRACT;

PROCEDURE (self:Refreshable) refresh*(),NEW,ABSTRACT;

PROCEDURE (self:Subject) equals*(p0 : java_lang.Object) : BOOLEAN,EXTENSIBLE;

PROCEDURE (self:Subject) getPrincipals*(p0 : java_lang.Class) : java_util.Set,NEW,EXTENSIBLE;

PROCEDURE (self:Subject) getPrincipals*() : java_util.Set,NEW,EXTENSIBLE;

PROCEDURE (self:Subject) getPrivateCredentials*() : java_util.Set,NEW,EXTENSIBLE;

PROCEDURE (self:Subject) getPrivateCredentials*(p0 : java_lang.Class) : java_util.Set,NEW,EXTENSIBLE;

PROCEDURE (self:Subject) getPublicCredentials*(p0 : java_lang.Class) : java_util.Set,NEW,EXTENSIBLE;

PROCEDURE (self:Subject) getPublicCredentials*() : java_util.Set,NEW,EXTENSIBLE;

PROCEDURE (self:Subject) hashCode*() : INTEGER,EXTENSIBLE;

PROCEDURE (self:Subject) isReadOnly*() : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:Subject) setReadOnly*(),NEW,EXTENSIBLE;

PROCEDURE (self:Subject) toString*() : java_lang.String,EXTENSIBLE;

PROCEDURE (self:SubjectDomainCombiner) combine*(IN  p0 : ARRAY OF java_security.ProtectionDomain;
                                                IN  p1 : ARRAY OF java_security.ProtectionDomain) : POINTER TO ARRAY OF java_security.ProtectionDomain,NEW,EXTENSIBLE;

PROCEDURE (self:SubjectDomainCombiner) getSubject*() : Subject,NEW,EXTENSIBLE;

END javax_security_auth.