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 8738 2012-10-05 20:54:36Z schulte $ 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 8738 2012-10-05 20:54:36Z schulte $ 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.minimumLength = minimumLength; 80 this.maximumLength = maximumLength; 81 82 if ( invalidCharacters != null ) 83 { 84 this.invalidCharacters = new char[ invalidCharacters.length ]; 85 86 for ( int i = 0, s0 = invalidCharacters.length; i < s0; i++ ) 87 { 88 this.invalidCharacters[i] = invalidCharacters[i]; 89 } 90 } 91 else 92 { 93 this.invalidCharacters = null; 94 } 95 } 96 97 //----------------------------------------------------IllegalStringMessage-- 98 //--Message----------------------------------------------------------------- 99 100 /** 101 * {@inheritDoc} 102 * <ul> 103 * <li>[0]: The invalid string or {@code null} if no such string is known.</li> 104 * <li>[1]: The invalid characters or {@code null} if no such characters are known.</li> 105 * <li>[2]: The minimum required length or {@code null} if no such requirement exists.</li> 106 * <li>[3]: The maximum allowed length or {@code null} if no such limit exists.</li> 107 * </ul> 108 */ 109 public Object[] getFormatArguments( final Locale locale ) 110 { 111 return new Object[] 112 { 113 this.invalidString, this.invalidCharacters, this.minimumLength, this.maximumLength 114 }; 115 116 } 117 118 public String getText( final Locale locale ) 119 { 120 final StringBuffer b = new StringBuffer( 128 ); 121 122 if ( this.invalidString != null ) 123 { 124 b.append( this.getIllegalStringMessage( locale, this.invalidString ) ).append( " " ); 125 } 126 127 if ( this.invalidCharacters != null ) 128 { 129 final StringBuffer c = new StringBuffer( this.invalidCharacters.length * 2 ).append( "[" ); 130 131 for ( int i = 0, s0 = this.invalidCharacters.length; i < s0; i++ ) 132 { 133 c.append( this.invalidCharacters[i] ).append( ", " ); 134 } 135 136 c.setLength( c.length() - 2 ); 137 c.append( "]" ); 138 139 b.append( this.getIllegalCharactersMessage( locale, c.toString() ) ).append( " " ); 140 } 141 142 if ( this.minimumLength != null ) 143 { 144 b.append( this.getIllegalMinimumStringLengthMessage( locale, this.minimumLength ) ).append( " " ); 145 } 146 147 if ( this.maximumLength != null ) 148 { 149 b.append( this.getIllegalMaximumStringLengthMessage( locale, this.maximumLength ) ).append( " " ); 150 } 151 152 if ( b.length() > 0 ) 153 { 154 b.setLength( b.length() - 1 ); 155 } 156 157 return b.toString(); 158 } 159 160 //-----------------------------------------------------------------Message-- 161 //--Messages---------------------------------------------------------------- 162 163 // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:jdtausMessages 164 // This section is managed by jdtaus-container-mojo. 165 166 /** 167 * Gets the text of message <code>illegalString</code>. 168 * <blockquote><pre>Ungültige Zeichenkette ''{0}''.</pre></blockquote> 169 * <blockquote><pre>Illegal string ''{0}''.</pre></blockquote> 170 * 171 * @param locale The locale of the message instance to return. 172 * @param illegalString Illegal string. 173 * 174 * @return Information about an illegal string. 175 */ 176 private String getIllegalStringMessage( final Locale locale, 177 final java.lang.String illegalString ) 178 { 179 return ContainerFactory.getContainer(). 180 getMessage( this, "illegalString", locale, 181 new Object[] 182 { 183 illegalString 184 }); 185 186 } 187 188 /** 189 * Gets the text of message <code>illegalMaximumStringLength</code>. 190 * <blockquote><pre>Mehr als {0,number} Zeichen.</pre></blockquote> 191 * <blockquote><pre>More than {0,number} characters.</pre></blockquote> 192 * 193 * @param locale The locale of the message instance to return. 194 * @param maximumLength Maximum allowed length. 195 * 196 * @return Information about an illegal maximum string length. 197 */ 198 private String getIllegalMaximumStringLengthMessage( final Locale locale, 199 final java.lang.Number maximumLength ) 200 { 201 return ContainerFactory.getContainer(). 202 getMessage( this, "illegalMaximumStringLength", locale, 203 new Object[] 204 { 205 maximumLength 206 }); 207 208 } 209 210 /** 211 * Gets the text of message <code>illegalMinimumStringLength</code>. 212 * <blockquote><pre>Weniger als {0,number} Zeichen.</pre></blockquote> 213 * <blockquote><pre>Less than {0,number} characters.</pre></blockquote> 214 * 215 * @param locale The locale of the message instance to return. 216 * @param minimumLength Minimum required length. 217 * 218 * @return Information about an illegal minimum string length. 219 */ 220 private String getIllegalMinimumStringLengthMessage( final Locale locale, 221 final java.lang.Number minimumLength ) 222 { 223 return ContainerFactory.getContainer(). 224 getMessage( this, "illegalMinimumStringLength", locale, 225 new Object[] 226 { 227 minimumLength 228 }); 229 230 } 231 232 /** 233 * Gets the text of message <code>illegalCharacters</code>. 234 * <blockquote><pre>Ungültige Zeichen {0}.</pre></blockquote> 235 * <blockquote><pre>Illegal characters {0}.</pre></blockquote> 236 * 237 * @param locale The locale of the message instance to return. 238 * @param illegalCharacters Illegal characters. 239 * 240 * @return Information about illegal characters. 241 */ 242 private String getIllegalCharactersMessage( final Locale locale, 243 final java.lang.String illegalCharacters ) 244 { 245 return ContainerFactory.getContainer(). 246 getMessage( this, "illegalCharacters", locale, 247 new Object[] 248 { 249 illegalCharacters 250 }); 251 252 } 253 254 // </editor-fold>//GEN-END:jdtausMessages 255 256 //----------------------------------------------------------------Messages-- 257 }