|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ElementSet | Line # 32 | 69 | 36 | 100% |
1.0
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
(82) | |||
Result | |||
0.3852459
|
org.qedeq.kernel.bo.service.logic.SimpleProofFinderPluginTest.testPlugin org.qedeq.kernel.bo.service.logic.SimpleProofFinderPluginTest.testPlugin | 1 PASS | |
0.3852459
|
org.qedeq.kernel.bo.service.logic.SimpleProofFinderPluginTest.testPlugin2 org.qedeq.kernel.bo.service.logic.SimpleProofFinderPluginTest.testPlugin2 | 1 PASS | |
0.3852459
|
org.qedeq.kernel.bo.service.logic.SimpleProofFinderPluginTest.testPluginFast org.qedeq.kernel.bo.service.logic.SimpleProofFinderPluginTest.testPluginFast | 1 PASS | |
0.3852459
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative07 org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative07 | 1 PASS | |
0.3852459
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative07 org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative07 | 1 PASS | |
0.36885247
|
org.qedeq.kernel.bo.service.logic.FormalProofCheckerPluginTest.testPlugin2 org.qedeq.kernel.bo.service.logic.FormalProofCheckerPluginTest.testPlugin2 | 1 PASS | |
0.36885247
|
org.qedeq.kernel.bo.service.logic.QedeqBoFormalLogicCheckerDirectTest.testNegative04 org.qedeq.kernel.bo.service.logic.QedeqBoFormalLogicCheckerDirectTest.testNegative04 | 1 PASS | |
0.36885247
|
org.qedeq.kernel.bo.service.logic.FormalProofCheckerPluginTest.testPlugin org.qedeq.kernel.bo.service.logic.FormalProofCheckerPluginTest.testPlugin | 1 PASS | |
0.36885247
|
org.qedeq.kernel.bo.logic.wf.FormulaCheckerContextTest.testNegative04 org.qedeq.kernel.bo.logic.wf.FormulaCheckerContextTest.testNegative04 | 1 PASS | |
0.36885247
|
org.qedeq.kernel.bo.service.logic.FormalProofCheckerPluginTest.testPlugin4 org.qedeq.kernel.bo.service.logic.FormalProofCheckerPluginTest.testPlugin4 | 1 PASS | |
0.36885247
|
org.qedeq.kernel.bo.logic.proof.checker.ProofCheckerTest.testCheck6 org.qedeq.kernel.bo.logic.proof.checker.ProofCheckerTest.testCheck6 | 1 PASS | |
0.36885247
|
org.qedeq.kernel.bo.service.logic.FormalProofCheckerPluginTest.testPlugin3 org.qedeq.kernel.bo.service.logic.FormalProofCheckerPluginTest.testPlugin3 | 1 PASS | |
0.36885247
|
org.qedeq.kernel.bo.logic.proof.checker.ProofCheckerTest.testCheck4 org.qedeq.kernel.bo.logic.proof.checker.ProofCheckerTest.testCheck4 | 1 PASS | |
0.36885247
|
org.qedeq.kernel.bo.logic.proof.checker.ProofCheckerTest.testCheck1 org.qedeq.kernel.bo.logic.proof.checker.ProofCheckerTest.testCheck1 | 1 PASS | |
0.36885247
|
org.qedeq.kernel.bo.service.logic.QedeqBoFormalLogicCheckerDirectTest.testNegative03 org.qedeq.kernel.bo.service.logic.QedeqBoFormalLogicCheckerDirectTest.testNegative03 | 1 PASS | |
0.36885247
|
org.qedeq.kernel.bo.logic.wf.FormulaCheckerContextTest.testNegative03 org.qedeq.kernel.bo.logic.wf.FormulaCheckerContextTest.testNegative03 | 1 PASS | |
0.29508197
|
org.qedeq.kernel.se.dto.list.ElementSetTest.testNewDelta org.qedeq.kernel.se.dto.list.ElementSetTest.testNewDelta | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.service.heuristic.HeuristicCheckerPluginTest.testQedeqSetTheoryScript1 org.qedeq.kernel.bo.service.heuristic.HeuristicCheckerPluginTest.testQedeqSetTheoryScript1 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.service.heuristic.HeuristicCheckerPluginTest.testQedeqLogicScript1 org.qedeq.kernel.bo.service.heuristic.HeuristicCheckerPluginTest.testQedeqLogicScript1 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.service.control.QedeqBoFactoryTest.testCreateStringQedeq5 org.qedeq.kernel.bo.service.control.QedeqBoFactoryTest.testCreateStringQedeq5 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.service.heuristic.DynamicHeuristicCheckerPluginTest.testQedeqSampleScript1 org.qedeq.kernel.bo.service.heuristic.DynamicHeuristicCheckerPluginTest.testQedeqSampleScript1 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testGeneration org.qedeq.kernel.bo.latex.GenerateLatexTest.testGeneration | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.logic.wf.FormulaCheckerContextTest.testPositive03 org.qedeq.kernel.bo.logic.wf.FormulaCheckerContextTest.testPositive03 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.logic.proof.finder.ProofFinderImplTest.testFind org.qedeq.kernel.bo.logic.proof.finder.ProofFinderImplTest.testFind | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.service.heuristic.HeuristicCheckerPluginTest.testQedeqSetTheoryScript2 org.qedeq.kernel.bo.service.heuristic.HeuristicCheckerPluginTest.testQedeqSetTheoryScript2 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.logic.wf.FormulaCheckerContextTest.testPositive04 org.qedeq.kernel.bo.logic.wf.FormulaCheckerContextTest.testPositive04 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative08 org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative08 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.service.latex.Qedeq2LatexTest.testQ2L001_v2 org.qedeq.kernel.bo.service.latex.Qedeq2LatexTest.testQ2L001_v2 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative06 org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative06 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.service.latex.Qedeq2LatexTest.testQ2L001_v1 org.qedeq.kernel.bo.service.latex.Qedeq2LatexTest.testQ2L001_v1 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.service.latex.Qedeq2LatexTest.testQ2L003 org.qedeq.kernel.bo.service.latex.Qedeq2LatexTest.testQ2L003 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.service.unicode.GenerateUtf8Test.testGeneration1 org.qedeq.kernel.bo.service.unicode.GenerateUtf8Test.testGeneration1 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testGeneration org.qedeq.kernel.bo.latex.GenerateLatexTest.testGeneration | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.service.control.ModuleConstantsExistenceCheckerTest.testModuleConstantsExistenceChecker_05 org.qedeq.kernel.bo.service.control.ModuleConstantsExistenceCheckerTest.testModuleConstantsExistenceChecker_05 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative05 org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative05 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.service.control.QedeqBoFactoryTest.testCreateStringQedeq4 org.qedeq.kernel.bo.service.control.QedeqBoFactoryTest.testCreateStringQedeq4 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.service.logic.QedeqBoFormalLogicCheckerTest.testCheckModule org.qedeq.kernel.bo.service.logic.QedeqBoFormalLogicCheckerTest.testCheckModule | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.logic.proof.finder.ProofFinderImplTest.testFind2 org.qedeq.kernel.bo.logic.proof.finder.ProofFinderImplTest.testFind2 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.service.unicode.GenerateUtf8Test.testGeneration2 org.qedeq.kernel.bo.service.unicode.GenerateUtf8Test.testGeneration2 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative06 org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative06 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.service.unicode.GenerateUtf8Test.testGeneration4 org.qedeq.kernel.bo.service.unicode.GenerateUtf8Test.testGeneration4 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.logic.proof.finder.ProofFinderImplTest.testFind3 org.qedeq.kernel.bo.logic.proof.finder.ProofFinderImplTest.testFind3 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.service.heuristic.HeuristicCheckerPluginTest.testQedeqLogicScript2 org.qedeq.kernel.bo.service.heuristic.HeuristicCheckerPluginTest.testQedeqLogicScript2 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative08 org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative08 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.service.control.QedeqBoFactoryTest.testCreateStringQedeq6 org.qedeq.kernel.bo.service.control.QedeqBoFactoryTest.testCreateStringQedeq6 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.service.control.ModuleConstantsExistenceCheckerTest.testModuleConstantsExistenceChecker_07 org.qedeq.kernel.bo.service.control.ModuleConstantsExistenceCheckerTest.testModuleConstantsExistenceChecker_07 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.service.control.ModuleConstantsExistenceCheckerTest.testModuleConstantsExistenceChecker_06 org.qedeq.kernel.bo.service.control.ModuleConstantsExistenceCheckerTest.testModuleConstantsExistenceChecker_06 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.logic.wf.FormulaCheckerContextTest.testPositive02 org.qedeq.kernel.bo.logic.wf.FormulaCheckerContextTest.testPositive02 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative05 org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegative05 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.service.control.ModuleConstantsExistenceCheckerTest.testModuleConstantsExistenceChecker_08 org.qedeq.kernel.bo.service.control.ModuleConstantsExistenceCheckerTest.testModuleConstantsExistenceChecker_08 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.service.unicode.GenerateUtf8Test.testGeneration3 org.qedeq.kernel.bo.service.unicode.GenerateUtf8Test.testGeneration3 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.service.latex.Qedeq2LatexTest.testQ2L002 org.qedeq.kernel.bo.service.latex.Qedeq2LatexTest.testQ2L002 | 1 PASS | |
0.28688523
|
org.qedeq.kernel.bo.logic.wf.FormulaCheckerContextTest.testPositive01 org.qedeq.kernel.bo.logic.wf.FormulaCheckerContextTest.testPositive01 | 1 PASS | |
0.27868852
|
org.qedeq.kernel.se.dto.list.ElementSetTest.testSetOperations org.qedeq.kernel.se.dto.list.ElementSetTest.testSetOperations | 1 PASS | |
0.2704918
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegativeGeneration2 org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegativeGeneration2 | 1 PASS | |
0.2704918
|
org.qedeq.kernel.bo.service.unicode.GenerateUtf8Test.testGeneration1b org.qedeq.kernel.bo.service.unicode.GenerateUtf8Test.testGeneration1b | 1 PASS | |
0.2704918
|
org.qedeq.kernel.bo.service.logic.QedeqBoFormalLogicCheckerDirectTest.testNegative02 org.qedeq.kernel.bo.service.logic.QedeqBoFormalLogicCheckerDirectTest.testNegative02 | 1 PASS | |
0.2704918
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testGeneration2 org.qedeq.kernel.bo.latex.GenerateLatexTest.testGeneration2 | 1 PASS | |
0.2704918
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegativeGeneration2 org.qedeq.kernel.bo.latex.GenerateLatexTest.testNegativeGeneration2 | 1 PASS | |
0.2704918
|
org.qedeq.kernel.bo.logic.wf.FormulaCheckerContextTest.testNegative02 org.qedeq.kernel.bo.logic.wf.FormulaCheckerContextTest.testNegative02 | 1 PASS | |
0.2704918
|
org.qedeq.kernel.bo.service.unicode.GenerateUtf8Test.testGeneration3b org.qedeq.kernel.bo.service.unicode.GenerateUtf8Test.testGeneration3b | 1 PASS | |
0.2704918
|
org.qedeq.kernel.bo.logic.wf.FormulaCheckerContextTest.testPositive03b org.qedeq.kernel.bo.logic.wf.FormulaCheckerContextTest.testPositive03b | 1 PASS | |
0.2704918
|
org.qedeq.kernel.bo.latex.GenerateLatexTest.testGeneration2 org.qedeq.kernel.bo.latex.GenerateLatexTest.testGeneration2 | 1 PASS | |
0.24590164
|
org.qedeq.kernel.bo.service.control.ModuleConstantsExistenceCheckerTest.testModuleConstantsExistenceChecker_02 org.qedeq.kernel.bo.service.control.ModuleConstantsExistenceCheckerTest.testModuleConstantsExistenceChecker_02 | 1 PASS | |
0.24590164
|
org.qedeq.kernel.bo.service.control.ModuleConstantsExistenceCheckerTest.testModuleConstantsExistenceChecker_04 org.qedeq.kernel.bo.service.control.ModuleConstantsExistenceCheckerTest.testModuleConstantsExistenceChecker_04 | 1 PASS | |
0.24590164
|
org.qedeq.kernel.bo.service.control.ModuleConstantsExistenceCheckerTest.testModuleConstantsExistenceChecker_09 org.qedeq.kernel.bo.service.control.ModuleConstantsExistenceCheckerTest.testModuleConstantsExistenceChecker_09 | 1 PASS | |
0.24590164
|
org.qedeq.kernel.bo.service.control.ModuleConstantsExistenceCheckerTest.testModuleConstantsExistenceChecker_03 org.qedeq.kernel.bo.service.control.ModuleConstantsExistenceCheckerTest.testModuleConstantsExistenceChecker_03 | 1 PASS | |
0.22950819
|
org.qedeq.kernel.xml.parser.CharsetParserTest.testParse1 org.qedeq.kernel.xml.parser.CharsetParserTest.testParse1 | 1 PASS | |
0.22950819
|
org.qedeq.kernel.xml.parser.CharsetParserTest.testParse2 org.qedeq.kernel.xml.parser.CharsetParserTest.testParse2 | 1 PASS | |
0.22950819
|
org.qedeq.kernel.se.dto.list.ElementSetTest.testConstructor org.qedeq.kernel.se.dto.list.ElementSetTest.testConstructor | 1 PASS | |
0.21311475
|
org.qedeq.kernel.se.dto.list.ElementSetTest.testMinus org.qedeq.kernel.se.dto.list.ElementSetTest.testMinus | 1 PASS | |
0.16393442
|
org.qedeq.kernel.se.dto.list.ElementSetTest.testNewIntersection org.qedeq.kernel.se.dto.list.ElementSetTest.testNewIntersection | 1 PASS | |
0.1557377
|
org.qedeq.kernel.bo.service.unicode.GenerateUtf8Test.testGeneration3c org.qedeq.kernel.bo.service.unicode.GenerateUtf8Test.testGeneration3c | 1 PASS | |
0.14754099
|
org.qedeq.kernel.se.dto.list.ElementSetTest.testToString org.qedeq.kernel.se.dto.list.ElementSetTest.testToString | 1 PASS | |
0.12295082
|
org.qedeq.kernel.se.dto.list.ElementSetTest.testRemove org.qedeq.kernel.se.dto.list.ElementSetTest.testRemove | 1 PASS | |
0.12295082
|
org.qedeq.kernel.se.dto.list.ElementSetTest.testAdd org.qedeq.kernel.se.dto.list.ElementSetTest.testAdd | 1 PASS | |
0.114754096
|
org.qedeq.kernel.se.dto.list.ElementSetTest.testSetOperations2 org.qedeq.kernel.se.dto.list.ElementSetTest.testSetOperations2 | 1 PASS | |
0.09836066
|
org.qedeq.kernel.se.dto.list.ElementSetTest.testEquals org.qedeq.kernel.se.dto.list.ElementSetTest.testEquals | 1 PASS | |
0.04918033
|
org.qedeq.kernel.se.dto.list.ElementSetTest.testContains org.qedeq.kernel.se.dto.list.ElementSetTest.testContains | 1 PASS | |
0.016393442
|
org.qedeq.kernel.se.dto.list.ElementSetTest.testIsEmpty org.qedeq.kernel.se.dto.list.ElementSetTest.testIsEmpty | 1 PASS | |
0.016393442
|
org.qedeq.kernel.se.dto.list.ElementSetTest.testIterator org.qedeq.kernel.se.dto.list.ElementSetTest.testIterator | 1 PASS | |
0.016393442
|
org.qedeq.kernel.se.dto.list.ElementSetTest.testHashCode org.qedeq.kernel.se.dto.list.ElementSetTest.testHashCode | 1 PASS | |
1 | /* This file is part of the project "Hilbert II" - http://www.qedeq.org | |
2 | * | |
3 | * Copyright 2000-2013, 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 | ||
16 | package org.qedeq.kernel.se.dto.list; | |
17 | ||
18 | import java.util.Arrays; | |
19 | import java.util.HashSet; | |
20 | import java.util.Iterator; | |
21 | import java.util.Set; | |
22 | ||
23 | import org.qedeq.kernel.se.base.list.Element; | |
24 | import org.qedeq.kernel.se.base.list.ElementList; | |
25 | ||
26 | ||
27 | /** | |
28 | * This class represents a set of {@link org.qedeq.kernel.se.base.list.Element}s. | |
29 | * | |
30 | * @author Michael Meyling | |
31 | */ | |
32 | public class ElementSet { | |
33 | ||
34 | ||
35 | /** Here are the elements stored. */ | |
36 | private final Set elements; | |
37 | ||
38 | ||
39 | /** | |
40 | * Constructs an empty element set. | |
41 | */ | |
42 | 2099691 | public ElementSet() { |
43 | 2099691 | this.elements = new HashSet(); |
44 | } | |
45 | ||
46 | ||
47 | /** | |
48 | * Constructs an element set. | |
49 | * | |
50 | * @param elements the elements to put into the set | |
51 | * @throws IllegalArgumentException if <code>elements</code> was a NullPointer | |
52 | */ | |
53 | 40 | public ElementSet(final Element[] elements) { |
54 | 40 | if (elements == null) { |
55 | 1 | throw new IllegalArgumentException( |
56 | "NullPointer as element array is not allowed"); | |
57 | } | |
58 | 39 | this.elements = new HashSet(Arrays.asList(elements)); |
59 | } | |
60 | ||
61 | ||
62 | /** | |
63 | * Constructs an element set. | |
64 | * | |
65 | * @param set contains the elements to put into the set | |
66 | * @throws IllegalArgumentException if <code>set</code> was a | |
67 | * NullPointer | |
68 | */ | |
69 | 369976 | public ElementSet(final ElementSet set) { |
70 | 369976 | if (set == null) { |
71 | 1 | throw new IllegalArgumentException( |
72 | "NullPointer as set is not allowed"); | |
73 | } | |
74 | 369975 | this.elements = new HashSet(set.elements); |
75 | } | |
76 | ||
77 | ||
78 | /** | |
79 | * Constructs an element set from all operands of an element. | |
80 | * The element must not be a symbol. | |
81 | * | |
82 | * @param element contains the elements to put into the set | |
83 | * (without the operator) | |
84 | * @throws IllegalArgumentException if <code>element</code> was a | |
85 | * NullPointer or was an atom. | |
86 | */ | |
87 | 3 | public ElementSet(final ElementList element) { |
88 | 3 | if (element == null) { |
89 | 1 | throw new IllegalArgumentException( |
90 | "NullPointer as element is not allowed"); | |
91 | } | |
92 | 2 | if (element.isAtom()) { |
93 | 1 | throw new IllegalArgumentException( |
94 | "text as element is not allowed"); | |
95 | } | |
96 | 1 | this.elements = new HashSet(element.getElements()); |
97 | } | |
98 | ||
99 | ||
100 | /** | |
101 | * Is element in set? | |
102 | * | |
103 | * @param element Element to check for. | |
104 | * @return Is <code>element</code> in this set? | |
105 | * @throws IllegalArgumentException if the element was a | |
106 | * NullPointer | |
107 | */ | |
108 | 17338 | public final boolean contains(final Element element) { |
109 | 17338 | if (element == null) { |
110 | 1 | throw new IllegalArgumentException("NullPointer as element is not allowed"); |
111 | } | |
112 | 17337 | return this.elements.contains(element); |
113 | } | |
114 | ||
115 | /** | |
116 | * Is this set empty? | |
117 | * | |
118 | * @return Is this set empty? | |
119 | */ | |
120 | 370832 | public final boolean isEmpty() { |
121 | 370832 | return elements.isEmpty(); |
122 | } | |
123 | ||
124 | ||
125 | /** | |
126 | * Is <code>set</code> a superset of this set? | |
127 | * | |
128 | * @param set Set to check for. | |
129 | * @return Is this set a subset of <code>set</code>? | |
130 | * @throws IllegalArgumentException if the set was a NullPointer | |
131 | */ | |
132 | 6 | public final boolean isSubset(final ElementSet set) { |
133 | 6 | if (set == null) { |
134 | 1 | throw new IllegalArgumentException("NullPointer as set is not allowed"); |
135 | } | |
136 | 5 | return set.elements.containsAll(this.elements); |
137 | } | |
138 | ||
139 | ||
140 | /** | |
141 | * Add an element to set. This object is after the method the | |
142 | * union of this set with {<code>element</code>} | |
143 | * | |
144 | * @param element element to put into the set | |
145 | * @return Possibly changed <code>this</code>. | |
146 | * @throws IllegalArgumentException if the element was a | |
147 | * NullPointer | |
148 | */ | |
149 | 269085 | public final ElementSet add(final Element element) { |
150 | 269085 | if (element == null) { |
151 | 1 | throw new IllegalArgumentException("NullPointer as element is not allowed"); |
152 | } | |
153 | 269084 | elements.add(element); |
154 | 269084 | return this; |
155 | } | |
156 | ||
157 | ||
158 | /** | |
159 | * Add elements from another {@link ElementSet} to this set. | |
160 | * After this method this object is the union of the two sets. | |
161 | * | |
162 | * @param set add all elements that are here | |
163 | * @return Possibly changed <code>this</code>. | |
164 | * @throws IllegalArgumentException if the set was a | |
165 | * NullPointer | |
166 | */ | |
167 | 1784614 | public final ElementSet union(final ElementSet set) { |
168 | 1784614 | if (set == null) { |
169 | 1 | throw new IllegalArgumentException( |
170 | "NullPointer as set is not allowed"); | |
171 | } | |
172 | 1784613 | elements.addAll(set.elements); |
173 | 1784613 | return this; |
174 | } | |
175 | ||
176 | ||
177 | /** | |
178 | * Remove an element from this set. | |
179 | * | |
180 | * @param element Element to remove from the set. Must not be <code>null</code>. | |
181 | * @return Possibly changed <code>this</code>. | |
182 | * @throws IllegalArgumentException if the element was a | |
183 | * NullPointer | |
184 | */ | |
185 | 24340 | public final ElementSet remove(final Element element) { |
186 | 24340 | if (element == null) { |
187 | 1 | throw new IllegalArgumentException( |
188 | "NullPointer as element is not allowed"); | |
189 | } | |
190 | 24339 | elements.remove(element); |
191 | 24339 | return this; |
192 | } | |
193 | ||
194 | ||
195 | /** | |
196 | * Remove elements from another {@link ElementSet} from this set. | |
197 | * After this method this object is the asymmetric set difference of the | |
198 | * two sets: <code>this</code> \ <code>set</code>. | |
199 | * | |
200 | * @param set Remove all elements that are in this set from | |
201 | * <code>this</code>. | |
202 | * @return Possibly changed <code>this</code>. | |
203 | * @throws IllegalArgumentException if the set was a | |
204 | * NullPointer | |
205 | */ | |
206 | 300 | public final ElementSet minus(final ElementSet set) { |
207 | 300 | if (set == null) { |
208 | 1 | throw new IllegalArgumentException( |
209 | "NullPointer as set is not allowed"); | |
210 | } | |
211 | 299 | this.elements.removeAll(set.elements); |
212 | 299 | return this; |
213 | } | |
214 | ||
215 | ||
216 | /** | |
217 | * Build the intersection. | |
218 | * | |
219 | * @param set Check for these elements. | |
220 | * @return Possibly changed <code>this</code>. | |
221 | * @throws IllegalArgumentException if the set was a | |
222 | * NullPointer | |
223 | */ | |
224 | 874 | public final ElementSet intersection(final ElementSet set) { |
225 | 874 | if (set == null) { |
226 | 1 | throw new IllegalArgumentException( |
227 | "NullPointer as set is not allowed"); | |
228 | } | |
229 | 873 | this.elements.retainAll(set.elements); |
230 | 873 | return this; |
231 | } | |
232 | ||
233 | ||
234 | /** | |
235 | * Build a new intersection. | |
236 | * | |
237 | * @param set check for these elements | |
238 | * @return New instance that contains all elements that were in <code>this</code> | |
239 | * and <code>set</code>. | |
240 | * @throws IllegalArgumentException if the set was a | |
241 | * NullPointer | |
242 | */ | |
243 | 369967 | public final ElementSet newIntersection(final ElementSet set) { |
244 | 369967 | if (set == null) { |
245 | 1 | throw new IllegalArgumentException( |
246 | "NullPointer as set is not allowed"); | |
247 | } | |
248 | 369966 | final ElementSet result = new ElementSet(this); |
249 | 369966 | result.elements.retainAll(set.elements); |
250 | 369966 | return result; |
251 | } | |
252 | ||
253 | ||
254 | /** | |
255 | * Return all elements that are only in one of both sets. | |
256 | * This method returns a new instance that holds the symmetric set difference of the | |
257 | * two sets. The original set is not modified. | |
258 | * | |
259 | * @param set Build the symmetric difference with this set. | |
260 | * <code>this</code> | |
261 | * @return Symmetric difference. | |
262 | * @throws IllegalArgumentException if the set was a | |
263 | * NullPointer | |
264 | */ | |
265 | 5 | public final ElementSet newDelta(final ElementSet set) { |
266 | 5 | if (set == null) { |
267 | 1 | throw new IllegalArgumentException( |
268 | "NullPointer as set is not allowed"); | |
269 | } | |
270 | 4 | final ElementSet union = new ElementSet(this); |
271 | 4 | union.union(set); |
272 | 4 | final ElementSet intersection = new ElementSet(this); |
273 | 4 | intersection.intersection(set); |
274 | 4 | union.minus(intersection); |
275 | 4 | return union; |
276 | } | |
277 | ||
278 | /** | |
279 | * Get number of elements. | |
280 | * | |
281 | * @return Number of elements in this set. | |
282 | */ | |
283 | 1998 | public final int size() { |
284 | 1998 | return this.elements.size(); |
285 | } | |
286 | ||
287 | /** | |
288 | * Returns an iterator over the elements in this set. The elements are | |
289 | * returned in no particular order (unless this set is an instance of some | |
290 | * class that provides a guarantee). | |
291 | * | |
292 | * @return Iterator over the elements in this set. | |
293 | */ | |
294 | 36094 | public Iterator iterator() { |
295 | 36094 | return this.elements.iterator(); |
296 | } | |
297 | ||
298 | 45 | public final boolean equals(final Object obj) { |
299 | 45 | if (obj == null) { |
300 | 4 | return false; |
301 | } | |
302 | 41 | if (obj.getClass() == ElementSet.class) { |
303 | 40 | return this.elements.equals(((ElementSet) obj).elements); |
304 | } | |
305 | 1 | return false; |
306 | } | |
307 | ||
308 | 8 | public final int hashCode() { |
309 | 8 | return elements.hashCode(); |
310 | } | |
311 | ||
312 | 45 | public final String toString() { |
313 | 45 | final StringBuffer result = new StringBuffer(); |
314 | 45 | result.append("{"); |
315 | 45 | final Iterator iterator = elements.iterator(); |
316 | 91 | while (iterator.hasNext()) { |
317 | 46 | result.append(iterator.next()); |
318 | 46 | if (iterator.hasNext()) { |
319 | 2 | result.append(", "); |
320 | } | |
321 | } | |
322 | 45 | result.append("}"); |
323 | 45 | return result.toString(); |
324 | } | |
325 | ||
326 | } |
|