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 currency is in use in combination with a date at which its use is invalid.
30   *
31   * @author <a href="mailto:cs@schulte.it">Christian Schulte</a>
32   * @version $JDTAUS: CurrencyConstraintMessage.java 8865 2014-01-10 17:13:42Z schulte $
33   */
34  public final class CurrencyConstraintMessage extends Message
35  {
36  
37      /** Serial version UID for backwards compatibility with 1.0.x classes. */
38      private static final long serialVersionUID = 3569739879822644273L;
39  
40      /**
41       * The ISO currency code of the currency violating the constraint.
42       * @serial
43       */
44      private final String currencyCode;
45  
46      /**
47       * The date at which {@code currencyCode} violates the constraint.
48       * @serial
49       */
50      private final Date date;
51  
52      /**
53       * Creates a new {@code CurrencyConstraintMessage} taking a currency code of the currency violating the constraint
54       * at a given date.
55       *
56       * @param currencyCode The ISO currency code of the currency violating the constraint.
57       * @param date The date at which {@code currencyCode} violates the constraint.
58       *
59       * @throws NullPointerException if either {@code currencyCode} or {@code date} is {@code null}.
60       */
61      public CurrencyConstraintMessage( final String currencyCode, final Date date )
62      {
63          if ( currencyCode == null )
64          {
65              throw new NullPointerException( "currencyCode" );
66          }
67          if ( date == null )
68          {
69              throw new NullPointerException( "date" );
70          }
71  
72          this.currencyCode = currencyCode;
73          this.date = (Date) date.clone();
74      }
75  
76      /**
77       * {@inheritDoc}
78       *
79       * @return The ISO currency code of the currency violating the constraint with corresponding date.
80       * <ul>
81       * <li>[0]: ISO currency code.</li>
82       * <li>[1]: date.</li>
83       * </ul>
84       */
85      public Object[] getFormatArguments( final Locale locale )
86      {
87          return new Object[]
88              {
89                  this.currencyCode, this.date
90              };
91      }
92  
93      /**
94       * {@inheritDoc}
95       *
96       * @return The corresponding text from the message's {@code ResourceBundle}
97       * <blockquote><pre>
98       * The {0} currency is in use but not valid at {1,date,long}.
99       * </pre></blockquote>
100      */
101     public String getText( final Locale locale )
102     {
103         return this.getCurrencyConstraintMessage( locale, this.currencyCode, this.date );
104     }
105 
106     //--Messages----------------------------------------------------------------
107 
108 // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:jdtausMessages
109     // This section is managed by jdtaus-container-mojo.
110 
111     /**
112      * Gets the text of message <code>currencyConstraint</code>.
113      * <blockquote><pre>Die {0} Währung befindet sich in Verwendung, ist am {1,date,long} jedoch ungültig.</pre></blockquote>
114      * <blockquote><pre>The {0} currency is in use but not valid at {1,date,long}.</pre></blockquote>
115      *
116      * @param locale The locale of the message instance to return.
117      * @param currency format parameter.
118      * @param constraintDate format parameter.
119      *
120      * @return the text of message <code>currencyConstraint</code>.
121      */
122     private String getCurrencyConstraintMessage( final Locale locale,
123             final java.lang.String currency,
124             final java.util.Date constraintDate )
125     {
126         return ContainerFactory.getContainer().
127             getMessage( this, "currencyConstraint", locale,
128                 new Object[]
129                 {
130                     currency,
131                     constraintDate
132                 });
133 
134     }
135 
136 // </editor-fold>//GEN-END:jdtausMessages
137 
138     //----------------------------------------------------------------Messages--
139 }