EMMA Coverage Report (generated Mon Nov 29 14:43:38 PST 2010)
[all classes][com.jeantessier.dependency]

COVERAGE SUMMARY FOR SOURCE FILE [TestClosureInboundSelector.java]

nameclass, %method, %block, %line, %
TestClosureInboundSelector.java100% (1/1)100% (31/31)100% (1433/1433)100% (243/243)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class TestClosureInboundSelector100% (1/1)100% (31/31)100% (1433/1433)100% (243/243)
TestClosureInboundSelector (): void 100% (1/1)100% (3/3)100% (1/1)
setUp (): void 100% (1/1)100% (67/67)100% (15/15)
testCoverage (): void 100% (1/1)100% (17/17)100% (5/5)
testFactory (): void 100% (1/1)100% (15/15)100% (4/4)
testFollowToConfirmedClass (): void 100% (1/1)100% (36/36)100% (6/6)
testFollowToConfirmedFeature (): void 100% (1/1)100% (36/36)100% (6/6)
testFollowToConfirmedPackage (): void 100% (1/1)100% (36/36)100% (6/6)
testFollowToInferredClass (): void 100% (1/1)100% (32/32)100% (5/5)
testFollowToInferredFeature (): void 100% (1/1)100% (32/32)100% (5/5)
testFollowToInferredPackage (): void 100% (1/1)100% (32/32)100% (5/5)
testOneCopiedNode (): void 100% (1/1)100% (195/195)100% (24/24)
testOneSelectedNode (): void 100% (1/1)100% (35/35)100% (6/6)
testReset (): void 100% (1/1)100% (39/39)100% (8/8)
testThreeCopiedNodesFromClass (): void 100% (1/1)100% (64/64)100% (11/11)
testThreeCopiedNodesFromFeature (): void 100% (1/1)100% (64/64)100% (11/11)
testThreeCopiedNodesFromPackage (): void 100% (1/1)100% (64/64)100% (11/11)
testThreeSelectedNodesFromClass (): void 100% (1/1)100% (55/55)100% (10/10)
testThreeSelectedNodesFromFeature (): void 100% (1/1)100% (55/55)100% (10/10)
testThreeSelectedNodesFromPackage (): void 100% (1/1)100% (55/55)100% (10/10)
testTwoCopiedNodeWithClassInCoverage (): void 100% (1/1)100% (59/59)100% (10/10)
testTwoCopiedNodeWithFeatureInCoverage (): void 100% (1/1)100% (59/59)100% (10/10)
testTwoCopiedNodeWithPackageInCoverage (): void 100% (1/1)100% (59/59)100% (10/10)
testTwoSelectedNodeWithClassInCoverage (): void 100% (1/1)100% (50/50)100% (9/9)
testTwoSelectedNodeWithFeatureInCoverage (): void 100% (1/1)100% (50/50)100% (9/9)
testTwoSelectedNodeWithPackageInCoverage (): void 100% (1/1)100% (50/50)100% (9/9)
testVisitConfirmedClass (): void 100% (1/1)100% (31/31)100% (5/5)
testVisitConfirmedFeature (): void 100% (1/1)100% (31/31)100% (5/5)
testVisitConfirmedPackage (): void 100% (1/1)100% (31/31)100% (5/5)
testVisitInferredClass (): void 100% (1/1)100% (27/27)100% (4/4)
testVisitInferredFeature (): void 100% (1/1)100% (27/27)100% (4/4)
testVisitInferredPackage (): void 100% (1/1)100% (27/27)100% (4/4)

