emul/mini/src/main/java/java/util/zip/ZipConstants.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Wed, 30 Jan 2013 14:00:17 +0100
branchjdk7-b147
changeset 609 48ef38e9677e
permissions -rw-r--r--
Adding classes necessary for usage of ZipInputStream
     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 }