FOREIGN MODULE java_util_jar;

IMPORT
    java_lang := "java.lang",
    java_util := "java.util",
    java_io := "java.io",
    java_util_zip := "java.util.zip",
    java_security_cert := "java.security.cert",
    java_security := "java.security",
    java_lang_ref := "java.lang.ref",
    java_net := "java.net",
    sun_security_util := "sun.security.util",
    sun_misc := "sun.misc",
    java_beans := "java.beans";

TYPE

  Attributes* = POINTER TO EXTENSIBLE RECORD (java_lang.Object + java_util.Map + java_lang.Cloneable)    (* Typebound Procedures *)
                  map! : java_util.Map;
                STATIC
                  PROCEDURE Init*(p0 : Attributes) : Attributes,CONSTRUCTOR;
                  PROCEDURE Init*(p0 : INTEGER) : Attributes,CONSTRUCTOR;
                  PROCEDURE Init*() : Attributes,CONSTRUCTOR;
                END;

  Attributes$Name* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)    (* Typebound Procedures *)
                     STATIC
                       CLASS_PATH*               : Attributes$Name;
                       CONTENT_TYPE*             : Attributes$Name;
                       EXTENSION_INSTALLATION*   : Attributes$Name;
                       EXTENSION_LIST*           : Attributes$Name;
                       EXTENSION_NAME*           : Attributes$Name;
                       IMPLEMENTATION_TITLE*     : Attributes$Name;
                       IMPLEMENTATION_URL*       : Attributes$Name;
                       IMPLEMENTATION_VENDOR*    : Attributes$Name;
                       IMPLEMENTATION_VENDOR_ID* : Attributes$Name;
                       IMPLEMENTATION_VERSION*   : Attributes$Name;
                       MAIN_CLASS*               : Attributes$Name;
                       MANIFEST_VERSION*         : Attributes$Name;
                       SEALED*                   : Attributes$Name;
                       SIGNATURE_VERSION*        : Attributes$Name;
                       SPECIFICATION_TITLE*      : Attributes$Name;
                       SPECIFICATION_VENDOR*     : Attributes$Name;
                       SPECIFICATION_VERSION*    : Attributes$Name;
                       PROCEDURE Init*(p0 : java_lang.String) : Attributes$Name,CONSTRUCTOR;
                     END;

  JarEntry* = POINTER TO EXTENSIBLE RECORD (java_util_zip.ZipEntry)    (* Typebound Procedures *)
              STATIC
                PROCEDURE Init*(p0 : JarEntry) : JarEntry,CONSTRUCTOR;
                PROCEDURE Init*(p0 : java_util_zip.ZipEntry) : JarEntry,CONSTRUCTOR;
                PROCEDURE Init*(p0 : java_lang.String) : JarEntry,CONSTRUCTOR;
              END;

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

  JarFile* = POINTER TO EXTENSIBLE RECORD (java_util_zip.ZipFile)    (* Typebound Procedures *)
             STATIC
               MANIFEST_NAME* = "META-INF/MANIFEST.MF";
               PROCEDURE Init*(p0 : java_io.File;
                               p1 : BOOLEAN) : JarFile,CONSTRUCTOR;
               PROCEDURE Init*(p0 : java_io.File;
                               p1 : BOOLEAN;
                               p2 : INTEGER) : JarFile,CONSTRUCTOR;
               PROCEDURE Init*(p0 : java_io.File) : JarFile,CONSTRUCTOR;
               PROCEDURE Init*(p0 : java_lang.String) : JarFile,CONSTRUCTOR;
               PROCEDURE Init*(p0 : java_lang.String;
                               p1 : BOOLEAN) : JarFile,CONSTRUCTOR;
             END;

  JarInputStream* = POINTER TO EXTENSIBLE RECORD (java_util_zip.ZipInputStream)    (* Typebound Procedures *)
                    STATIC
                      PROCEDURE Init*(p0 : java_io.InputStream;
                                      p1 : BOOLEAN) : JarInputStream,CONSTRUCTOR;
                      PROCEDURE Init*(p0 : java_io.InputStream) : JarInputStream,CONSTRUCTOR;
                    END;

  JarOutputStream* = POINTER TO EXTENSIBLE RECORD (java_util_zip.ZipOutputStream)    (* Typebound Procedures *)
                     STATIC
                       PROCEDURE Init*(p0 : java_io.OutputStream) : JarOutputStream,CONSTRUCTOR;
                       PROCEDURE Init*(p0 : java_io.OutputStream;
                                       p1 : Manifest) : JarOutputStream,CONSTRUCTOR;
                     END;

  Manifest* = POINTER TO EXTENSIBLE RECORD (java_lang.Object + java_lang.Cloneable)    (* Typebound Procedures *)
              STATIC
                PROCEDURE Init*(p0 : Manifest) : Manifest,CONSTRUCTOR;
                PROCEDURE Init*(p0 : java_io.InputStream) : Manifest,CONSTRUCTOR;
                PROCEDURE Init*() : Manifest,CONSTRUCTOR;
              END;

  Pack200* = POINTER TO ABSTRACT RECORD (java_lang.Object)
             STATIC
               PROCEDURE newPacker*() : Pack200$Packer;
               PROCEDURE newUnpacker*() : Pack200$Unpacker;
             END;

  Pack200$Packer* = POINTER TO INTERFACE RECORD (java_lang.Object)    (* Typebound Procedures *)
                    STATIC
                      CLASS_ATTRIBUTE_PFX*  = "pack.class.attribute.";
                      CODE_ATTRIBUTE_PFX*   = "pack.code.attribute.";
                      DEFLATE_HINT*         = "pack.deflate.hint";
                      EFFORT*               = "pack.effort";
                      ERROR*                = "error";
                      FALSE*                = "false";
                      FIELD_ATTRIBUTE_PFX*  = "pack.field.attribute.";
                      KEEP*                 = "keep";
                      KEEP_FILE_ORDER*      = "pack.keep.file.order";
                      LATEST*               = "latest";
                      METHOD_ATTRIBUTE_PFX* = "pack.method.attribute.";
                      MODIFICATION_TIME*    = "pack.modification.time";
                      PASS*                 = "pass";
                      PASS_FILE_PFX*        = "pack.pass.file.";
                      PROGRESS*             = "pack.progress";
                      SEGMENT_LIMIT*        = "pack.segment.limit";
                      STRIP*                = "strip";
                      TRUE*                 = "true";
                      UNKNOWN_ATTRIBUTE*    = "pack.unknown.attribute";
                    END;

  Pack200$Unpacker* = POINTER TO INTERFACE RECORD (java_lang.Object)    (* Typebound Procedures *)
                      STATIC
                        DEFLATE_HINT* = "unpack.deflate.hint";
                        FALSE*        = "false";
                        KEEP*         = "keep";
                        PROGRESS*     = "unpack.progress";
                        TRUE*         = "true";
                      END;




