View Javadoc

1   /*
2    *  jDTAUS Core Messages
3    *  Copyright (C) 2005 Christian Schulte
4    *
5    *  This library is free software; you can redistribute it and/or
6    *  modify it under the terms of the GNU Lesser General Public
7    *  License as published by the Free Software Foundation; either
8    *  version 2.1 of the License, or any later version.
9    *
10   *  This library is distributed in the hope that it will be useful,
11   *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12   *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13   *  Lesser General Public License for more details.
14   *
15   *  You should have received a copy of the GNU Lesser General Public
16   *  License along with this library; if not, write to the Free Software
17   *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
18   *
19   *  $JDTAUS: IllegalStringMessage.java 8525 2012-05-07 08:32:23Z schulte2005 $
20   */
21  package org.jdtaus.core.messages;
22  
23  import java.util.Locale;
24  import org.jdtaus.core.container.ContainerFactory;
25  import org.jdtaus.core.text.Message;
26  
27  /**
28   * Message stating that an illegal string was specified.
29   *
30   * @author Christian Schulte
31   * @version $JDTAUS: IllegalStringMessage.java 8525 2012-05-07 08:32:23Z schulte2005 $
32   * @since 1.10
33   */
34  public final class IllegalStringMessage extends Message
35  {
36      //--IllegalStringMessage----------------------------------------------------
37  
38      /** Serial version UID for backwards compatibility with 1.10.x classes. */
39      private static final long serialVersionUID = -8783693360487171440L;
40  
41      /**
42       * The invalid string.
43       * @serial
44       */
45      private String invalidString;
46  
47      /**
48       * The invalid characters of the string.
49       * @serial
50       */
51      private char[] invalidCharacters;
52  
53      /**
54       * The minimum required length.
55       * @serial
56       */
57      private Number minimumLength;
58  
59      /**
60       * The maximum allowed length.
61       * @serial
62       */
63      private Number maximumLength;
64  
65      /**
66       * Creates a new {@code IllegalStringMessage} instance taking an invalid string, an array of invalid characters,
67       * a minimum required length and a maximum allowed length.
68       *
69       * @param invalidString The invalid string or {@code null} if no such string is known.
70       * @param invalidCharacters The invalid characters or {@code null} if no such characters are known.
71       * @param minimumLength The minimum required length or {@code null} if no such requirement exists.
72       * @param maximumLength The maximum allowed length or {@code null} if no such limit exists.
73       */
74      public IllegalStringMessage( final String invalidString, final char[] invalidCharacters,
75                                   final Number minimumLength, final Number maximumLength )
76      {
77          super();
78          this.invalidString = invalidString;
79          this.invalidCharacters = invalidCharacters;
80          this.minimumLength = minimumLength;
81          this.maximumLength = maximumLength;
82      }
83  
84      //----------------------------------------------------IllegalStringMessage--
85      //--Message-----------------------------------------------------------------
86  
87      /**
88       * {@inheritDoc}
89       * <ul>
90       * <li>[0]: The invalid string or {@code null} if no such string is known.</li>
91       * <li>[1]: The invalid characters or {@code null} if no such characters are known.</li>
92       * <li>[2]: The minimum required length or {@code null} if no such requirement exists.</li>
93       * <li>[3]: The maximum allowed length or {@code null} if no such limit exists.</li>
94       * </ul>
95       */
96      public Object[] getFormatArguments( final Locale locale )
97      {
98          return new Object[]
99              {
100                 this.invalidString, this.invalidCharacters, this.minimumLength, this.maximumLength
101             };
102 
103     }
104 
105     public String getText( final Locale locale )
106     {
107         final StringBuffer b = new StringBuffer( 128 );
108 
109         if ( this.invalidString != null )
110         {
111             b.append( this.getIllegalStringMessage( locale, this.invalidString ) ).append( " " );
112         }
113 
114         if ( this.invalidCharacters != null )
115         {
116             final StringBuffer c = new StringBuffer( this.invalidCharacters.length * 2 ).append( "[" );
117 
118             for ( int i = 0, s0 = this.invalidCharacters.length; i < s0; i++ )
119             {
120                 c.append( this.invalidCharacters[i] ).append( ", " );
121             }
122 
123             c.setLength( c.length() - 2 );
124             c.append( "]" );
125 
126             b.append( this.getIllegalCharactersMessage( locale, c.toString() ) ).append( " " );
127         }
128 
129         if ( this.minimumLength != null )
130         {
131             b.append( this.getIllegalMinimumStringLengthMessage( locale, this.minimumLength ) ).append( " " );
132         }
133 
134         if ( this.maximumLength != null )
135         {
136             b.append( this.getIllegalMaximumStringLengthMessage( locale, this.maximumLength ) ).append( " " );
137         }
138 
139         if ( b.length() > 0 )
140         {
141             b.setLength( b.length() - 1 );
142         }
143 
144         return b.toString();
145     }
146 
147     //-----------------------------------------------------------------Message--
148     //--Messages----------------------------------------------------------------
149 
150 // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:jdtausMessages
151     // This section is managed by jdtaus-container-mojo.
152 
153     /**
154      * Gets the text of message <code>illegalString</code>.
155      * <blockquote><pre>Ungültige Zeichenkette ''{0}''.</pre></blockquote>
156      * <blockquote><pre>Illegal string ''{0}''.</pre></blockquote>
157      *
158      * @param locale The locale of the message instance to return.
159      * @param illegalString Illegal string.
160      *
161      * @return Information about an illegal string.
162      */
163     private String getIllegalStringMessage( final Locale locale,
164             final java.lang.String illegalString )
165     {
166         return ContainerFactory.getContainer().
167             getMessage( this, "illegalString", locale,
168                 new Object[]
169                 {
170                     illegalString
171                 });
172 
173     }
174 
175     /**
176      * Gets the text of message <code>illegalMaximumStringLength</code>.
177      * <blockquote><pre>Mehr als {0,number} Zeichen.</pre></blockquote>
178      * <blockquote><pre>More than {0,number} characters.</pre></blockquote>
179      *
180      * @param locale The locale of the message instance to return.
181      * @param maximumLength Maximum allowed length.
182      *
183      * @return Information about an illegal maximum string length.
184      */
185     private String getIllegalMaximumStringLengthMessage( final Locale locale,
186             final java.lang.Number maximumLength )
187     {
188         return ContainerFactory.getContainer().
189             getMessage( this, "illegalMaximumStringLength", locale,
190                 new Object[]
191                 {
192                     maximumLength
193                 });
194 
195     }
196 
197     /**
198      * Gets the text of message <code>illegalMinimumStringLength</code>.
199      * <blockquote><pre>Weniger als {0,number} Zeichen.</pre></blockquote>
200      * <blockquote><pre>Less than {0,number} characters.</pre></blockquote>
201      *
202      * @param locale The locale of the message instance to return.
203      * @param minimumLength Minimum required length.
204      *
205      * @return Information about an illegal minimum string length.
206      */
207     private String getIllegalMinimumStringLengthMessage( final Locale locale,
208             final java.lang.Number minimumLength )
209     {
210         return ContainerFactory.getContainer().
211             getMessage( this, "illegalMinimumStringLength", locale,
212                 new Object[]
213                 {
214                     minimumLength
215                 });
216 
217     }
218 
219     /**
220      * Gets the text of message <code>illegalCharacters</code>.
221      * <blockquote><pre>Ungültige Zeichen {0}.</pre></blockquote>
222      * <blockquote><pre>Illegal characters {0}.</pre></blockquote>
223      *
224      * @param locale The locale of the message instance to return.
225      * @param illegalCharacters Illegal characters.
226      *
227      * @return Information about illegal characters.
228      */
229     private String getIllegalCharactersMessage( final Locale locale,
230             final java.lang.String illegalCharacters )
231     {
232         return ContainerFactory.getContainer().
233             getMessage( this, "illegalCharacters", locale,
234                 new Object[]
235                 {
236                     illegalCharacters
237                 });
238 
239     }
240 
241 // </editor-fold>//GEN-END:jdtausMessages
242 
243     //----------------------------------------------------------------Messages--
244 }