~ubuntu-branches/ubuntu/utopic/libcommons-compress-java/utopic

« back to all changes in this revision

Viewing changes to src/main/java/org/apache/commons/compress/archivers/zip/ZipMethod.java

  • Committer: Package Import Robot
  • Author(s): tony mancill
  • Date: 2013-05-17 07:53:06 UTC
  • mfrom: (7.1.1 experimental)
  • Revision ID: package-import@ubuntu.com-20130517075306-4yt0jyr782vasejl
Tags: 1.5-1
* Team upload.
* Upload to unstable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 *  Licensed to the Apache Software Foundation (ASF) under one or more
 
3
 *  contributor license agreements.  See the NOTICE file distributed with
 
4
 *  this work for additional information regarding copyright ownership.
 
5
 *  The ASF licenses this file to You under the Apache License, Version 2.0
 
6
 *  (the "License"); you may not use this file except in compliance with
 
7
 *  the License.  You may obtain a copy of the License at
 
8
 *
 
9
 *      http://www.apache.org/licenses/LICENSE-2.0
 
10
 *
 
11
 *  Unless required by applicable law or agreed to in writing, software
 
12
 *  distributed under the License is distributed on an "AS IS" BASIS,
 
13
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
14
 *  See the License for the specific language governing permissions and
 
15
 *  limitations under the License.
 
16
 *
 
17
 */
 
18
package org.apache.commons.compress.archivers.zip;
 
19
 
 
20
import java.util.Collections;
 
21
import java.util.HashMap;
 
22
import java.util.Map;
 
23
import java.util.zip.ZipEntry;
 
24
 
 
25
/**
 
26
 * List of known compression methods 
 
27
 * 
 
28
 * Many of these methods are currently not supported by commons compress
 
29
 * 
 
30
 * @since 1.5
 
31
 */
 
