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

COVERAGE SUMMARY FOR SOURCE FILE [NumberedNameComparator.java]

nameclass, %method, %block, %line, %
NumberedNameComparator.java100% (1/1)100% (3/3)77%  (62/81)86%  (13.8/16)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class NumberedNameComparator100% (1/1)100% (3/3)77%  (62/81)86%  (13.8/16)
compare (Object, Object): int 100% (1/1)71%  (39/55)82%  (9/11)
<static initializer> 100% (1/1)80%  (12/15)80%  (0.8/1)
NumberedNameComparator (boolean): void 100% (1/1)100% (11/11)100% (4/4)

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.util.Comparator;
19 
20/**
21 *  Comparator for NumberedNames.
22 *
23 * @see       net.sf.jomic.tools.NumberedName
24 * @author    Thomas Aglassinger
25 */
26public class NumberedNameComparator implements Comparator
27{
28 
29    private boolean demoronized;
30    private NaturalCaseInsensitiveOrderComparator naturalComparator;
31 
32    /**
33     *  Create a new Comparator for NumberedNames.
34     *
35     * @see                    NumberedName#getName(boolean)
36     * @param  newDemoronized  if true, names are demoronized before the comparison.
37     */
38    public NumberedNameComparator(boolean newDemoronized) {
39        demoronized = newDemoronized;
40        naturalComparator = new NaturalCaseInsensitiveOrderComparator();
41    }
42 
43    public int compare(Object some, Object other) {
44        // TODO: implement Comparator properly: handle null arguments and non-NumberedNames
45        assert some != null;
46        assert other != null;
47        int result;
48        NumberedName someName = (NumberedName) some;
49        NumberedName otherName = (NumberedName) other;
50 
51        if (someName.getPath().equalsIgnoreCase(otherName.getPath())) {
52            String somePlainName = someName.getName(demoronized);
53            String otherPlainName = otherName.getName(demoronized);
54 
55            result = naturalComparator.compare(somePlainName, otherPlainName);
56        } else {
57            result = naturalComparator.compare(someName.getFullName(), otherName.getFullName());
58        }
59        return result;
60    }
61}

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