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