32
public enum ZipMethod {
 
33
 
 
34
    /**
 
35
     * Compression method 0 for uncompressed entries.
 
36
     * 
 
37
     * @see ZipEntry#STORED
 
38
     */
 
39
    STORED(ZipEntry.STORED),
 
40
 
 
41
    /**
 
42
     * UnShrinking.
 
43
     * dynamic Lempel-Ziv-Welch-Algorithm
 
44
     * 
 
45
     * @see <a href="http://www.pkware.com/documents/casestudies/APPNOTE.TXT">Explanation of fields: compression
 
46
     *      method: (2 bytes)</a>
 
47
     */
 
48
    UNSHRINKING(1),
 
49
 
 
50
    /**
 
51
     * Reduced with compression factor 1.
 
52
     * 
 
53
     * @see <a href="http://www.pkware.com/documents/casestudies/APPNOTE.TXT">Explanation of fields: compression
 
54
     *      method: (2 bytes)</a>
 
55
     */
 
56
    EXPANDING_LEVEL_1(2),
 
57
 
 
58
    /**
 
59
     * Reduced with compression factor 2.
 
60
     * 
 
61
     * @see <a href="http://www.pkware.com/documents/casestudies/APPNOTE.TXT">Explanation of fields: compression
 
62
     *      method: (2 bytes)</a>
 
63
     */
 
64
    EXPANDING_LEVEL_2(3),
 
65
 
 
66
    /**
 
67
     * Reduced with compression factor 3.
 
68
     * 
 
69
     * @see <a href="http://www.pkware.com/documents/casestudies/APPNOTE.TXT">Explanation of fields: compression
 
70
     *      method: (2 bytes)</a>
 
71
     */
 
72
    EXPANDING_LEVEL_3(4),
 
73
 
 
74
    /**
 
75
     * Reduced with compression factor 4.
 
76
     * 
 
77
     * @see <a href="http://www.pkware.com/documents/casestudies/APPNOTE.TXT">Explanation of fields: compression
 
78
     *      method: (2 bytes)</a>
 
79
     */
 
80
    EXPANDING_LEVEL_4(5),
 
81
 
 
82
    /**
 
83
     * Imploding.
 
84
     * 
 
85
     * @see <a href="http://www.pkware.com/documents/casestudies/APPNOTE.TXT">Explanation of fields: compression
 
86
     *      method: (2 bytes)</a>
 
87
     */
 
88
    IMPLODING(6),
 
89
 
 
90
    /**
 
91
     * Tokenization.
 
92
     * 
 
93
     * @see <a href="http://www.pkware.com/documents/casestudies/APPNOTE.TXT">Explanation of fields: compression
 
94
     *      method: (2 bytes)</a>
 
95
     */
 
96
    TOKENIZATION(7),
 
97
 
 
98
    /**
 
99
     * Compression method 8 for compressed (deflated) entries.
 
100
     * 
 
101
     * @see ZipEntry#DEFLATED
 
102
     */
 
103
    DEFLATED(ZipEntry.DEFLATED),
 
104
 
 
105
    /**
 
106
     * Compression Method 9 for enhanced deflate.
 
107
     * 
 
108
     * @see "http://www.winzip.com/wz54.htm"
 
109
     */
 
110
    ENHANCED_DEFLATED(9),
 
111
 
 
112
    /**
 
113
     * PKWARE Data Compression Library Imploding.
 
114
     * 
 
115
     * @see "http://www.winzip.com/wz54.htm"
 
116
     */
 
117
    PKWARE_IMPLODING(10),
 
118
 
 
119
    /**
 
120
     * Compression Method 12 for bzip2.
 
121
     * 
 
122
     * @see "http://www.winzip.com/wz54.htm"
 
123
     */
 
124
    BZIP2(12),
 
125
 
 
126
    /**
 
127
     * Compression Method 14 for LZMA.
 
128
     * 
 
129
     * @see "http://www.7-zip.org/sdk.html"
 
130
     * @see "http://www.winzip.com/wz54.htm"
 
131
     */
 
132
    LZMA(14),
 
133
 
 
134
 
 
135
    /**
 
136
     * Compression Method 96 for Jpeg compression.
 
137
     * 
 
138
     * @see "http://www.winzip.com/wz54.htm"
 
139
     */
 
140
    JPEG(96),
 
141
 
 
142
    /**
 
143
     * Compression Method 97 for WavPack.
 
144
     * 
 
145
     * @see "http://www.winzip.com/wz54.htm"
 
146
     */
 
147
    WAVPACK(97),
 
148
 
 
149
    /**
 
150
     * Compression Method 98 for PPMd.
 
151
     * 
 
152
     * @see "http://www.winzip.com/wz54.htm"
 
153
     */
 
154
    PPMD(98),
 
155
 
 
156
 
 
157
    /**
 
158
     * Compression Method 99 for AES encryption.
 
159
     * 
 
160
     * @see "http://www.winzip.com/wz54.htm"
 
161
     */
 
162
    AES_ENCRYPTED(99),
 
163
 
 
164
    /**
 
165
     * Unknown compression method.
 
166
     */
 
167
    UNKNOWN(-1);
 
168
 
 
169
    private final int code;
 
170
 
 
171
    private static final Map<Integer, ZipMethod> codeToEnum;
 
172
 
 
173
    static {
 
174
        Map<Integer, ZipMethod> cte = new HashMap<Integer, ZipMethod>();
 
175
        for (ZipMethod method : values()) {
 
176
            cte.put(Integer.valueOf(method.getCode()), method);
 
177
        }
 
178
        codeToEnum = Collections.unmodifiableMap(cte);
 
179
    }
 
180
 
 
181
    /**
 
182
     * private constructor for enum style class.
 
183
     */
 
184
    ZipMethod(int code) {
 
185
        this.code = code;
 
186
    }
 
187
 
 
188
    /**
 
189
     * the code of the compression method.
 
190
     * 
 
191
     * @see ZipArchiveEntry#getMethod()
 
192
     * 
 
193
     * @return an integer code for the method
 
194
     */
 
195
    public int getCode() {
 
196
        return code;
 
197
    }
 
198
 
 
199
 
 
200
    /**
 
201
     * returns the {@link ZipMethod} for the given code or null if the
 
202
     * method is not known.
 
203
     */
 
204
    public static ZipMethod getMethodByCode(int code) {
 
205
        return codeToEnum.get(Integer.valueOf(code));
 
206
    }
 
207
}