1/*
2 *  Copyright (c) 2001-2009, Jean Tessier
3 *  All rights reserved.
4 *  
5 *  Redistribution and use in source and binary forms, with or without
6 *  modification, are permitted provided that the following conditions
7 *  are met:
8 *  
9 *      * Redistributions of source code must retain the above copyright
10 *        notice, this list of conditions and the following disclaimer.
11 *  
12 *      * Redistributions in binary form must reproduce the above copyright
13 *        notice, this list of conditions and the following disclaimer in the
14 *        documentation and/or other materials provided with the distribution.
15 *  
16 *      * Neither the name of Jean Tessier nor the names of his contributors
17 *        may be used to endorse or promote products derived from this software
18 *        without specific prior written permission.
19 *  
20 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 *  A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR
24 *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26 *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27 *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28 *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30 *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32 
33package com.jeantessier.dependency;
34 
35import java.util.*;
36 
37import junit.framework.*;
38 
39public class TestClosureInboundSelector extends TestCase {
40    private NodeFactory localFactory;
41 
42    private PackageNode a;
43    private ClassNode a_A;
44    private FeatureNode a_A_a;
45    
46    private PackageNode b;
47    private ClassNode b_B;
48    private FeatureNode b_B_b;
49    
50    private PackageNode c;
51    private ClassNode c_C;
52    private FeatureNode c_C_c;
53 
54    protected void setUp() throws Exception {
55        super.setUp();
56        
57        localFactory = new NodeFactory();
58 
59        NodeFactory factory = new NodeFactory();
60 
61        a = factory.createPackage("a");
62        a_A = factory.createClass("a.A");
63        a_A_a = factory.createFeature("a.A.a");
64        
65        b = factory.createPackage("b");
66        b_B = factory.createClass("b.B");
67        b_B_b = factory.createFeature("b.B.b");
68        
69        c = factory.createPackage("c");
70        c_C = factory.createClass("c.C");
71        c_C_c = factory.createFeature("c.C.c");
72 
73        a_A_a.addDependency(b_B_b);
74        b_B_b.addDependency(c_C_c);
75    }
76 
77    public void testFactory() {
78        ClosureInboundSelector selector = new ClosureInboundSelector();
79 
80        selector.setFactory(localFactory);
81 
82        assertEquals("factory", localFactory, selector.getFactory());
83    }
84 
85    public void testCoverage() {
86        Collection<Node> coverage = new ArrayList<Node>();
87 
88        ClosureInboundSelector selector = new ClosureInboundSelector();
89 
90        selector.setCoverage(coverage);
91 
92        assertEquals("coverage", coverage, selector.getCoverage());
93    }
94    
95    public void testOneSelectedNode() {
96        ClosureInboundSelector selector = new ClosureInboundSelector(localFactory, Collections.<Node>emptySet());
97        selector.traverseNodes(Collections.singleton(b_B_b));
98 
99        assertEquals("nodes in selection", 1, selector.getSelectedNodes().size());
100        assertEquals("a.A.a in selection", a_A_a, selector.getSelectedNodes().iterator().next());
101        assertSame("a.A.a in selection", a_A_a, selector.getSelectedNodes().iterator().next());
102    }
103 
104    public void testOneCopiedNode() {
105        ClosureInboundSelector selector = new ClosureInboundSelector(localFactory, Collections.<Node>emptySet());
106        selector.traverseNodes(Collections.singleton(b_B_b));
107 
108        assertEquals("packages in scope", 2, localFactory.getPackages().size());
109        assertEquals("classes in scope" , 2, localFactory.getClasses().size());
110        assertEquals("features in scope", 2, localFactory.getFeatures().size());
111 
112        assertEquals("package a in scope"    , a,     localFactory.getPackages().get("a"));
113        assertEquals("class a.A in scope"    , a_A,   localFactory.getClasses().get("a.A"));
114        assertEquals("feature a.A.a in scope", a_A_a, localFactory.getFeatures().get("a.A.a"));
115        assertEquals("package b in scope"    , b,     localFactory.getPackages().get("b"));
116        assertEquals("class b.B in scope"    , b_B,   localFactory.getClasses().get("b.B"));
117        assertEquals("feature b.B.b in scope", b_B_b, localFactory.getFeatures().get("b.B.b"));
118 
119        assertNotSame("package a in scope"    , a,     localFactory.getPackages().get("a"));
120        assertNotSame("class a.A in scope"    , a_A,   localFactory.getClasses().get("a.A"));
121        assertNotSame("feature a.A.a in scope", a_A_a, localFactory.getFeatures().get("a.A.a"));
122        assertNotSame("package b in scope"    , b,     localFactory.getPackages().get("b"));
123        assertNotSame("class b.B in scope"    , b_B,   localFactory.getClasses().get("b.B"));
124        assertNotSame("feature b.B.b in scope", b_B_b, localFactory.getFeatures().get("b.B.b"));
125 
126        assertEquals("nodes in selection", 1, selector.getCopiedNodes().size());
127        assertEquals("a.A.a in selection", a_A_a, selector.getCopiedNodes().iterator().next());
128        assertNotSame("a.A.a in selection", a_A_a, selector.getCopiedNodes().iterator().next());
129        assertSame("a.A.a in selection", localFactory.getFeatures().get("a.A.a"), selector.getCopiedNodes().iterator().next());
130        assertEquals("a.A.a's inbounds",  0, selector.getCopiedNodes().iterator().next().getInboundDependencies().size());
131        assertEquals("a.A.a's outbounds", 1, selector.getCopiedNodes().iterator().next().getOutboundDependencies().size());
132    }
133 
134    public void testThreeSelectedNodesFromPackage() {
135        a.addDependency(b);
136        a_A.addDependency(b);
137        a_A_a.addDependency(b);
138        
139        ClosureInboundSelector selector = new ClosureInboundSelector(localFactory, Collections.<Node>emptySet());
140        selector.traverseNodes(Collections.singleton(b));
141 
142        assertEquals("nodes in selection", 3, selector.getSelectedNodes().size());
143        assertTrue("a in selection",     selector.getSelectedNodes().contains(a));
144        assertTrue("a.A in selection",   selector.getSelectedNodes().contains(a_A));
145        assertTrue("a.A.a in selection", selector.getSelectedNodes().contains(a_A_a));
146    }
147 
148    public void testThreeSelectedNodesFromClass() {
149        a.addDependency(b_B);
150        a_A.addDependency(b_B);
151        a_A_a.addDependency(b_B);
152        
153        ClosureInboundSelector selector = new ClosureInboundSelector(localFactory, Collections.<Node>emptySet());
154        selector.traverseNodes(Collections.singleton(b_B));
155 
156        assertEquals("nodes in selection", 3, selector.getSelectedNodes().size());
157        assertTrue("a in selection",     selector.getSelectedNodes().contains(a));
158        assertTrue("a.A in selection",   selector.getSelectedNodes().contains(a_A));
159        assertTrue("a.A.a in selection", selector.getSelectedNodes().contains(a_A_a));
160    }
161 
162    public void testThreeSelectedNodesFromFeature() {
163        a.addDependency(b_B_b);
164        a_A.addDependency(b_B_b);
165        a_A_a.addDependency(b_B_b);
166        
167        ClosureInboundSelector selector = new ClosureInboundSelector(localFactory, Collections.<Node>emptySet());
168        selector.traverseNodes(Collections.singleton(b_B_b));
169 
170        assertEquals("nodes in selection", 3, selector.getSelectedNodes().size());
171        assertTrue("a in selection",     selector.getSelectedNodes().contains(a));
172        assertTrue("a.A in selection",   selector.getSelectedNodes().contains(a_A));
173        assertTrue("a.A.a in selection", selector.getSelectedNodes().contains(a_A_a));
174    }
175 
176    public void testThreeCopiedNodesFromPackage() {
177        a.addDependency(b);
178        a_A.addDependency(b);
179        a_A_a.addDependency(b);
180        
181        ClosureInboundSelector selector = new ClosureInboundSelector(localFactory, Collections.<Node>emptySet());
182        selector.traverseNodes(Collections.singleton(b));
183 
184        assertEquals("nodes in selection", 3, selector.getCopiedNodes().size());
185        assertTrue("a in selection",     selector.getCopiedNodes().contains(a));
186        assertTrue("a.A in selection",   selector.getCopiedNodes().contains(a_A));
187        assertTrue("a.A.a in selection", selector.getCopiedNodes().contains(a_A_a));
188 
189        assertEquals("b's inbounds", 3, localFactory.createPackage("b").getInboundDependencies().size());
190    }
191 
192    public void testThreeCopiedNodesFromClass() {
193        a.addDependency(b_B);
194        a_A.addDependency(b_B);
195        a_A_a.addDependency(b_B);
196        
197        ClosureInboundSelector selector = new ClosureInboundSelector(localFactory, Collections.<Node>emptySet());
198        selector.traverseNodes(Collections.singleton(b_B));
199 
200        assertEquals("nodes in selection", 3, selector.getCopiedNodes().size());
201        assertTrue("a in selection",     selector.getCopiedNodes().contains(a));
202        assertTrue("a.A in selection",   selector.getCopiedNodes().contains(a_A));
203        assertTrue("a.A.a in selection", selector.getCopiedNodes().contains(a_A_a));
204 
205        assertEquals("b.B's inbounds", 3, localFactory.createClass("b.B").getInboundDependencies().size());
206    }
207 
208    public void testThreeCopiedNodesFromFeature() {
209        a.addDependency(b_B_b);
210        a_A.addDependency(b_B_b);
211        a_A_a.addDependency(b_B_b);
212        
213        ClosureInboundSelector selector = new ClosureInboundSelector(localFactory, Collections.<Node>emptySet());
214        selector.traverseNodes(Collections.singleton(b_B_b));
215 
216        assertEquals("nodes in selection", 3, selector.getCopiedNodes().size());
217        assertTrue("a in selection",     selector.getCopiedNodes().contains(a));
218        assertTrue("a.A in selection",   selector.getCopiedNodes().contains(a_A));
219        assertTrue("a.A.a in selection", selector.getCopiedNodes().contains(a_A_a));
220 
221        assertEquals("b.B.b's inbounds", 3, localFactory.createFeature("b.B.b").getInboundDependencies().size());
222    }
223 
224    public void testTwoSelectedNodeWithPackageInCoverage() {
225        a.addDependency(b_B_b);
226        a_A.addDependency(b_B_b);
227        a_A_a.addDependency(b_B_b);
228        
229        ClosureInboundSelector selector = new ClosureInboundSelector(localFactory, Collections.singleton(a));
230        selector.traverseNodes(Collections.singleton(b_B_b));
231 
232        assertEquals("nodes in selection", 2, selector.getSelectedNodes().size());
233        assertTrue("a.A in selection",   selector.getSelectedNodes().contains(a_A));
234        assertTrue("a.A.a in selection", selector.getSelectedNodes().contains(a_A_a));
235    }
236 
237    public void testTwoSelectedNodeWithClassInCoverage() {
238        a.addDependency(b_B_b);
239        a_A.addDependency(b_B_b);
240        a_A_a.addDependency(b_B_b);
241        
242        ClosureInboundSelector selector = new ClosureInboundSelector(localFactory, Collections.singleton(a_A));
243        selector.traverseNodes(Collections.singleton(b_B_b));
244 
245        assertEquals("nodes in selection", 2, selector.getSelectedNodes().size());
246        assertTrue("a in selection",     selector.getSelectedNodes().contains(a));
247        assertTrue("a.A.a in selection", selector.getSelectedNodes().contains(a_A_a));
248    }
249 
250    public void testTwoSelectedNodeWithFeatureInCoverage() {
251        a.addDependency(b_B_b);
252        a_A.addDependency(b_B_b);
253        a_A_a.addDependency(b_B_b);
254        
255        ClosureInboundSelector selector = new ClosureInboundSelector(localFactory, Collections.singleton(a_A_a));
256        selector.traverseNodes(Collections.singleton(b_B_b));
257 
258        assertEquals("nodes in selection", 2, selector.getSelectedNodes().size());
259        assertTrue("a in selection",   selector.getSelectedNodes().contains(a));
260        assertTrue("a.A in selection", selector.getSelectedNodes().contains(a_A));
261    }
262 
263    public void testTwoCopiedNodeWithPackageInCoverage() {
264        a.addDependency(b_B_b);
265        a_A.addDependency(b_B_b);
266        a_A_a.addDependency(b_B_b);
267        
268        ClosureInboundSelector selector = new ClosureInboundSelector(localFactory, Collections.singleton(a));
269        selector.traverseNodes(Collections.singleton(b_B_b));
270 
271        assertEquals("nodes in selection", 2, selector.getCopiedNodes().size());
272        assertTrue("a.A in selection",   selector.getCopiedNodes().contains(a_A));
273        assertTrue("a.A.a in selection", selector.getCopiedNodes().contains(a_A_a));
274 
275        assertEquals("b.B.b's inbounds", 2, localFactory.createFeature("b.B.b").getInboundDependencies().size());
276    }
277 
278    public void testTwoCopiedNodeWithClassInCoverage() {
279        a.addDependency(b_B_b);
280        a_A.addDependency(b_B_b);
281        a_A_a.addDependency(b_B_b);
282        
283        ClosureInboundSelector selector = new ClosureInboundSelector(localFactory, Collections.singleton(a_A));
284        selector.traverseNodes(Collections.singleton(b_B_b));
285 
286        assertEquals("nodes in selection", 2, selector.getCopiedNodes().size());
287        assertTrue("a in selection",     selector.getCopiedNodes().contains(a));
288        assertTrue("a.A.a in selection", selector.getCopiedNodes().contains(a_A_a));
289 
290        assertEquals("b.B.b's inbounds", 2, localFactory.createFeature("b.B.b").getInboundDependencies().size());
291    }
292 
293    public void testTwoCopiedNodeWithFeatureInCoverage() {
294        a.addDependency(b_B_b);
295        a_A.addDependency(b_B_b);
296        a_A_a.addDependency(b_B_b);
297        
298        ClosureInboundSelector selector = new ClosureInboundSelector(localFactory, Collections.singleton(a_A_a));
299        selector.traverseNodes(Collections.singleton(b_B_b));
300 
301        assertEquals("nodes in selection", 2, selector.getCopiedNodes().size());
302        assertTrue("a in selection",   selector.getCopiedNodes().contains(a));
303        assertTrue("a.A in selection", selector.getCopiedNodes().contains(a_A));
304 
305        assertEquals("b.B.b's inbounds", 2, localFactory.createFeature("b.B.b").getInboundDependencies().size());
306    }
307 
308    public void testReset() {
309        ClosureInboundSelector selector = new ClosureInboundSelector(localFactory, Collections.<Node>emptySet());
310        selector.traverseNodes(Collections.singleton(b_B_b));
311 
312        assertEquals("nodes in selection", 1, selector.getSelectedNodes().size());
313        assertEquals("copied nodes",       1, selector.getCopiedNodes().size());
314 
315        selector.reset();
316        
317        assertEquals("nodes in selection", 0, selector.getSelectedNodes().size());
318        assertEquals("copied nodes",       0, selector.getCopiedNodes().size());
319    }
320 
321    public void testVisitInferredPackage() {
322        ClosureInboundSelector selector = new ClosureInboundSelector(localFactory, Collections.<Node>emptySet());
323        selector.traverseNodes(Collections.singleton(b));
324 
325        assertEquals("package.isConfirmed()", b.isConfirmed(), localFactory.getPackages().get(b.getName()).isConfirmed());
326    }
327 
328    public void testVisitConfirmedPackage() {
329        b.setConfirmed(true);
330        
331        ClosureInboundSelector selector = new ClosureInboundSelector(localFactory, Collections.<Node>emptySet());
332        selector.traverseNodes(Collections.singleton(b));
333 
334        assertEquals("package.isConfirmed()", b.isConfirmed(), localFactory.getPackages().get(b.getName()).isConfirmed());
335    }
336 
337    public void testFollowToInferredPackage() {
338        a.addDependency(b);
339        
340        ClosureInboundSelector selector = new ClosureInboundSelector(localFactory, Collections.<Node>emptySet());
341        selector.traverseNodes(Collections.singleton(b));
342 
343        assertEquals("package.isConfirmed()", a.isConfirmed(), localFactory.getPackages().get(a.getName()).isConfirmed());
344    }
345 
346    public void testFollowToConfirmedPackage() {
347        a.addDependency(b);
348        a.setConfirmed(true);
349        
350        ClosureInboundSelector selector = new ClosureInboundSelector(localFactory, Collections.<Node>emptySet());
351        selector.traverseNodes(Collections.singleton(b));
352 
353        assertEquals("package.isConfirmed()", a.isConfirmed(), localFactory.getPackages().get(a.getName()).isConfirmed());
354    }
355 
356    public void testVisitInferredClass() {
357        ClosureInboundSelector selector = new ClosureInboundSelector(localFactory, Collections.<Node>emptySet());
358        selector.traverseNodes(Collections.singleton(b_B));
359 
360        assertEquals("class.isConfirmed()", b_B.isConfirmed(), localFactory.getClasses().get(b_B.getName()).isConfirmed());
361    }
362 
363    public void testVisitConfirmedClass() {
364        b_B.setConfirmed(true);
365        
366        ClosureInboundSelector selector = new ClosureInboundSelector(localFactory, Collections.<Node>emptySet());
367        selector.traverseNodes(Collections.singleton(b_B));
368 
369        assertEquals("class.isConfirmed()", b_B.isConfirmed(), localFactory.getClasses().get(b_B.getName()).isConfirmed());
370    }
371 
372    public void testFollowToInferredClass() {
373        a_A.addDependency(b_B);
374        
375        ClosureInboundSelector selector = new ClosureInboundSelector(localFactory, Collections.<Node>emptySet());
376        selector.traverseNodes(Collections.singleton(b_B));
377 
378        assertEquals("class.isConfirmed()", a_A.isConfirmed(), localFactory.getClasses().get(a_A.getName()).isConfirmed());
379    }
380 
381    public void testFollowToConfirmedClass() {
382        a_A.addDependency(b_B);
383        a_A.setConfirmed(true);
384        
385        ClosureInboundSelector selector = new ClosureInboundSelector(localFactory, Collections.<Node>emptySet());
386        selector.traverseNodes(Collections.singleton(b_B));
387 
388        assertEquals("class.isConfirmed()", a_A.isConfirmed(), localFactory.getClasses().get(a_A.getName()).isConfirmed());
389    }
390 
391    public void testVisitInferredFeature() {
392        ClosureInboundSelector selector = new ClosureInboundSelector(localFactory, Collections.<Node>emptySet());
393        selector.traverseNodes(Collections.singleton(b_B_b));
394 
395        assertEquals("feature.isConfirmed()", b_B_b.isConfirmed(), localFactory.getFeatures().get(b_B_b.getName()).isConfirmed());
396    }
397 
398    public void testVisitConfirmedFeature() {
399        b_B_b.setConfirmed(true);
400        
401        ClosureInboundSelector selector = new ClosureInboundSelector(localFactory, Collections.<Node>emptySet());
402        selector.traverseNodes(Collections.singleton(b_B_b));
403 
404        assertEquals("feature.isConfirmed()", b_B_b.isConfirmed(), localFactory.getFeatures().get(b_B_b.getName()).isConfirmed());
405    }
406 
407    public void testFollowToInferredFeature() {
408        a_A_a.addDependency(b_B_b);
409        
410        ClosureInboundSelector selector = new ClosureInboundSelector(localFactory, Collections.<Node>emptySet());
411        selector.traverseNodes(Collections.singleton(b_B_b));
412 
413        assertEquals("feature.isConfirmed()", a_A_a.isConfirmed(), localFactory.getFeatures().get(a_A_a.getName()).isConfirmed());
414    }
415 
416    public void testFollowToConfirmedFeature() {
417        a_A_a.addDependency(b_B_b);
418        a_A_a.setConfirmed(true);
419        
420        ClosureInboundSelector selector = new ClosureInboundSelector(localFactory, Collections.<Node>emptySet());
421        selector.traverseNodes(Collections.singleton(b_B_b));
422 
423        assertEquals("feature.isConfirmed()", a_A_a.isConfirmed(), localFactory.getFeatures().get(a_A_a.getName()).isConfirmed());
424    }
425}

[all classes][com.jeantessier.dependency]
EMMA 2.0.5312 (C) Vladimir Roubtsov