Classes in this File | Line Coverage | Branch Coverage | Complexity | ||||
MockObject |
|
| 0.0;0 |
1 | /* | |
2 | * Copyright (c) 2003-2008, by Henrik Arro and Contributors | |
3 | * | |
4 | * This file is part of JSeq, a tool to automatically create | |
5 | * sequence diagrams by tracing program execution. | |
6 | * | |
7 | * See <http://jseq.sourceforge.net> for more information. | |
8 | * | |
9 | * JSeq is free software: you can redistribute it and/or modify | |
10 | * it under the terms of the GNU Lesser General Public License as | |
11 | * published by the Free Software Foundation, either version 3 of | |
12 | * the License, or (at your option) any later version. | |
13 | * | |
14 | * JSeq is distributed in the hope that it will be useful, | |
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 | * GNU Lesser General Public License for more details. | |
18 | * | |
19 | * You should have received a copy of the GNU Lesser General Public License | |
20 | * along with JSeq. If not, see <http://www.gnu.org/licenses/>. | |
21 | */ | |
22 | ||
23 | package th.co.edge.jseq; | |
24 | ||
25 | /** | |
26 | * A <code>MockObject</code> is an immutable class representing one life-line | |
27 | * in a sequence diagram. | |
28 | */ | |
29 | 0 | public class MockObject implements Comparable<MockObject> { |
30 | private final String name; | |
31 | private final int column; | |
32 | ||
33 | /** | |
34 | * Creates a new <code>MockObject</code> with a given name and column in | |
35 | * the diagram. | |
36 | * | |
37 | * @param name | |
38 | * the name that will be displayed at the top of the life-line | |
39 | * | |
40 | * @param column | |
41 | * the column number of this life-line | |
42 | */ | |
43 | 3 | public MockObject(String name, int column) { |
44 | 3 | this.name = name; |
45 | 3 | this.column = column; |
46 | 3 | } |
47 | ||
48 | /** | |
49 | * Returns the name that will be displayed at the top of the life-line. | |
50 | * | |
51 | * @return the name of this <code>MockObject</code> | |
52 | */ | |
53 | public String getName() { | |
54 | 0 | return name; |
55 | } | |
56 | ||
57 | /** | |
58 | * Returns the column number of this <code>MockObject</code>, which | |
59 | * determines the order of the life-lines in the sequence diagram. | |
60 | * | |
61 | * @return the column number of this <code>MockObject</code> | |
62 | */ | |
63 | public int getColumn() { | |
64 | 3 | return column; |
65 | } | |
66 | ||
67 | /** | |
68 | * Returns a string representation of this <code>MockObject</code>, | |
69 | * mainly useful for logging. | |
70 | * | |
71 | * @return a string representation of this <code>MockObject</code> | |
72 | */ | |
73 | @Override | |
74 | public String toString() { | |
75 | 0 | return "{" + getName() + "," + getColumn() + "}"; |
76 | } | |
77 | ||
78 | /** | |
79 | * Compares this <code>MockObject</code> to another object and returns | |
80 | * <code>true</code> if and only if the other object is a | |
81 | * <code>MockObject</code> with the same name and column number. | |
82 | * | |
83 | * @param o | |
84 | * the object to compare this <code>MockObject</code> to | |
85 | * | |
86 | * @return <code>true</code> if <code>o</code> is a | |
87 | * <code>MockObject</code> with the same name and column number, | |
88 | * <code>false</code> otherwise | |
89 | * | |
90 | */ | |
91 | @Override | |
92 | public boolean equals(Object o) { | |
93 | 0 | boolean equal = false; |
94 | 0 | if (o instanceof MockObject) { |
95 | 0 | MockObject otherMockObject = (MockObject) o; |
96 | 0 | equal = |
97 | name.equals(otherMockObject.name) && | |
98 | column == otherMockObject.column; | |
99 | } | |
100 | 0 | return equal; |
101 | } | |
102 | ||
103 | /** | |
104 | * Returns a hash code for this <code>MockObject</code>. | |
105 | * | |
106 | * @return a hash code for this <code>MockObject</code> | |
107 | */ | |
108 | @Override | |
109 | public int hashCode() { | |
110 | 0 | int result = 17; |
111 | 0 | result = 31 * result + name.hashCode(); |
112 | 0 | result = 31 * result + column; |
113 | 0 | return result; |
114 | } | |
115 | ||
116 | /** | |
117 | * Compares this <code>MockObject</code> to another | |
118 | * <code>MockObject</code>, returning a negative integer, zero or a | |
119 | * positive integer if this object is less than, equal to, or greater than | |
120 | * the other object, respectively. | |
121 | * | |
122 | * <p> | |
123 | * Comparison is done as follows: | |
124 | * <ul> | |
125 | * <li>First the column numbers are compared</li> | |
126 | * <li>If the column numbers are equal, the names are compared | |
127 | * lexicographically</li> | |
128 | * </ul> | |
129 | * | |
130 | * @param otherObject | |
131 | * the <code>MockObject</code> to compare this object to | |
132 | * | |
133 | * @return <code>0</code> if this object is equal to | |
134 | * <code>otherObject</code>; a negative integer if this object is | |
135 | * smaller than <code>otherObject</code>; and a positive integer | |
136 | * if this object is greater than <code>otherObject</code> | |
137 | */ | |
138 | @Override | |
139 | public int compareTo(MockObject otherObject) { | |
140 | 0 | int result = getColumn() - otherObject.getColumn(); |
141 | 0 | if (result == 0) { |
142 | 0 | result = name.compareTo(otherObject.name); |
143 | } | |
144 | 0 | return result; |
145 | } | |
146 | } |