1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.jdtaus.banking.ri.currencydir;
22
23 import java.io.Serializable;
24 import java.util.Date;
25
26
27
28
29
30
31
32 public class JaxpCurrency implements Serializable, Cloneable
33 {
34
35
36 private static final long serialVersionUID = 3499875740280116856L;
37
38
39
40
41
42 private String isoCode;
43
44
45
46
47
48 private Character dtausCode;
49
50
51
52
53
54 private Date startDate;
55
56
57
58
59
60 private Date endDate;
61
62
63 private transient int hashCode = NO_HASHCODE;
64
65
66 private static final int NO_HASHCODE = Integer.MIN_VALUE;
67
68
69 public JaxpCurrency()
70 {
71 super();
72 }
73
74
75
76
77
78
79 public String getIsoCode()
80 {
81 return this.isoCode;
82 }
83
84
85
86
87
88
89 public void setIsoCode( final String value )
90 {
91 this.isoCode = value;
92 this.hashCode = NO_HASHCODE;
93 }
94
95
96
97
98
99
100 public Character getDtausCode()
101 {
102 return this.dtausCode;
103 }
104
105
106
107
108
109
110 public void setDtausCode( final Character value )
111 {
112 this.dtausCode = value;
113 this.hashCode = NO_HASHCODE;
114 }
115
116
117
118
119
120
121 public Date getStartDate()
122 {
123 return this.startDate;
124 }
125
126
127
128
129
130
131 public void setStartDate( final Date value )
132 {
133 this.startDate = value;
134 this.hashCode = NO_HASHCODE;
135 }
136
137
138
139
140
141
142 public Date getEndDate()
143 {
144 return this.endDate;
145 }
146
147
148
149
150
151
152 public void setEndDate( final Date value )
153 {
154 this.endDate = value;
155 this.hashCode = NO_HASHCODE;
156 }
157
158
159
160
161
162
163
164
165
166
167 public boolean isValidAt( final Date date )
168 {
169 if ( date == null )
170 {
171 throw new NullPointerException( "date" );
172 }
173
174 return ( date.equals( this.getStartDate() ) || date.after( this.getStartDate() ) ) &&
175 ( this.getEndDate() == null || date.equals( this.getEndDate() ) || date.before( this.getEndDate() ) );
176
177 }
178
179
180
181
182
183
184 public Object clone()
185 {
186 try
187 {
188 final JaxpCurrency ret = (JaxpCurrency) super.clone();
189 if ( this.startDate != null )
190 {
191 ret.startDate = (Date) this.startDate.clone();
192 }
193 if ( this.endDate != null )
194 {
195 ret.endDate = (Date) this.endDate.clone();
196 }
197
198 return ret;
199 }
200 catch ( final CloneNotSupportedException e )
201 {
202 throw new AssertionError( e );
203 }
204 }
205
206
207
208
209
210
211
212
213 public boolean equals( final Object o )
214 {
215 boolean ret = o == this;
216
217 if ( !ret && o instanceof JaxpCurrency )
218 {
219 final JaxpCurrency that = (JaxpCurrency) o;
220 ret = ( this.getIsoCode() == null
221 ? that.getIsoCode() == null : this.getIsoCode().equals( that.getIsoCode() ) ) &&
222 ( this.getDtausCode() == that.getDtausCode() ) &&
223 ( this.getStartDate() == null
224 ? that.getStartDate() == null : this.getStartDate().equals( that.getStartDate() ) ) &&
225 ( this.getEndDate() == null
226 ? that.getEndDate() == null : this.getEndDate().equals( that.getEndDate() ) );
227
228 }
229
230 return ret;
231 }
232
233
234
235
236
237
238 public int hashCode()
239 {
240 if ( this.hashCode == NO_HASHCODE )
241 {
242 int hc = 23;
243 hc = 37 * hc + ( this.dtausCode == null ? 0 : (int) this.dtausCode.charValue() );
244 hc = 37 * hc + ( this.isoCode == null ? 0 : this.isoCode.hashCode() );
245 hc = 37 * hc + ( this.startDate == null ? 0 : this.startDate.hashCode() );
246 hc = 37 * hc + ( this.endDate == null ? 0 : this.endDate.hashCode() );
247 this.hashCode = hc;
248 }
249
250 return this.hashCode;
251 }
252
253
254
255
256
257
258 public String toString()
259 {
260 return super.toString() + this.internalString();
261 }
262
263
264
265
266
267
268 private String internalString()
269 {
270 return new StringBuffer( 200 ).append( '{' ).
271 append( "isoCode=" ).append( this.isoCode ).
272 append( ", dtausCode=" ).append( this.dtausCode ).
273 append( ", startDate=" ).append( this.startDate ).
274 append( ", endDate=" ).append( this.endDate ).
275 append( '}' ).toString();
276
277 }
278
279 }