• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * MemoryLimitException
3  *
4  * Author: Lasse Collin <lasse.collin@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      */
MemoryLimitException(int memoryNeeded, int memoryLimit)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      */
getMemoryNeeded()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      */
getMemoryLimit()57     public int getMemoryLimit() {
58         return memoryLimit;
59     }
60 }
61