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 (Date) ( this.startDate == null ? null : this.startDate.clone() );
124 }
125
126
127
128
129
130
131 public void setStartDate( final Date value )
132 {
133 this.startDate = (Date) ( value == null ? null : value.clone() );
134 this.hashCode = NO_HASHCODE;
135 }
136
137
138
139
140
141
142 public Date getEndDate()
143 {
144 return (Date) ( this.endDate == null ? null : this.endDate.clone() );
145 }
146
147
148
149
150
151
152 public void setEndDate( final Date value )
153 {
154 this.endDate = (Date) ( value == null ? null : value.clone() );
155 this.hashCode = NO_HASHCODE;
156 }
157
158
159
160
161
162
163
164
165
166
167
168 public boolean isValidAt( final Date date )
169 {
170 if ( date == null )
171 {
172 throw new NullPointerException( "date" );
173 }
174
175 return ( date.equals( this.startDate )
176 || date.after( this.startDate ) )
177 && ( this.endDate == null
178 || date.equals( this.endDate )
179 || date.before( this.endDate ) );
180
181 }
182
183
184
185
186
187
188 public Object clone()
189 {
190 try
191 {
192 final JaxpCurrency ret = (JaxpCurrency) super.clone();
193 if ( this.startDate != null )
194 {
195 ret.startDate = (Date) this.startDate.clone();
196 }
197 if ( this.endDate != null )
198 {
199 ret.endDate = (Date) this.endDate.clone();
200 }
201
202 return ret;
203 }
204 catch ( final CloneNotSupportedException e )
205 {
206 throw new AssertionError( e );
207 }
208 }
209
210
211
212
213
214
215
216
217 public boolean equals( final Object o )
218 {
219 boolean ret = o == this;
220
221 if ( !ret && o instanceof JaxpCurrency )
222 {
223 final JaxpCurrency that = (JaxpCurrency) o;
224
225 ret = ( this.isoCode == null
226 ? that.isoCode == null
227 : this.isoCode.equals( that.isoCode ) )
228 && ( this.dtausCode == null
229 ? that.dtausCode == null
230 : this.dtausCode.equals( that.dtausCode ) )
231 && ( this.startDate == null
232 ? that.startDate == null
233 : this.startDate.equals( that.startDate ) )
234 && ( this.endDate == null
235 ? that.endDate == null
236 : this.endDate.equals( that.endDate ) );
237
238 }
239
240 return ret;
241 }
242
243
244
245
246
247
248 public int hashCode()
249 {
250 if ( this.hashCode == NO_HASHCODE )
251 {
252 int hc = 23;
253 hc = 37 * hc + ( this.dtausCode == null
254 ? 0
255 : (int) this.dtausCode.charValue() );
256 hc = 37 * hc + ( this.isoCode == null
257 ? 0
258 : this.isoCode.hashCode() );
259 hc = 37 * hc + ( this.startDate == null
260 ? 0
261 : this.startDate.hashCode() );
262 hc = 37 * hc + ( this.endDate == null
263 ? 0
264 : this.endDate.hashCode() );
265
266 this.hashCode = hc;
267 }
268
269 return this.hashCode;
270 }
271
272
273
274
275
276
277 public String toString()
278 {
279 return super.toString() + this.internalString();
280 }
281
282
283
284
285
286
287 private String internalString()
288 {
289 return new StringBuffer( 200 ).append( '{' ).
290 append( "isoCode=" ).append( this.isoCode ).
291 append( ", dtausCode=" ).append( this.dtausCode ).
292 append( ", startDate=" ).append( this.startDate ).
293 append( ", endDate=" ).append( this.endDate ).
294 append( '}' ).toString();
295
296 }
297
298 }