Home | History | Annotate | Download | only in xz
      1 /*
      2  * BCJOptions
      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 abstract class BCJOptions extends FilterOptions {
     13     private final int alignment;
     14     int startOffset = 0;
     15 
     16     BCJOptions(int alignment) {
     17         this.alignment = alignment;
     18     }
     19 
     20     /**
     21      * Sets the start offset for the address conversions.
     22      * Normally this is useless so you shouldn't use this function.
     23      * The default value is <code>0</code>.
     24      */
     25     public void setStartOffset(int startOffset)
     26             throws UnsupportedOptionsException {
     27         if ((startOffset & (alignment - 1)) != 0)
     28             throw new UnsupportedOptionsException(
     29                     "Start offset must be a multiple of " + alignment);
     30 
     31         this.startOffset = startOffset;
     32     }
     33 
     34     /**
     35      * Gets the start offset.
     36      */
     37     public int getStartOffset() {
     38         return startOffset;
     39     }
     40 
     41     public int getEncoderMemoryUsage() {
     42         return SimpleOutputStream.getMemoryUsage();
     43     }
     44 
     45     public int getDecoderMemoryUsage() {
     46         return SimpleInputStream.getMemoryUsage();
     47     }
     48 
     49     public Object clone() {
     50         try {
     51             return super.clone();
     52         } catch (CloneNotSupportedException e) {
     53             assert false;
     54             throw new RuntimeException();
     55         }
     56     }
     57 }
     58