PROCEDURE (self:Attributes) clear*(),NEW,EXTENSIBLE;

PROCEDURE (self:Attributes) clone*() : java_lang.Object,EXTENSIBLE;

PROCEDURE (self:Attributes) containsKey*(p0 : java_lang.Object) : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:Attributes) containsValue*(p0 : java_lang.Object) : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:Attributes) entrySet*() : java_util.Set,NEW,EXTENSIBLE;

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

PROCEDURE (self:Attributes) get*(p0 : java_lang.Object) : java_lang.Object,NEW,EXTENSIBLE;

PROCEDURE (self:Attributes) getValue*(p0 : Attributes$Name) : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:Attributes) getValue*(p0 : java_lang.String) : java_lang.String,NEW,EXTENSIBLE;

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

PROCEDURE (self:Attributes) isEmpty*() : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:Attributes) keySet*() : java_util.Set,NEW,EXTENSIBLE;

PROCEDURE (self:Attributes) put*(p0 : java_lang.Object;
                                 p1 : java_lang.Object) : java_lang.Object,NEW,EXTENSIBLE;

PROCEDURE (self:Attributes) putAll*(p0 : java_util.Map),NEW,EXTENSIBLE;

PROCEDURE (self:Attributes) putValue*(p0 : java_lang.String;
                                      p1 : java_lang.String) : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:Attributes) remove*(p0 : java_lang.Object) : java_lang.Object,NEW,EXTENSIBLE;

PROCEDURE (self:Attributes) size*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:Attributes) values*() : java_util.Collection,NEW,EXTENSIBLE;

PROCEDURE (self:Attributes$Name) equals*(p0 : java_lang.Object) : BOOLEAN,EXTENSIBLE;

PROCEDURE (self:Attributes$Name) hashCode*() : INTEGER,EXTENSIBLE;

