/*
 *  Licensed to the Apache Software Foundation (ASF) under one or more
 *  contributor license agreements.  See the NOTICE file distributed with
 *  this work for additional information regarding copyright ownership.
 *  The ASF licenses this file to You under the Apache License, Version 2.0
 *  (the "License"); you may not use this file except in compliance with
 *  the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 *
 */
package org.apache.commons.compress.archivers.zip;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.zip.ZipEntry;

List of known compression methods Many of these methods are currently not supported by commons compress
Since:1.5
/** * List of known compression methods * * Many of these methods are currently not supported by commons compress * * @since 1.5 */
public enum ZipMethod {
Compression method 0 for uncompressed entries.
See Also:
  • STORED.STORED
/** * Compression method 0 for uncompressed entries. * * @see ZipEntry#STORED */
STORED(ZipEntry.STORED),
UnShrinking. dynamic Lempel-Ziv-Welch-Algorithm
See Also:
/** * UnShrinking. * dynamic Lempel-Ziv-Welch-Algorithm * * @see <a href="https://www.pkware.com/documents/casestudies/APPNOTE.TXT">Explanation of fields: compression * method: (2 bytes)</a> */
UNSHRINKING(1),
Reduced with compression factor 1.
See Also:
/** * Reduced with compression factor 1. * * @see <a href="https://www.pkware.com/documents/casestudies/APPNOTE.TXT">Explanation of fields: compression * method: (2 bytes)</a> */
EXPANDING_LEVEL_1(2),
Reduced with compression factor 2.
See Also:
/** * Reduced with compression factor 2. * * @see <a href="https://www.pkware.com/documents/casestudies/APPNOTE.TXT">Explanation of fields: compression * method: (2 bytes)</a> */
EXPANDING_LEVEL_2(3),
Reduced with compression factor 3.
See Also:
/** * Reduced with compression factor 3. * * @see <a href="https://www.pkware.com/documents/casestudies/APPNOTE.TXT">Explanation of fields: compression * method: (2 bytes)</a> */
EXPANDING_LEVEL_3(4),
Reduced with compression factor 4.
See Also:
/** * Reduced with compression factor 4. * * @see <a href="https://www.pkware.com/documents/casestudies/APPNOTE.TXT">Explanation of fields: compression * method: (2 bytes)</a> */
EXPANDING_LEVEL_4(5),
Imploding.
See Also:
/** * Imploding. * * @see <a href="https://www.pkware.com/documents/casestudies/APPNOTE.TXT">Explanation of fields: compression * method: (2 bytes)</a> */
IMPLODING(6),
Tokenization.
See Also:
/** * Tokenization. * * @see <a href="https://www.pkware.com/documents/casestudies/APPNOTE.TXT">Explanation of fields: compression * method: (2 bytes)</a> */
TOKENIZATION(7),
Compression method 8 for compressed (deflated) entries.
See Also:
  • DEFLATED.DEFLATED
/** * Compression method 8 for compressed (deflated) entries. * * @see ZipEntry#DEFLATED */
DEFLATED(ZipEntry.DEFLATED),
Compression Method 9 for enhanced deflate.
See Also:
/** * Compression Method 9 for enhanced deflate. * * @see <a href="https://www.winzip.com/wz54.htm">https://www.winzip.com/wz54.htm</a> */
ENHANCED_DEFLATED(9),
PKWARE Data Compression Library Imploding.
See Also:
/** * PKWARE Data Compression Library Imploding. * * @see <a href="https://www.winzip.com/wz54.htm">https://www.winzip.com/wz54.htm</a> */
PKWARE_IMPLODING(10),
Compression Method 12 for bzip2.
See Also:
/** * Compression Method 12 for bzip2. * * @see <a href="https://www.winzip.com/wz54.htm">https://www.winzip.com/wz54.htm</a> */
BZIP2(12),
Compression Method 14 for LZMA.
See Also:
/** * Compression Method 14 for LZMA. * * @see <a href="https://www.7-zip.org/sdk.html">https://www.7-zip.org/sdk.html</a> * @see <a href="https://www.winzip.com/wz54.htm">https://www.winzip.com/wz54.htm</a> */
LZMA(14),
Compression Method 95 for XZ.
See Also:
/** * Compression Method 95 for XZ. * * @see <a href="https://www.winzip.com/wz54.htm">https://www.winzip.com/wz54.htm</a> */
XZ(95),
Compression Method 96 for Jpeg compression.
See Also:
/** * Compression Method 96 for Jpeg compression. * * @see <a href="https://www.winzip.com/wz54.htm">https://www.winzip.com/wz54.htm</a> */
JPEG(96),
Compression Method 97 for WavPack.
See Also:
/** * Compression Method 97 for WavPack. * * @see <a href="https://www.winzip.com/wz54.htm">https://www.winzip.com/wz54.htm</a> */
WAVPACK(97),
Compression Method 98 for PPMd.
See Also:
/** * Compression Method 98 for PPMd. * * @see <a href="https://www.winzip.com/wz54.htm">https://www.winzip.com/wz54.htm</a> */
PPMD(98),
Compression Method 99 for AES encryption.
See Also:
/** * Compression Method 99 for AES encryption. * * @see <a href="https://www.winzip.com/wz54.htm">https://www.winzip.com/wz54.htm</a> */
AES_ENCRYPTED(99),
Unknown compression method.
/** * Unknown compression method. */
UNKNOWN(); static final int UNKNOWN_CODE = -1; private final int code; private static final Map<Integer, ZipMethod> codeToEnum; static { final Map<Integer, ZipMethod> cte = new HashMap<>(); for (final ZipMethod method : values()) { cte.put(method.getCode(), method); } codeToEnum = Collections.unmodifiableMap(cte); } private ZipMethod() { this(UNKNOWN_CODE); }
private constructor for enum style class.
/** * private constructor for enum style class. */
ZipMethod(final int code) { this.code = code; }
the code of the compression method.
See Also:
  • getMethod.getMethod()
Returns:an integer code for the method
/** * the code of the compression method. * * @see ZipArchiveEntry#getMethod() * * @return an integer code for the method */
public int getCode() { return code; }
returns the ZipMethod for the given code or null if the method is not known.
Params:
  • code – the code
Returns:the ZipMethod for the given code or null if the method is not known.
/** * returns the {@link ZipMethod} for the given code or null if the * method is not known. * @param code the code * @return the {@link ZipMethod} for the given code or null if the * method is not known. */
public static ZipMethod getMethodByCode(final int code) { return codeToEnum.get(code); } }