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

COVERAGE SUMMARY FOR SOURCE FILE [ExtractComicTask.java]

nameclass, %method, %block, %line, %
ExtractComicTask.java100% (1/1)100% (5/5)86%  (107/124)95%  (23.8/25)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ExtractComicTask100% (1/1)100% (5/5)86%  (107/124)95%  (23.8/25)
<static initializer> 100% (1/1)80%  (12/15)80%  (0.8/1)
ExtractComicTask (File, File): void 100% (1/1)82%  (64/78)93%  (13/14)
ExtractComicTask (): void 100% (1/1)100% (6/6)100% (3/3)
progressChanged (Task): void 100% (1/1)100% (5/5)100% (2/2)
start (): void 100% (1/1)100% (20/20)100% (5/5)

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.comic;
17 
18import java.io.File;
19import java.io.IOException;
20 
21import net.sf.jomic.tools.AbstractTask;
22import net.sf.jomic.tools.ExtractPdfImagesTask;
23import net.sf.jomic.tools.ExtractRarTask;
24import net.sf.jomic.tools.ExtractZipTask;
25import net.sf.jomic.tools.FileTools;
26import net.sf.jomic.tools.ProgressChangeListener;
27import net.sf.jomic.tools.Task;
28 
29/**
30 *  Task to extract a comic independent of its format.
31 *
32 * @see       net.sf.jomic.tools.ExtractPdfImagesTask
33 * @see       net.sf.jomic.tools.ExtractRarTask
34 * @see       net.sf.jomic.tools.ExtractZipTask
35 * @author    Thomas Aglassinger
36 */
37public class ExtractComicTask extends AbstractTask implements ProgressChangeListener
38{
39    private File comicFile;
40    private Task delegateTask;
41    private FileTools fileTools;
42    private File targetFolder;
43 
44    public ExtractComicTask(File newComicFile, File newTargetFolder)
45        throws IOException {
46        this();
47        comicFile = newComicFile;
48        targetFolder = newTargetFolder;
49 
50        String comicFormat = fileTools.obtainComicFormat(comicFile);
51 
52        if (comicFormat.equals(FileTools.FORMAT_PDF)) {
53            delegateTask = new ExtractPdfImagesTask(comicFile, targetFolder);
54        } else if (comicFormat.equals(FileTools.FORMAT_RAR)) {
55            ExtractRarTask extractRarTask = new ExtractRarTask(comicFile, targetFolder);
56 
57            delegateTask = extractRarTask;
58        } else if (comicFormat.equals(FileTools.FORMAT_ZIP)) {
59            delegateTask = new ExtractZipTask(comicFile, targetFolder);
60        } else {
61            assert false : "fileType=" + comicFormat;
62        }
63        setMaxProgress(delegateTask.getMaxProgress());
64    }
65 
66    private ExtractComicTask() {
67        super();
68        fileTools = FileTools.instance();
69    }
70 
71    /**
72     *  Set progress to progress of <code>source</code> task, which does the actual extraction.
73     */
74    public void progressChanged(Task source) {
75        setProgress(source.getProgress());
76    }
77 
78    public void start()
79        throws Exception {
80        delegateTask.addProgressChangeListener(this);
81        try {
82            delegateTask.start();
83        } finally {
84            delegateTask.removeProgressChangeListener(this);
85        }
86    }
87}

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