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

COVERAGE SUMMARY FOR SOURCE FILE [IllegalDataMessage.java]

nameclass, %method, %block, %line, %
IllegalDataMessage.java100% (1/1)83%  (5/6)82%  (137/168)89%  (17/19)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class IllegalDataMessage100% (1/1)83%  (5/6)82%  (137/168)89%  (17/19)
getFormatArguments (Locale): Object [] 0%   (0/1)0%   (0/24)0%   (0/1)
assertValidType (): void 100% (1/1)78%  (25/32)88%  (7/8)
<static initializer> 100% (1/1)100% (60/60)100% (1/1)
IllegalDataMessage (int, int, long, String): void 100% (1/1)100% (17/17)100% (7/7)
getIllegalDataMessage (Locale, String, Number, String): String 100% (1/1)100% (20/20)100% (1/1)
getText (Locale): String 100% (1/1)100% (15/15)100% (1/1)

1/*
2 *  jDTAUS Banking Messages
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.messages;
22 
23import java.util.Locale;
24import org.jdtaus.core.container.ContainerFactory;
25import org.jdtaus.core.text.Message;
26 
27/**
28 * Message stating that a field holds invalid data.
29 *
30 * @author <a href="mailto:cs@schulte.it">Christian Schulte</a>
31 * @version $JDTAUS: IllegalDataMessage.java 8810 2012-12-04 00:45:37Z schulte $
32 */
33public final class IllegalDataMessage extends Message
34{
35 
36    /** Constant for DTAUS alphabet fields. */
37    public static final int TYPE_ALPHA = 1;
38 
39    /** Constant for numeric DTAUS alphabet fields. */
40    public static final int TYPE_NUMERIC = 2;
41 
42    /** Constant for alpha-numeric DTAUS alphabet fields. */
43    public static final int TYPE_ALPHA_NUMERIC = 3;
44 
45    /** Constant for EBCDIC packed number fields. */
46    public static final int TYPE_PACKET_POSITIVE = 4;
47 
48    /** Constant for well-known constant value fields. */
49    public static final int TYPE_CONSTANT = 5;
50 
51    /** Constant for reserved fields. */
52    public static final int TYPE_RESERVED = 6;
53 
54    /** Constant for two-digit year information date fields. */
55    public static final int TYPE_SHORTDATE = 7;
56 
57    /** Constant for four-digit year information date fields. */
58    public static final int TYPE_LONGDATE = 8;
59 
60    /** Constant for field 3 of an A record. */
61    public static final int TYPE_FILETYPE = 9;
62 
63    /** Constant for {@code Bankleitzahl} fields. */
64    public static final int TYPE_BANKLEITZAHL = 10;
65 
66    /**  Constant for {@code Kontonummer} fields. */
67    public static final int TYPE_KONTONUMMER = 11;
68 
69    /**
70     * Constant for either a {@code Referenznummer10} or
71     * {@code Referenznummer11} fields.
72     */
73    public static final int TYPE_REFERENZNUMMER = 12;
74 
75    /** Constant for {@code Textschluessel} fields. */
76    public static final int TYPE_TEXTSCHLUESSEL = 13;
77 
78    /** Constant for currency fields. */
79    public static final int TYPE_CURRENCY = 14;
80 
81    /** All type constants. */
82    private static final int[] TYPES =
83    {
84        TYPE_ALPHA, TYPE_NUMERIC, TYPE_ALPHA_NUMERIC, TYPE_PACKET_POSITIVE, TYPE_CONSTANT, TYPE_RESERVED,
85        TYPE_SHORTDATE, TYPE_LONGDATE, TYPE_FILETYPE, TYPE_BANKLEITZAHL, TYPE_KONTONUMMER, TYPE_REFERENZNUMMER,
86        TYPE_TEXTSCHLUESSEL, TYPE_CURRENCY
87    };
88 
89    /** Serial version UID for backwards compatibility with 1.0.x classes. */
90    private static final long serialVersionUID = 5634623930947949635L;
91 
92    /**
93     * Constant of the field holding illegal data.
94     * @serial
95     */
96    private final int field;
97 
98    /**
99     * Absolute position of the field holding illegal data.
100     * @serial
101     */
102    private final long position;
103 
104    /**
105     * Constant for the type of the field holding illegal data.
106     * @serial
107     */
108    private final int type;
109 
110    /**
111     * The illegal data.
112     * @serial
113     */
114    private final String invalidData;
115 
116    /**
117     * Creates a new {@code IllegalDataMessage} instance taking information about the illegal data.
118     *
119     * @param field Constant for the field holding illegal data.
120     * @param type Constant for the type of the field.
121     * @param position Absolute position of the field holding illegal data.
122     * @param invalidData The illegal data held in {@code field} at {@code position}.
123     *
124     * @throws IllegalArgumentException if {@code type} does not match one of {@link #TYPE_ALPHA TYPE_<i>XYZ</i>}
125     * constants.
126     *
127     * @see org.jdtaus.banking.dtaus.spi.Fields
128     */
129    public IllegalDataMessage( final int field, final int type, final long position, final String invalidData )
130    {
131        super();
132        this.field = field;
133        this.type = type;
134        this.position = position;
135        this.invalidData = invalidData;
136        this.assertValidType();
137    }
138 
139    /**
140     * Checks a given integer to match one of the {@code TYPE_<i>XYZ</i>} constants.
141     *
142     * @throws IllegalArgumentException if {@code type} does not match one of {@link #TYPE_ALPHA TYPE_<i>XYZ</i>}
143     * constants.
144     */
145    private void assertValidType()
146    {
147        boolean valid = false;
148        for ( int i = TYPES.length - 1; i >= 0 && !valid; i-- )
149        {
150            if ( TYPES[i] == this.type )
151            {
152                valid = true;
153                break;
154            }
155        }
156 
157        if ( !valid )
158        {
159            throw new IllegalArgumentException( Integer.toString( this.type ) );
160        }
161    }
162 
163    /**
164     * {@inheritDoc}
165     *
166     * @return A string describing the field holding illegal data, the absolute position of that field, and the illegal
167     * data held by the field.
168     * <ul>
169     * <li>[0]: a string describing the field holding illegal data.</li>
170     * <li>[1]: the absolute position of that field.</li>
171     * <li>[2]: the invalid data.</li>
172     * </ul>
173     */
174    public Object[] getFormatArguments( final Locale locale )
175    {
176        return new Object[]
177            {
178                Integer.toHexString( this.field ).toUpperCase( locale ),
179                new Long( this.position ),
180                this.invalidData
181            };
182    }
183 
184    /**
185     * {@inheritDoc}
186     *
187     * @return The corresponding text from the message's {@code ResourceBundle}
188     * <blockquote><pre>
189     * "{2}" is no valid value for field {0} (at {1, number}).
190     * </pre></blockquote>
191     */
192    public String getText( final Locale locale )
193    {
194        return this.getIllegalDataMessage(
195            locale, Integer.toHexString( this.field ).toUpperCase(), new Long( this.position ), this.invalidData );
196 
197    }
198 
199    //--Messages----------------------------------------------------------------
200 
201// <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:jdtausMessages
202    // This section is managed by jdtaus-container-mojo.
203 
204    /**
205     * Gets the text of message <code>illegalData</code>.
206     * <blockquote><pre>"{2}" ist kein gültiger Wert für Feld {0} (Position {1, number}).</pre></blockquote>
207     * <blockquote><pre>"{2}" is no valid value for field {0} (at {1, number}).</pre></blockquote>
208     *
209     * @param locale The locale of the message instance to return.
210     * @param fld format parameter.
211     * @param pos format parameter.
212     * @param data format parameter.
213     *
214     * @return the text of message <code>illegalData</code>.
215     */
216    private String getIllegalDataMessage( final Locale locale,
217            final java.lang.String fld,
218            final java.lang.Number pos,
219            final java.lang.String data )
220    {
221        return ContainerFactory.getContainer().
222            getMessage( this, "illegalData", locale,
223                new Object[]
224                {
225                    fld,
226                    pos,
227                    data
228                });
229 
230    }
231 
232// </editor-fold>//GEN-END:jdtausMessages
233 
234    //----------------------------------------------------------------Messages--
235}

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