EMMA Coverage Report (generated Fri Oct 05 05:10:40 CEST 2012)
[all classes][org.jdtaus.banking.ri.currencydir]

COVERAGE SUMMARY FOR SOURCE FILE [JaxpCurrency.java]

nameclass, %method, %block, %line, %
JaxpCurrency.java100% (1/1)80%  (12/15)66%  (184/280)74%  (33.4/45)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class JaxpCurrency100% (1/1)80%  (12/15)66%  (184/280)74%  (33.4/45)
clone (): Object 0%   (0/1)0%   (0/30)0%   (0/8)
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)69%  (45/65)88%  (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)
getEndDate (): Date 100% (1/1)100% (3/3)100% (1/1)
getIsoCode (): String 100% (1/1)100% (3/3)100% (1/1)
getStartDate (): Date 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% (7/7)100% (3/3)
setIsoCode (String): void 100% (1/1)100% (7/7)100% (3/3)
setStartDate (Date): void 100% (1/1)100% (7/7)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 8661 2012-09-27 11:29:58Z 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 this.startDate;
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 = value;
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 this.endDate;
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 = value;
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}; {@code false} if not.
164     *
165     * @throws NullPointerException if {@code date} is {@code null}.
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     * Creates and returns a copy of this object.
181     *
182     * @return A clone of this instance.
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     * Indicates whether some other object is equal to this one by comparing the values of all properties.
208     *
209     * @param o The reference object with which to compare.
210     *
211     * @return {@code true} if this object is the same as {@code o}; {@code false} otherwise.
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     * Returns a hash code value for this object.
235     *
236     * @return A hash code value for this object.
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     * Returns a string representation of the object.
255     *
256     * @return A string representation of the object.
257     */
258    public String toString()
259    {
260        return super.toString() + this.internalString();
261    }
262 
263    /**
264     * Creates a string representing the properties of the instance.
265     *
266     * @return A string representing the properties of the instance.
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}

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