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

COVERAGE SUMMARY FOR SOURCE FILE [ImageInfo.java]

nameclass, %method, %block, %line, %
ImageInfo.java100% (1/1)90%  (9/10)74%  (99/134)86%  (24/28)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ImageInfo100% (1/1)90%  (9/10)74%  (99/134)86%  (24/28)
getFile (): File 0%   (0/1)0%   (0/3)0%   (0/1)
getError (): Throwable 100% (1/1)67%  (8/12)78%  (1.6/2)
getFormat (): String 100% (1/1)67%  (8/12)78%  (1.6/2)
getSize (): Dimension 100% (1/1)67%  (8/12)78%  (1.6/2)
getHeight (): int 100% (1/1)69%  (9/13)78%  (1.6/2)
getWidth (): int 100% (1/1)69%  (9/13)78%  (1.6/2)
ImageInfo (File): void 100% (1/1)80%  (35/44)96%  (12.4/13)
<static initializer> 100% (1/1)80%  (12/15)80%  (0.8/1)
ImageInfo (): void 100% (1/1)100% (3/3)100% (2/2)
hasError (): boolean 100% (1/1)100% (7/7)100% (1/1)

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.Dimension;
19import java.io.File;
20 
21import javax.imageio.stream.ImageInputStream;
22 
23/**
24 *  Information about size and format of an image. During construction, this information is obtained
25 *  and later available via various getters. However, if the information cannot be obtained, <code>hasError()</code>
26 *  is <code>true</code> and most getters won't be available. An exception of this is <code>getError()</code>
27 *  which returs details about why the image information could not be obtained.
28 *
29 * @see       #hasError()
30 * @see       #getError()
31 * @author    Thomas Aglassinger
32 */
33public class ImageInfo
34{
35    private Throwable error;
36    private File file;
37    private String format;
38    private Dimension size;
39 
40    public ImageInfo(File newFile) {
41        this();
42        assert newFile != null;
43        file = newFile;
44 
45        ImageTools imageTools = ImageTools.instance();
46 
47        try {
48            ImageInputStream imageStream = imageTools.createImageInputStream(file);
49 
50            try {
51                format = imageTools.getImageFormat(imageStream);
52                size = imageTools.getImageDimension(imageStream);
53            } finally {
54                imageStream.close();
55            }
56        } catch (Throwable newError) {
57            error = newError;
58        }
59    }
60 
61    private ImageInfo() {
62        super();
63    }
64 
65    public Throwable getError() {
66        assert hasError();
67        return error;
68    }
69 
70    /**
71     *  Return the file the image information was obtained from. This information is available even
72     *  if <code>hasError()</code> is <code>true</code>.
73     */
74    public File getFile() {
75        return file;
76    }
77 
78    /**
79     *  Get the name of the format of the image, for example "jpeg". This is the format according to
80     *  ImageIO, not the file suffix.
81     */
82    public String getFormat() {
83        assert !hasError();
84        return format;
85    }
86 
87    /**
88     *  Get the height of the image in pixels.
89     */
90    public int getHeight() {
91        assert !hasError();
92        return size.height;
93    }
94 
95    /**
96     *  Get the size of the image in pixels.
97     */
98    public Dimension getSize() {
99        assert !hasError();
100        return size;
101    }
102 
103    /**
104     *  Get the width of the image in pixels.
105     */
106    public int getWidth() {
107        assert !hasError();
108        return size.width;
109    }
110 
111    /**
112     *  Return <code>true</code> if the image is definitely broken, in other words either the format
113     *  or the size could not be obtained.
114     */
115    public boolean hasError() {
116        return error != null;
117    }
118}

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