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 */
21 package org.jdtaus.banking.messages;
22
23 import java.util.Date;
24 import java.util.Locale;
25 import org.jdtaus.core.container.ContainerFactory;
26 import org.jdtaus.core.text.Message;
27
28 /**
29 * Message stating that a date is invalid.
30 *
31 * @author <a href="mailto:cs@schulte.it">Christian Schulte</a>
32 * @version $JDTAUS: IllegalDateMessage.java 8865 2014-01-10 17:13:42Z schulte $
33 */
34 public final class IllegalDateMessage extends Message
35 {
36
37 /** Serial version UID for backwards compatibility with 1.0.x classes. */
38 private static final long serialVersionUID = 4086935652662010927L;
39
40 /**
41 * The illegal date.
42 * @serial
43 */
44 private final Date date;
45
46 /**
47 * The starting date of the range for valid dates.
48 * @serial
49 */
50 private final Date dateRangeStart;
51
52 /**
53 * The ending date of the range for valid dates.
54 * @serial
55 */
56 private final Date dateRangeEnd;
57
58 /**
59 * Creates a new {@code IllegalDateMessage} instance taking the illegal date and the range of dates for which a
60 * date is considered legal.
61 *
62 * @param date The illegal date.
63 * @param dateRangeStart The starting date of the range for valid dates.
64 * @param dateRangeEnd The ending date of the range for valid dates.
65 *
66 * @throws NullPointerException if either {@code date}, {@code dateRangeStart} or {@code dateRangeEnd} is
67 * {@code null}.
68 */
69 public IllegalDateMessage( final Date date, final Date dateRangeStart, final Date dateRangeEnd )
70 {
71 super();
72 if ( date == null )
73 {
74 throw new NullPointerException( "date" );
75 }
76 if ( dateRangeStart == null )
77 {
78 throw new NullPointerException( "dateRangeStart" );
79 }
80 if ( dateRangeEnd == null )
81 {
82 throw new NullPointerException( "dateRangeEnd" );
83 }
84
85 this.date = (Date) date.clone();
86 this.dateRangeStart = (Date) dateRangeStart.clone();
87 this.dateRangeEnd = (Date) dateRangeEnd.clone();
88 }
89
90 /**
91 * {@inheritDoc}
92 *
93 * @return The illegal date.
94 * <ul>
95 * <li>[0]: the illegal date.</li>
96 * <li>[1]: the starting date of the range for valid dates.</li>
97 * <li>[2]: the ending date of the range for valid dates.</li>
98 * </ul>
99 */
100 public Object[] getFormatArguments( final Locale locale )
101 {
102 return new Object[]
103 {
104 this.date, this.dateRangeStart, this.dateRangeEnd
105 };
106 }
107
108 /**
109 * {@inheritDoc}
110 *
111 * @return The corresponding text from the message's {@code ResourceBundle}
112 * <blockquote><pre>
113 * The date {0,date,long} is either before {1,date,long} or after {2,date,long}.
114 * </pre></blockquote>
115 */
116 public String getText( final Locale locale )
117 {
118 return this.getIllegalDateMessage( locale, this.date, this.dateRangeStart, this.dateRangeEnd );
119 }
120
121 //--Messages----------------------------------------------------------------
122
123 // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:jdtausMessages
124 // This section is managed by jdtaus-container-mojo.
125
126 /**
127 * Gets the text of message <code>illegalDate</code>.
128 * <blockquote><pre>Das Datum {0,date,long} liegt entweder vor {1,date,long} oder hinter {2,date,long}.</pre></blockquote>
129 * <blockquote><pre>The date {0,date,long} is either before {1,date,long} or after {2,date,long}.</pre></blockquote>
130 *
131 * @param locale The locale of the message instance to return.
132 * @param dat format parameter.
133 * @param start format parameter.
134 * @param end format parameter.
135 *
136 * @return the text of message <code>illegalDate</code>.
137 */
138 private String getIllegalDateMessage( final Locale locale,
139 final java.util.Date dat,
140 final java.util.Date start,
141 final java.util.Date end )
142 {
143 return ContainerFactory.getContainer().
144 getMessage( this, "illegalDate", locale,
145 new Object[]
146 {
147 dat,
148 start,
149 end
150 });
151
152 }
153
154 // </editor-fold>//GEN-END:jdtausMessages
155
156 //----------------------------------------------------------------Messages--
157 }