View Javadoc
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 }