emul/mini/src/main/java/java/util/zip/ZipConstants.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Thu, 07 Feb 2013 12:58:12 +0100
branchemul
changeset 694 0d277415ed02
permissions -rw-r--r--
Rebasing the Inflater support on jzlib which, unlike GNU ClassPath, has correct implementation of Huffman code. Making the implementation more easily testable by turning Inflater and ZipInputStream into pure delegates. Current implementation is going to need proper long support.
     1 /*
     2  * Copyright (c) 1995, 1996, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Oracle designates this
     8  * particular file as subject to the "Classpath" exception as provided
     9  * by Oracle in the LICENSE file that accompanied this code.
    10  *
    11  * This code is distributed in the hope that it will be useful, but WITHOUT
    12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    14  * version 2 for more details (a copy is included in the LICENSE file that
    15  * accompanied this code).
    16  *
    17  * You should have received a copy of the GNU General Public License version
    18  * 2 along with this work; if not, write to the Free Software Foundation,
    19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    20  *
    21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    22  * or visit www.oracle.com if you need additional information or have any
    23  * questions.
    24  */
    25 
    26 package java.util.zip;
    27 
    28 /*
    29  * This interface defines the constants that are used by the classes
    30  * which manipulate ZIP files.
    31  *
    32  * @author      David Connelly
    33  */
    34 interface ZipConstants {
    35     /*
    36      * Header signatures
    37      */
    38     static long LOCSIG = 0x04034b50L;   // "PK\003\004"
    39     static long EXTSIG = 0x08074b50L;   // "PK\007\008"
    40     static long CENSIG = 0x02014b50L;   // "PK\001\002"
    41     static long ENDSIG = 0x06054b50L;   // "PK\005\006"
    42 
    43     /*
    44      * Header sizes in bytes (including signatures)
    45      */
    46     static final int LOCHDR = 30;       // LOC header size
    47     static final int EXTHDR = 16;       // EXT header size
    48     static final int CENHDR = 46;       // CEN header size
    49     static final int ENDHDR = 22;       // END header size
    50 
    51     /*
    52      * Local file (LOC) header field offsets
    53      */
    54     static final int LOCVER = 4;        // version needed to extract
    55     static final int LOCFLG = 6;        // general purpose bit flag
    56     static final int LOCHOW = 8;        // compression method
    57     static final int LOCTIM = 10;       // modification time
    58     static final int LOCCRC = 14;       // uncompressed file crc-32 value
    59     static final int LOCSIZ = 18;       // compressed size
    60     static final int LOCLEN = 22;       // uncompressed size
    61     static final int LOCNAM = 26;       // filename length
    62     static final int LOCEXT = 28;       // extra field length
    63 
    64     /*
    65      * Extra local (EXT) header field offsets
    66      */
    67     static final int EXTCRC = 4;        // uncompressed file crc-32 value
    68     static final int EXTSIZ = 8;        // compressed size
    69     static final int EXTLEN = 12;       // uncompressed size
    70 
    71     /*
    72      * Central directory (CEN) header field offsets
    73      */
    74     static final int CENVEM = 4;        // version made by
    75     static final int CENVER = 6;        // version needed to extract
    76     static final int CENFLG = 8;        // encrypt, decrypt flags
    77     static final int CENHOW = 10;       // compression method
    78     static final int CENTIM = 12;       // modification time
    79     static final int CENCRC = 16;       // uncompressed file crc-32 value
    80     static final int CENSIZ = 20;       // compressed size
    81     static final int CENLEN = 24;       // uncompressed size
    82     static final int CENNAM = 28;       // filename length
    83     static final int CENEXT = 30;       // extra field length
    84     static final int CENCOM = 32;       // comment length
    85     static final int CENDSK = 34;       // disk number start
    86     static final int CENATT = 36;       // internal file attributes
    87     static final int CENATX = 38;       // external file attributes
    88     static final int CENOFF = 42;       // LOC header offset
    89 
    90     /*
    91      * End of central directory (END) header field offsets
    92      */
    93     static final int ENDSUB = 8;        // number of entries on this disk
    94     static final int ENDTOT = 10;       // total number of entries
    95     static final int ENDSIZ = 12;       // central directory size in bytes
    96     static final int ENDOFF = 16;       // offset of first CEN header
    97     static final int ENDCOM = 20;       // zip file comment length
    98 }