1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * https://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 18 package org.apache.commons.beanutils2.locale; 19 20 import java.util.Locale; 21 22 /** 23 * <p> 24 * Utility methods for converting locale-sensitive String scalar values to objects of the specified Class, String arrays to arrays of the specified Class and 25 * object to locale-sensitive String scalar value. 26 * </p> 27 * 28 * <p> 29 * The implementations for these method are provided by {@link LocaleConvertUtilsBean}. These static utility method use the default instance. More sophisticated 30 * can be provided by using a {@code LocaleConvertUtilsBean} instance. 31 * </p> 32 */ 33 public final class LocaleConvertUtils { 34 35 /** 36 * <p> 37 * Converts the specified locale-sensitive value into a String. 38 * </p> 39 * 40 * <p> 41 * For more details see {@code LocaleConvertUtilsBean} 42 * </p> 43 * 44 * @param value The Value to be converted 45 * @return the converted value 46 * @see LocaleConvertUtilsBean#convert(Object) 47 */ 48 public static String convert(final Object value) { 49 return LocaleConvertUtilsBean.getInstance().convert(value); 50 } 51 52 /** 53 * <p> 54 * Converts the specified locale-sensitive value into a String using the particular conversion pattern. 55 * </p> 56 * 57 * <p> 58 * For more details see {@code LocaleConvertUtilsBean} 59 * </p> 60 * 61 * @param value The Value to be converted 62 * @param locale The locale 63 * @param pattern The conversion pattern 64 * @return the converted value 65 * @see LocaleConvertUtilsBean#convert(Object, Locale, String) 66 */ 67 public static String convert(final Object value, final Locale locale, final String pattern) { 68 return LocaleConvertUtilsBean.getInstance().convert(value, locale, pattern); 69 } 70 71 /** 72 * <p> 73 * Converts the specified locale-sensitive value into a String using the conversion pattern. 74 * </p> 75 * 76 * <p> 77 * For more details see {@code LocaleConvertUtilsBean} 78 * </p> 79 * 80 * @param value The Value to be converted 81 * @param pattern The conversion pattern 82 * @return the converted value 83 * @see LocaleConvertUtilsBean#convert(Object, String) 84 */ 85 public static String convert(final Object value, final String pattern) { 86 return LocaleConvertUtilsBean.getInstance().convert(value, pattern); 87 } 88 89 /** 90 * <p> 91 * Converts the specified value to an object of the specified class (if possible). Otherwise, return a String representation of the value. 92 * </p> 93 * 94 * <p> 95 * For more details see {@code LocaleConvertUtilsBean} 96 * </p> 97 * 98 * @param value The String scalar value to be converted 99 * @param clazz The Data type to which this value should be converted. 100 * @return the converted value 101 * @see LocaleConvertUtilsBean#convert(String, Class) 102 */ 103 public static Object convert(final String value, final Class<?> clazz) { 104 return LocaleConvertUtilsBean.getInstance().convert(value, clazz); 105 } 106 107 /** 108 * <p> 109 * Converts the specified value to an object of the specified class (if possible) using the conversion pattern. Otherwise, return a String representation of 110 * the value. 111 * </p> 112 * 113 * <p> 114 * For more details see {@code LocaleConvertUtilsBean} 115 * </p> 116 * 117 * @param value The String scalar value to be converted 118 * @param clazz The Data type to which this value should be converted. 119 * @param locale The locale 120 * @param pattern The conversion pattern 121 * @return the converted value 122 * @see LocaleConvertUtilsBean#convert(String, Class, Locale, String) 123 */ 124 public static Object convert(final String value, final Class<?> clazz, final Locale locale, final String pattern) { 125 return LocaleConvertUtilsBean.getInstance().convert(value, clazz, locale, pattern); 126 } 127 128 /** 129 * <p> 130 * Converts the specified value to an object of the specified class (if possible) using the conversion pattern. Otherwise, return a String representation of 131 * the value. 132 * </p> 133 * 134 * <p> 135 * For more details see {@code LocaleConvertUtilsBean} 136 * </p> 137 * 138 * @param value The String scalar value to be converted 139 * @param clazz The Data type to which this value should be converted. 140 * @param pattern The conversion pattern 141 * @return the converted value 142 * @see LocaleConvertUtilsBean#convert(String, Class, String) 143 */ 144 public static Object convert(final String value, final Class<?> clazz, final String pattern) { 145 return LocaleConvertUtilsBean.getInstance().convert(value, clazz, pattern); 146 } 147 148 /** 149 * <p> 150 * Convert an array of specified values to an array of objects of the specified class (if possible). 151 * </p> 152 * 153 * <p> 154 * For more details see {@code LocaleConvertUtilsBean} 155 * </p> 156 * 157 * @param values Value to be converted (may be null) 158 * @param clazz Java array or element class to be converted to 159 * @return the converted value 160 * @see LocaleConvertUtilsBean#convert(String[], Class) 161 */ 162 public static Object convert(final String[] values, final Class<?> clazz) { 163 return LocaleConvertUtilsBean.getInstance().convert(values, clazz); 164 } 165 166 /** 167 * <p> 168 * Convert an array of specified values to an array of objects of the specified class (if possible) using the conversion pattern. 169 * </p> 170 * 171 * <p> 172 * For more details see {@code LocaleConvertUtilsBean} 173 * </p> 174 * 175 * @param values Value to be converted (may be null) 176 * @param clazz Java array or element class to be converted to 177 * @param locale The locale 178 * @param pattern The conversion pattern 179 * @return the converted value 180 * @see LocaleConvertUtilsBean#convert(String[], Class, Locale, String) 181 */ 182 public static Object convert(final String[] values, final Class<?> clazz, final Locale locale, final String pattern) { 183 return LocaleConvertUtilsBean.getInstance().convert(values, clazz, locale, pattern); 184 } 185 186 /** 187 * <p> 188 * Convert an array of specified values to an array of objects of the specified class (if possible) using the conversion pattern. 189 * </p> 190 * 191 * <p> 192 * For more details see {@code LocaleConvertUtilsBean} 193 * </p> 194 * 195 * @param values Value to be converted (may be null) 196 * @param clazz Java array or element class to be converted to 197 * @param pattern The conversion pattern 198 * @return the converted value 199 * @see LocaleConvertUtilsBean#convert(String[], Class, String) 200 */ 201 public static Object convert(final String[] values, final Class<?> clazz, final String pattern) { 202 return LocaleConvertUtilsBean.getInstance().convert(values, clazz, pattern); 203 } 204 205 /** 206 * <p> 207 * Remove any registered {@link LocaleConverter}. 208 * </p> 209 * 210 * <p> 211 * For more details see {@code LocaleConvertUtilsBean} 212 * </p> 213 * 214 * @see LocaleConvertUtilsBean#deregister() 215 */ 216 public static void deregister() { 217 LocaleConvertUtilsBean.getInstance().deregister(); 218 } 219 220 /** 221 * <p> 222 * Remove any registered {@link LocaleConverter} for the specified locale and Class. 223 * </p> 224 * 225 * <p> 226 * For more details see {@code LocaleConvertUtilsBean} 227 * </p> 228 * 229 * @param clazz Class for which to remove a registered Converter 230 * @param locale The locale 231 * @see LocaleConvertUtilsBean#deregister(Class, Locale) 232 */ 233 public static void deregister(final Class<?> clazz, final Locale locale) { 234 LocaleConvertUtilsBean.getInstance().deregister(clazz, locale); 235 } 236 237 /** 238 * <p> 239 * Remove any registered {@link LocaleConverter} for the specified locale. 240 * </p> 241 * 242 * <p> 243 * For more details see {@code LocaleConvertUtilsBean} 244 * </p> 245 * 246 * @param locale The locale 247 * @see LocaleConvertUtilsBean#deregister(Locale) 248 */ 249 public static void deregister(final Locale locale) { 250 LocaleConvertUtilsBean.getInstance().deregister(locale); 251 } 252 253 /** 254 * <p> 255 * Gets applyLocalized. 256 * </p> 257 * 258 * <p> 259 * For more details see {@code LocaleConvertUtilsBean} 260 * </p> 261 * 262 * @return {@code true} if pattern is localized, otherwise {@code false} 263 * @see LocaleConvertUtilsBean#getApplyLocalized() 264 */ 265 public static boolean getApplyLocalized() { 266 return LocaleConvertUtilsBean.getInstance().getApplyLocalized(); 267 } 268 269 /** 270 * <p> 271 * Gets the {@link Locale} which will be used when no {@link Locale} is passed to a method. 272 * </p> 273 * 274 * <p> 275 * For more details see {@code LocaleConvertUtilsBean} 276 * </p> 277 * 278 * @return the default locale 279 * @see LocaleConvertUtilsBean#getDefaultLocale() 280 */ 281 public static Locale getDefaultLocale() { 282 return LocaleConvertUtilsBean.getInstance().getDefaultLocale(); 283 } 284 285 /** 286 * <p> 287 * Look up and return any registered {@link LocaleConverter} for the specified destination class and locale; if there is no registered Converter, return 288 * {@code null}. 289 * </p> 290 * 291 * <p> 292 * For more details see {@code LocaleConvertUtilsBean} 293 * </p> 294 * 295 * @param <T> The converter type. 296 * @param clazz Class for which to return a registered Converter 297 * @param locale The Locale 298 * @return The registered locale Converter, if any 299 * @see LocaleConvertUtilsBean#lookup(Class, Locale) 300 */ 301 public static <T> LocaleConverter<T> lookup(final Class<T> clazz, final Locale locale) { 302 return LocaleConvertUtilsBean.getInstance().lookup(clazz, locale); 303 } 304 305 /** 306 * <p> 307 * Register a custom {@link LocaleConverter} for the specified destination {@code Class}, replacing any previously registered converter. 308 * </p> 309 * 310 * <p> 311 * For more details see {@code LocaleConvertUtilsBean} 312 * </p> 313 * 314 * @param <T> The converter type. 315 * @param converter The LocaleConverter to be registered 316 * @param clazz The Destination class for conversions performed by this Converter 317 * @param locale The locale 318 * @see LocaleConvertUtilsBean#register(LocaleConverter, Class, Locale) 319 */ 320 public static <T> void register(final LocaleConverter<T> converter, final Class<T> clazz, final Locale locale) { 321 LocaleConvertUtilsBean.getInstance().register(converter, clazz, locale); 322 } 323 324 /** 325 * <p> 326 * Sets applyLocalized. 327 * </p> 328 * 329 * <p> 330 * For more details see {@code LocaleConvertUtilsBean} 331 * </p> 332 * 333 * @param newApplyLocalized {@code true} if pattern is localized, otherwise {@code false} 334 * @see LocaleConvertUtilsBean#setApplyLocalized(boolean) 335 */ 336 public static void setApplyLocalized(final boolean newApplyLocalized) { 337 LocaleConvertUtilsBean.getInstance().setApplyLocalized(newApplyLocalized); 338 } 339 340 /** 341 * <p> 342 * Sets the {@link Locale} which will be used when no {@link Locale} is passed to a method. 343 * </p> 344 * 345 * <p> 346 * For more details see {@code LocaleConvertUtilsBean} 347 * </p> 348 * 349 * @param locale the default locale 350 * @see LocaleConvertUtilsBean#setDefaultLocale(Locale) 351 */ 352 public static void setDefaultLocale(final Locale locale) { 353 LocaleConvertUtilsBean.getInstance().setDefaultLocale(locale); 354 } 355 356 private LocaleConvertUtils() { 357 // empty 358 } 359 }