PROCEDURE (self:Attributes$Name) toString*() : java_lang.String,EXTENSIBLE;

PROCEDURE (self:JarEntry) getAttributes*() : Attributes,NEW,EXTENSIBLE;

PROCEDURE (self:JarEntry) getCertificates*() : POINTER TO ARRAY OF java_security_cert.Certificate,NEW,EXTENSIBLE;

PROCEDURE (self:JarEntry) getCodeSigners*() : POINTER TO ARRAY OF java_security.CodeSigner,NEW,EXTENSIBLE;

PROCEDURE (self:JarFile) entries*() : java_util.Enumeration,EXTENSIBLE;

PROCEDURE (self:JarFile) getEntry*(p0 : java_lang.String) : java_util_zip.ZipEntry,EXTENSIBLE;

PROCEDURE (self:JarFile) getInputStream*(p0 : java_util_zip.ZipEntry) : java_io.InputStream,EXTENSIBLE;

PROCEDURE (self:JarFile) getJarEntry*(p0 : java_lang.String) : JarEntry,NEW,EXTENSIBLE;

PROCEDURE (self:JarFile) getManifest*() : Manifest,NEW,EXTENSIBLE;

PROCEDURE (self:JarInputStream) createZipEntry!(p0 : java_lang.String) : java_util_zip.ZipEntry,EXTENSIBLE;

PROCEDURE (self:JarInputStream) getManifest*() : Manifest,NEW,EXTENSIBLE;

PROCEDURE (self:JarInputStream) getNextEntry*() : java_util_zip.ZipEntry,EXTENSIBLE;

PROCEDURE (self:JarInputStream) getNextJarEntry*() : JarEntry,NEW,EXTENSIBLE;

PROCEDURE (self:JarInputStream) read*(IN  p0 : ARRAY OF BYTE;
                                          p1 : INTEGER;
                                          p2 : INTEGER) : INTEGER,EXTENSIBLE;

PROCEDURE (self:JarOutputStream) putNextEntry*(p0 : java_util_zip.ZipEntry),EXTENSIBLE;

PROCEDURE (self:Manifest) clear*(),NEW,EXTENSIBLE;

PROCEDURE (self:Manifest) clone*() : java_lang.Object,EXTENSIBLE;

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

PROCEDURE (self:Manifest) getAttributes*(p0 : java_lang.String) : Attributes,NEW,EXTENSIBLE;

PROCEDURE (self:Manifest) getEntries*() : java_util.Map,NEW,EXTENSIBLE;

PROCEDURE (self:Manifest) getMainAttributes*() : Attributes,NEW,EXTENSIBLE;

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

PROCEDURE (self:Manifest) read*(p0 : java_io.InputStream),NEW,EXTENSIBLE;

PROCEDURE (self:Manifest) write*(p0 : java_io.OutputStream),NEW,EXTENSIBLE;

PROCEDURE (self:Pack200$Packer) addPropertyChangeListener*(p0 : java_beans.PropertyChangeListener),NEW,ABSTRACT;

PROCEDURE (self:Pack200$Packer) pack*(p0 : JarInputStream;
                                      p1 : java_io.OutputStream),NEW,ABSTRACT;

PROCEDURE (self:Pack200$Packer) pack*(p0 : JarFile;
                                      p1 : java_io.OutputStream),NEW,ABSTRACT;

PROCEDURE (self:Pack200$Packer) properties*() : java_util.SortedMap,NEW,ABSTRACT;

PROCEDURE (self:Pack200$Packer) removePropertyChangeListener*(p0 : java_beans.PropertyChangeListener),NEW,ABSTRACT;

PROCEDURE (self:Pack200$Unpacker) addPropertyChangeListener*(p0 : java_beans.PropertyChangeListener),NEW,ABSTRACT;

PROCEDURE (self:Pack200$Unpacker) properties*() : java_util.SortedMap,NEW,ABSTRACT;

PROCEDURE (self:Pack200$Unpacker) removePropertyChangeListener*(p0 : java_beans.PropertyChangeListener),NEW,ABSTRACT;

PROCEDURE (self:Pack200$Unpacker) unpack*(p0 : java_io.InputStream;
                                          p1 : JarOutputStream),NEW,ABSTRACT;

PROCEDURE (self:Pack200$Unpacker) unpack*(p0 : java_io.File;
                                          p1 : JarOutputStream),NEW,ABSTRACT;

END java_util_jar.