Home | History | Annotate | Download | only in xz
      1 /*
      2  * LZMA2Decoder
      3  *
      4  * Author: Lasse Collin <lasse.collin (at) tukaani.org>
      5  *
      6  * This file has been put into the public domain.
      7  * You can do whatever you want with this file.
      8  */
      9 
     10 package org.tukaani.xz;
     11 
     12 import java.io.InputStream;
     13 
     14 class LZMA2Decoder extends LZMA2Coder implements FilterDecoder {
     15     private int dictSize;
     16 
     17     LZMA2Decoder(byte[] props) throws UnsupportedOptionsException {
     18         // Up to 1.5 GiB dictionary is supported. The bigger ones
     19         // are too big for int.
     20         if (props.length != 1 || (props[0] & 0xFF) > 37)
     21             throw new UnsupportedOptionsException(
     22                     "Unsupported LZMA2 properties");
     23 
     24         dictSize = 2 | (props[0] & 1);
     25         dictSize <<= (props[0] >>> 1) + 11;
     26     }
     27 
     28     public int getMemoryUsage() {
     29         return LZMA2InputStream.getMemoryUsage(dictSize);
     30     }
     31 
     32     public InputStream getInputStream(InputStream in) {
     33         return new LZMA2InputStream(in, dictSize);
     34     }
     35 }
     36