EMMA Coverage Report (generated Fri Feb 14 08:28:31 UTC 2014)
[all classes][org.qedeq.base.io]

COVERAGE SUMMARY FOR SOURCE FILE [VersionSet.java]

nameclass, %method, %block, %line, %
VersionSet.java100% (1/1)100% (13/13)100% (128/128)100% (38/38)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class VersionSet100% (1/1)100% (13/13)100% (128/128)100% (38/38)
VersionSet (): void 100% (1/1)100% (8/8)100% (3/3)
VersionSet (String): void 100% (1/1)100% (11/11)100% (4/4)
add (String): void 100% (1/1)100% (7/7)100% (2/2)
add (Version): void 100% (1/1)100% (6/6)100% (2/2)
addAll (VersionSet): boolean 100% (1/1)100% (6/6)100% (1/1)
clear (): void 100% (1/1)100% (4/4)100% (2/2)
contains (String): boolean 100% (1/1)100% (16/16)100% (6/6)
contains (Version): boolean 100% (1/1)100% (5/5)100% (1/1)
equals (Object): boolean 100% (1/1)100% (12/12)100% (3/3)
hashCode (): int 100% (1/1)100% (4/4)100% (1/1)
isEmpty (): boolean 100% (1/1)100% (4/4)100% (1/1)
iterator (): Iterator 100% (1/1)100% (4/4)100% (1/1)
toString (): String 100% (1/1)100% (41/41)100% (11/11)

1/* This file is part of the project "Hilbert II" - http://www.qedeq.org
2 *
3 * Copyright 2000-2014,  Michael Meyling <mime@qedeq.org>.
4 *
5 * "Hilbert II" is free software; you can redistribute
6 * it and/or modify it under the terms of the GNU General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 */
15 
16package org.qedeq.base.io;
17 
18import java.util.Iterator;
19import java.util.Set;
20import java.util.TreeSet;
21 
22 
23/**
24 * A set of version numbers.
25 *
26 * @author  Michael Meyling
27 */
28public final class VersionSet {
29 
30    /** Set that contains our versions. */
31    private final Set set;
32 
33    /**
34     * Constructs version set object. You must give a version string in a form like
35     *  <em>a</em>.<em>b</em>.<em>c</em> where a, b and c are non negative integers.
36     * These numbers are called <em>Major</em> <em>Minor</em> and <em>Patch</em>.
37     *
38     * @param   version     Version string.
39     * @throws  IllegalArgumentException    Version string has wrong format.
40     * @throws  NullPointerException        No null pointer as argument accepted.
41     */
42    public VersionSet(final String version) {
43        set = new TreeSet();
44        add(version);
45    }
46 
47    /**
48     * Constructs version set object.
49     */
50    public VersionSet() {
51        set = new TreeSet();
52    }
53 
54    /**
55     * Does the set contain given version number.
56     *
57     * @param   version Version string. If it has not the correct form, false is returned.
58     * @return  Is given version in set?
59     */
60    public boolean contains(final String version) {
61        Version v = null;
62        try {
63            v = new Version(version);
64        } catch (RuntimeException e) {
65            return false;
66        }
67        return set.contains(v);
68    }
69 
70    /**
71     * Does the set contain given version number.
72     *
73     * @param   version Version to check for.
74     * @return  Is given version in set?
75     */
76    public boolean contains(final Version version) {
77        return set.contains(version);
78    }
79 
80    /**
81     * Add version number.
82     *
83     * @param   version     Version string.
84     * @throws  IllegalArgumentException    Version string has wrong format.
85     * @throws  NullPointerException        No null pointer as argument accepted.
86     */
87    public void add(final String version) {
88        add(new Version(version));
89    }
90 
91    /**
92     * Add version number.
93     *
94     * @param   version     Version string.
95     */
96    public void add(final Version version) {
97        set.add(version);
98    }
99 
100    /**
101     * Add contents of another version set.
102     *
103     * @param   versions    Other version set.
104     * @return  Did current set change?
105     */
106    public boolean addAll(final VersionSet versions) {
107        return set.addAll(versions.set);
108    }
109 
110    /**
111     * Is this set empty?
112     *
113     * @return  Is set empty?
114     */
115    public boolean isEmpty() {
116        return set.isEmpty();
117    }
118 
119    /**
120     * Removes all of the elements from this set.
121     */
122    public void clear() {
123        set.clear();
124    }
125 
126    /**
127     * Returns an iterator over the elements in this set.  The elements are
128     * returned in ascending order.
129     *
130     * @return  Iterator.
131     */
132    public Iterator iterator() {
133        return set.iterator();
134    }
135 
136    public int hashCode() {
137        return set.hashCode();
138    }
139 
140    public boolean equals(final Object o) {
141        if (!(o instanceof VersionSet)) {
142            return false;
143        }
144        return set.equals(((VersionSet) o).set);
145    }
146 
147    public String toString() {
148        final StringBuffer buffer = new StringBuffer(30);
149        buffer.append("{");
150        Iterator e = set.iterator();
151        boolean notFirst = false;
152        while (e.hasNext()) {
153            if (notFirst) {
154                buffer.append(", ");
155            } else {
156                notFirst = true;
157            }
158            buffer.append(String.valueOf(e.next()));
159        }
160        buffer.append("}");
161        return buffer.toString();
162    }
163 
164}

[all classes][org.qedeq.base.io]
EMMA 2.1.5320 (stable) (C) Vladimir Roubtsov