FOREIGN MODULE javax_security_auth_login;

IMPORT
    java_lang := "java.lang",
    java_security := "java.security",
    java_io := "java.io",
    java_util := "java.util",
    javax_security_auth_callback := "javax.security.auth.callback",
    javax_security_auth := "javax.security.auth",
    sun_security_util := "sun.security.util";

TYPE

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

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

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

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

  AppConfigurationEntry* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)    (* Typebound Procedures *)
                           STATIC
                             PROCEDURE Init*(p0 : java_lang.String;
                                             p1 : AppConfigurationEntry$LoginModuleControlFlag;
                                             p2 : java_util.Map) : AppConfigurationEntry,CONSTRUCTOR;
                           END;

  AppConfigurationEntry$LoginModuleControlFlag* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)    (* Typebound Procedures *)
                                                  STATIC
                                                    OPTIONAL*   : AppConfigurationEntry$LoginModuleControlFlag;
                                                    REQUIRED*   : AppConfigurationEntry$LoginModuleControlFlag;
                                                    REQUISITE*  : AppConfigurationEntry$LoginModuleControlFlag;
                                                    SUFFICIENT* : AppConfigurationEntry$LoginModuleControlFlag;
                                                  END;

  Configuration* = POINTER TO ABSTRACT RECORD (java_lang.Object)    (* Typebound Procedures *)
                   STATIC
                     PROCEDURE getConfiguration*() : Configuration;
                     PROCEDURE getInstance*(p0 : java_lang.String;
                                            p1 : Configuration$Parameters) : Configuration;
                     PROCEDURE getInstance*(p0 : java_lang.String;
                                            p1 : Configuration$Parameters;
                                            p2 : java_lang.String) : Configuration;
                     PROCEDURE getInstance*(p0 : java_lang.String;
                                            p1 : Configuration$Parameters;
                                            p2 : java_security.Provider) : Configuration;
                     PROCEDURE Init!() : Configuration,CONSTRUCTOR;
                     PROCEDURE setConfiguration*(p0 : Configuration);
                   END;

  Configuration$Parameters* = POINTER TO INTERFACE RECORD (java_lang.Object)
                              END;

  ConfigurationSpi* = POINTER TO ABSTRACT RECORD (java_lang.Object)    (* Typebound Procedures *)
                      STATIC
                        PROCEDURE Init*() : ConfigurationSpi,CONSTRUCTOR;
                      END;

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

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

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

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

  LoginContext* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)    (* Typebound Procedures *)
                  STATIC
                    PROCEDURE Init*(p0 : java_lang.String;
                                    p1 : javax_security_auth.Subject;
                                    p2 : javax_security_auth_callback.CallbackHandler) : LoginContext,CONSTRUCTOR;
                    PROCEDURE Init*(p0 : java_lang.String;
                                    p1 : javax_security_auth.Subject;
                                    p2 : javax_security_auth_callback.CallbackHandler;
                                    p3 : Configuration) : LoginContext,CONSTRUCTOR;
                    PROCEDURE Init*(p0 : java_lang.String;
                                    p1 : javax_security_auth_callback.CallbackHandler) : LoginContext,CONSTRUCTOR;
                    PROCEDURE Init*(p0 : java_lang.String) : LoginContext,CONSTRUCTOR;
                    PROCEDURE Init*(p0 : java_lang.String;
                                    p1 : javax_security_auth.Subject) : LoginContext,CONSTRUCTOR;
                  END;

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




PROCEDURE (self:AppConfigurationEntry) getControlFlag*() : AppConfigurationEntry$LoginModuleControlFlag,NEW,EXTENSIBLE;

PROCEDURE (self:AppConfigurationEntry) getLoginModuleName*() : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:AppConfigurationEntry) getOptions*() : java_util.Map,NEW,EXTENSIBLE;

PROCEDURE (self:AppConfigurationEntry$LoginModuleControlFlag) toString*() : java_lang.String,EXTENSIBLE;

PROCEDURE (self:Configuration) getAppConfigurationEntry*(p0 : java_lang.String) : POINTER TO ARRAY OF AppConfigurationEntry,NEW,ABSTRACT;

PROCEDURE (self:Configuration) getParameters*() : Configuration$Parameters,NEW,EXTENSIBLE;

PROCEDURE (self:Configuration) getProvider*() : java_security.Provider,NEW,EXTENSIBLE;

PROCEDURE (self:Configuration) getType*() : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:Configuration) refresh*(),NEW,EXTENSIBLE;

PROCEDURE (self:ConfigurationSpi) engineGetAppConfigurationEntry!(p0 : java_lang.String) : POINTER TO ARRAY OF AppConfigurationEntry,NEW,ABSTRACT;

PROCEDURE (self:ConfigurationSpi) engineRefresh!(),NEW,EXTENSIBLE;

PROCEDURE (self:LoginContext) getSubject*() : javax_security_auth.Subject,NEW,EXTENSIBLE;

PROCEDURE (self:LoginContext) login*(),NEW,EXTENSIBLE;

PROCEDURE (self:LoginContext) logout*(),NEW,EXTENSIBLE;

END javax_security_auth_login.