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 given schedule is invalid.
30   *
31   * @author <a href="mailto:cs@schulte.it">Christian Schulte</a>
32   * @version $JDTAUS: IllegalScheduleMessage.java 8865 2014-01-10 17:13:42Z schulte $
33   */
34  public final class IllegalScheduleMessage extends Message
35  {
36  
37      /** Serial version UID for backwards compatibility with 1.0.x classes. */
38      private static final long serialVersionUID = -8689097743116031670L;
39  
40      /**
41       * Create date of the illegal schedule.
42       * @serial
43       */
44      private final Date createDate;
45  
46      /**
47       * Execution date of the illegal schedule.
48       * @serial
49       */
50      private final Date executionDate;
51  
52      /**
53       * Maximum number of days allowed between {@code createDate} and
54       * {@code executionDate}.
55       * @serial
56       */
57      private final int maxDays;
58  
59      /**
60       * Creates a new {@code IllegalScheduleMessage} instance taking the create date and the date of execution not
61       * forming a valid schedule for a maximum number of days between them.
62       *
63       * @param createDate The create date of the schedule.
64       * @param executionDate The execution date of the schedule.
65       * @param maxDays The maximum number of days allowed between {@code createDate} and {@code executionDate}.
66       *
67       * @throws NullPointerException if {@code createDate} is {@code null}.
68       * @throws IllegalArgumentException if {@code maxDays} is negative.
69       */
70      public IllegalScheduleMessage( final Date createDate, final Date executionDate, final int maxDays )
71      {
72          super();
73          if ( createDate == null )
74          {
75              throw new NullPointerException( "createDate" );
76          }
77          if ( maxDays < 0 )
78          {
79              throw new IllegalArgumentException( Integer.toString( maxDays ) );
80          }
81  
82          this.createDate = (Date) createDate.clone();
83          this.executionDate = (Date) ( executionDate == null ? null : executionDate.clone() );
84          this.maxDays = maxDays;
85      }
86  
87      /**
88       * {@inheritDoc}
89       *
90       * @return The create date and the date of execution.
91       * <ul>
92       * <li>[0]: the create date of the schedule.</li>
93       * <li>[1]: the date of execution of the invalid schedule.</li>
94       * <li>[2]: the maximum number of days allowed between create date and
95       * execution date.</li>
96       * </ul>
97       */
98      public Object[] getFormatArguments( final Locale locale )
99      {
100         return new Object[]
101             {
102                 this.createDate, this.executionDate, new Integer( this.maxDays )
103             };
104     }
105 
106     /**
107      * {@inheritDoc}
108      *
109      * @return The corresponding text from the message's {@code ResourceBundle}
110      * <blockquote><pre>
111      * The executiondate {1,date,long} is before create date {0,date,long} or more than {2,number} days thereafter.
112      * </pre></blockquote>
113      */
114     public String getText( final Locale locale )
115     {
116         return this.getIllegalScheduleMessage( locale, this.createDate, this.executionDate,
117                                                new Integer( this.maxDays ) );
118 
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>illegalSchedule</code>.
128      * <blockquote><pre>Das Ausführungsdatum {1,date,long} liegt vor dem Dateierstellungsdatum {0,date,long} oder mehr als {2,number} Kalendertage dahinter.</pre></blockquote>
129      * <blockquote><pre>The executiondate {1,date,long} is before create date {0,date,long} or more than {2,number} days thereafter.</pre></blockquote>
130      *
131      * @param locale The locale of the message instance to return.
132      * @param cdat format parameter.
133      * @param edat format parameter.
134      * @param max format parameter.
135      *
136      * @return the text of message <code>illegalSchedule</code>.
137      */
138     private String getIllegalScheduleMessage( final Locale locale,
139             final java.util.Date cdat,
140             final java.util.Date edat,
141             final java.lang.Number max )
142     {
143         return ContainerFactory.getContainer().
144             getMessage( this, "illegalSchedule", locale,
145                 new Object[]
146                 {
147                     cdat,
148                     edat,
149                     max
150                 });
151 
152     }
153 
154 // </editor-fold>//GEN-END:jdtausMessages
155 
156     //----------------------------------------------------------------Messages--
157 }