EMMA Coverage Report (generated Sat Oct 08 11:41:37 CEST 2011)
[all classes][net.sf.jomic.tools]

COVERAGE SUMMARY FOR SOURCE FILE [ImageCacheEntry.java]

nameclass, %method, %block, %line, %
ImageCacheEntry.java100% (1/1)100% (8/8)76%  (110/145)87%  (24.2/28)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ImageCacheEntry100% (1/1)100% (8/8)76%  (110/145)87%  (24.2/28)
getImage (): RenderedImage 100% (1/1)67%  (8/12)78%  (1.6/2)
getImageFile (): File 100% (1/1)67%  (8/12)78%  (1.6/2)
getLastAccessed (): long 100% (1/1)67%  (8/12)78%  (1.6/2)
updateLastAccessed (): void 100% (1/1)69%  (9/13)85%  (2.6/3)
ImageCacheEntry (File, RenderedImage): void 100% (1/1)70%  (19/27)87%  (6.1/7)
dispose (): void 100% (1/1)79%  (15/19)91%  (4.6/5)
<static initializer> 100% (1/1)80%  (12/15)80%  (0.8/1)
getImageSize (): long 100% (1/1)89%  (31/35)93%  (5.6/6)

1// Jomic - a viewer for comic book archives.
2// Copyright (C) 2004-2011 Thomas Aglassinger
3//
4// This program is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// This program is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12// GNU General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with this program.  If not, see <http://www.gnu.org/licenses/>.
16package net.sf.jomic.tools;
17 
18import java.awt.image.RenderedImage;
19import java.io.File;
20 
21/**
22 *  Entry in ImageCache.
23 *
24 * @see       net.sf.jomic.tools.ImageCache
25 * @author    Thomas Aglassinger
26 */
27public class ImageCacheEntry
28{
29    private boolean disposed;
30    private RenderedImage image;
31    private File imageFile;
32    private long lastAccessed;
33 
34    public ImageCacheEntry(File newImageFile, RenderedImage newImage) {
35        assert newImageFile != null;
36        assert newImage != null;
37        image = newImage;
38        imageFile = newImageFile;
39        updateLastAccessed();
40    }
41 
42    /**
43     *  Get the actual image data from memory.
44     */
45    public RenderedImage getImage() {
46        assert !disposed;
47        return image;
48    }
49 
50    /**
51     *  Get the file from which the image data where read.
52     */
53    public File getImageFile() {
54        assert !disposed;
55        return imageFile;
56    }
57 
58    /**
59     *  Get the approximate size the image uses in memory.
60     */
61    // TODO: Figure out how to compute the memory size of tiled images.
62    public long getImageSize() {
63        assert !disposed;
64        int width = image.getWidth();
65        int height = image.getHeight();
66        int depth = image.getSampleModel().getNumBands();
67        // Note: multiplying by 2 seems to consider the overhead somewhat properly.
68        long result = 2 * ((long) width) * height * depth;
69 
70        return result;
71    }
72 
73    /**
74     *  Get timestamp when entry was last accessed.
75     */
76    public long getLastAccessed() {
77        assert !disposed;
78        return lastAccessed;
79    }
80 
81    /**
82     *  Dispose entry by removing the reference to the source image, thus allowing the garbage
83     *  collector to release the memory allocated by it. After calling this method, the entry must
84     *  not be used anymore.
85     */
86    public void dispose() {
87        assert !disposed;
88        image = null;
89        imageFile = null;
90        disposed = true;
91    }
92 
93    void updateLastAccessed() {
94        assert !disposed;
95        lastAccessed = System.currentTimeMillis();
96    }
97}

[all classes][net.sf.jomic.tools]
EMMA 2.0.4217 (C) Vladimir Roubtsov