EMMA Coverage Report (generated Tue Dec 09 03:51:57 CET 2014)
[all classes][org.jdtaus.banking.ri.currencydir]

COVERAGE SUMMARY FOR SOURCE FILE [JaxpCurrency.java]

nameclass, %method, %block, %line, %
JaxpCurrency.java100% (1/1)67%  (10/15)61%  (194/318)70%  (31.4/45)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class JaxpCurrency100% (1/1)67%  (10/15)61%  (194/318)70%  (31.4/45)
clone (): Object 0%   (0/1)0%   (0/30)0%   (0/8)
getEndDate (): Date 0%   (0/1)0%   (0/11)0%   (0/1)
getStartDate (): Date 0%   (0/1)0%   (0/11)0%   (0/1)
internalString (): String 0%   (0/1)0%   (0/30)0%   (0/1)
toString (): String 0%   (0/1)0%   (0/11)0%   (0/1)
equals (Object): boolean 100% (1/1)64%  (47/73)87%  (4.4/5)
isValidAt (Date): boolean 100% (1/1)85%  (29/34)67%  (2/3)
JaxpCurrency (): void 100% (1/1)100% (6/6)100% (3/3)
getDtausCode (): Character 100% (1/1)100% (3/3)100% (1/1)
getIsoCode (): String 100% (1/1)100% (3/3)100% (1/1)
hashCode (): int 100% (1/1)100% (64/64)100% (8/8)
setDtausCode (Character): void 100% (1/1)100% (7/7)100% (3/3)
setEndDate (Date): void 100% (1/1)100% (14/14)100% (3/3)
setIsoCode (String): void 100% (1/1)100% (7/7)100% (3/3)
setStartDate (Date): void 100% (1/1)100% (14/14)100% (3/3)

1/*
2 *  jDTAUS Banking RI CurrencyDirectory
3 *  Copyright (C) 2005 Christian Schulte
4 *  <cs@schulte.it>
5 *
6 *  This library is free software; you can redistribute it and/or
7 *  modify it under the terms of the GNU Lesser General Public
8 *  License as published by the Free Software Foundation; either
9 *  version 2.1 of the License, or any later version.
10 *
11 *  This library is distributed in the hope that it will be useful,
12 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 *  Lesser General Public License for more details.
15 *
16 *  You should have received a copy of the GNU Lesser General Public
17 *  License along with this library; if not, write to the Free Software
18 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19 *
20 */
21package org.jdtaus.banking.ri.currencydir;
22 
23import java.io.Serializable;
24import java.util.Date;
25 
26/**
27 * Currency.
28 *
29 * @author <a href="mailto:cs@schulte.it">Christian Schulte</a>
30 * @version $JDTAUS: JaxpCurrency.java 8865 2014-01-10 17:13:42Z schulte $
31 */
32public class JaxpCurrency implements Serializable, Cloneable
33{
34 
35    /** Serial version UID for backwards compatibility with 1.0.x classes. */
36    private static final long serialVersionUID = 3499875740280116856L;
37 
38    /**
39     * ISO currency code.
40     * @serial
41     */
42    private String isoCode;
43 
44    /**
45     * DTAUS currency code.
46     * @serial
47     */
48    private Character dtausCode;
49 
50    /**
51     * Start date.
52     * @serial
53     */
54    private Date startDate;
55 
56    /**
57     * End date.
58     * @serial
59     */
60    private Date endDate;
61 
62    /** Cached hash-code. */
63    private transient int hashCode = NO_HASHCODE;
64 
65    /** Constant for field {@code hashCode} forcing hash code computation. */
66    private static final int NO_HASHCODE = Integer.MIN_VALUE;
67 
68    /** Creates a new {@code JaxpCurrency} instance. */
69    public JaxpCurrency()
70    {
71        super();
72    }
73 
74    /**
75     * Gets the ISO currency code.
76     *
77     * @return The ISO currency code.
78     */
79    public String getIsoCode()
80    {
81        return this.isoCode;
82    }
83 
84    /**
85     * Sets the ISO currency code.
86     *
87     * @param value The ISO currency code.
88     */
89    public void setIsoCode( final String value )
90    {
91        this.isoCode = value;
92        this.hashCode = NO_HASHCODE;
93    }
94 
95    /**
96     * Gets the DTAUS currency code.
97     *
98     * @return The DTAUS currency code or {@code null}.
99     */
100    public Character getDtausCode()
101    {
102        return this.dtausCode;
103    }
104 
105    /**
106     * Sets the DTAUS currency code.
107     *
108     * @param value The DTAUS currency code or {@code null}.
109     */
110    public void setDtausCode( final Character value )
111    {
112        this.dtausCode = value;
113        this.hashCode = NO_HASHCODE;
114    }
115 
116    /**
117     * Gets the start date.
118     *
119     * @return The start date..
120     */
121    public Date getStartDate()
122    {
123        return (Date) ( this.startDate == null ? null : this.startDate.clone() );
124    }
125 
126    /**
127     * Sets the start date.
128     *
129     * @param value The start date.
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     * Gets the end date.
139     *
140     * @return The end date.
141     */
142    public Date getEndDate()
143    {
144        return (Date) ( this.endDate == null ? null : this.endDate.clone() );
145    }
146 
147    /**
148     * Sets the end date.
149     *
150     * @param value The end date.
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     * Checks that the currency is valid at a given date.
160     *
161     * @param date The date with which to check.
162     *
163     * @return {@code true}, if the currency is valid at {@code date};
164     * {@code false} if not.
165     *
166     * @throws NullPointerException if {@code date} is {@code null}.
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     * Creates and returns a copy of this object.
185     *
186     * @return A clone of this instance.
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     * Indicates whether some other object is equal to this one by comparing the values of all properties.
212     *
213     * @param o The reference object with which to compare.
214     *
215     * @return {@code true} if this object is the same as {@code o}; {@code false} otherwise.
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     * Returns a hash code value for this object.
245     *
246     * @return A hash code value for this object.
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     * Returns a string representation of the object.
274     *
275     * @return A string representation of the object.
276     */
277    public String toString()
278    {
279        return super.toString() + this.internalString();
280    }
281 
282    /**
283     * Creates a string representing the properties of the instance.
284     *
285     * @return A string representing the properties of the instance.
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}

[all classes][org.jdtaus.banking.ri.currencydir]
EMMA 2.1.5320 (stable) (C) Vladimir Roubtsov