Home | History | Annotate | Download | only in xz
      1 /*
      2  * MemoryLimitException
      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 /**
     13  * Thrown when the memory usage limit given to the XZ decompressor
     14  * would be exceeded.
     15  * <p>
     16  * The amount of memory required and the memory usage limit are
     17  * included in the error detail message in human readable format.
     18  */
     19 public class MemoryLimitException extends XZIOException {
     20     private static final long serialVersionUID = 3L;
     21 
     22     private final int memoryNeeded;
     23     private final int memoryLimit;
     24 
     25     /**
     26      * Creates a new MemoryLimitException.
     27      * <p>
     28      * The amount of memory needed and the memory usage limit are
     29      * included in the error detail message.
     30      *
     31      * @param   memoryNeeded    amount of memory needed as kibibytes (KiB)
     32      * @param   memoryLimit     specified memory usage limit as kibibytes (KiB)
     33      */
     34     public MemoryLimitException(int memoryNeeded, int memoryLimit) {
     35         super("" + memoryNeeded + " KiB of memory would be needed; limit was "
     36               + memoryLimit + " KiB");
     37 
     38         this.memoryNeeded = memoryNeeded;
     39         this.memoryLimit = memoryLimit;
     40     }
     41 
     42     /**
     43      * Gets how much memory is required to decompress the data.
     44      *
     45      * @return      amount of memory needed as kibibytes (KiB)
     46      */
     47     public int getMemoryNeeded() {
     48         return memoryNeeded;
     49     }
     50 
     51     /**
     52      * Gets what the memory usage limit was at the time the exception
     53      * was created.
     54      *
     55      * @return      memory usage limit as kibibytes (KiB)
     56      */
     57     public int getMemoryLimit() {
     58         return memoryLimit;
     59     }
     60 }
     61