1 | /* |
2 | * JTiger Unit Testing Framework for J2SE 1.5 |
3 | * Copyright (C) 2005 Tony Morris |
4 | * |
5 | * This software is licenced under the |
6 | * Common Public Licence version 1.0 |
7 | * http://www.opensource.org/licenses/cpl1.0.php |
8 | * |
9 | * You received a copy of this licence with this software. |
10 | */ |
11 | package org.jtiger.framework; |
12 | |
13 | import java.util.Iterator; |
14 | import java.util.List; |
15 | import java.util.ListIterator; |
16 | import static org.jtiger.framework.UnmodifiableListIteratorFactory.unmodifiableListIterator; |
17 | import static org.jtiger.framework.UnmodifiableIteratorFactory.unmodifiableIterator; |
18 | |
19 | final class FixtureResultsFactory |
20 | { |
21 | private FixtureResultsFactory() |
22 | { |
23 | |
24 | } |
25 | |
26 | public static FixtureResults newFixtureResults(final List<FixtureResult> results) throws NullPointerException |
27 | { |
28 | if(results == null) |
29 | { |
30 | throw new NullPointerException(); |
31 | } |
32 | |
33 | return new FixtureResultsImpl(results); |
34 | } |
35 | |
36 | private static final class FixtureResultsImpl implements FixtureResults |
37 | { |
38 | private static final long serialVersionUID = 2L; |
39 | |
40 | private final List<FixtureResult> results; |
41 | |
42 | FixtureResultsImpl(final List<FixtureResult> results) |
43 | { |
44 | this.results = results; |
45 | } |
46 | |
47 | public FixtureResult get(final int index) |
48 | { |
49 | return results.get(index); |
50 | } |
51 | |
52 | public ListIterator<FixtureResult> listIterator() |
53 | { |
54 | return unmodifiableListIterator(results.listIterator()); |
55 | } |
56 | |
57 | public ListIterator<FixtureResult> listIterator(final int index) |
58 | { |
59 | return unmodifiableListIterator(results.listIterator(index)); |
60 | } |
61 | |
62 | public int size() |
63 | { |
64 | return results.size(); |
65 | } |
66 | |
67 | public FixtureResult[] toArray() |
68 | { |
69 | return results.toArray(new FixtureResult[results.size()]); |
70 | } |
71 | |
72 | public Iterator<FixtureResult> iterator() |
73 | { |
74 | return unmodifiableIterator(results.iterator()); |
75 | } |
76 | |
77 | @Override |
78 | public String toString() |
79 | { |
80 | return results.toString(); |
81 | } |
82 | |
83 | @Override |
84 | public boolean equals(final Object o) |
85 | { |
86 | if(this == o) |
87 | { |
88 | return true; |
89 | } |
90 | |
91 | if(o == null || o.getClass() != FixtureResultsImpl.class) |
92 | { |
93 | return false; |
94 | } |
95 | |
96 | final FixtureResultsImpl f = (FixtureResultsImpl)o; |
97 | |
98 | return results.equals(f.results); |
99 | } |
100 | |
101 | @Override |
102 | public int hashCode() |
103 | { |
104 | final int oddPrime = 461; |
105 | int result = 73; |
106 | |
107 | result = result * oddPrime + results.hashCode(); |
108 | |
109 | return result; |
110 | } |
111 | } |
112 | } |