001 /* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 018 package org.apache.commons.beanutils.locale; 019 020 import org.apache.commons.collections.FastHashMap; 021 022 import java.util.Locale; 023 024 /** 025 * <p>Utility methods for converting locale-sensitive String scalar values to objects of the 026 * specified Class, String arrays to arrays of the specified Class and 027 * object to locale-sensitive String scalar value.</p> 028 * 029 * <p>The implementations for these method are provided by {@link LocaleConvertUtilsBean}. 030 * These static utility method use the default instance. More sophisticated can be provided 031 * by using a <code>LocaleConvertUtilsBean</code> instance.</p> 032 * 033 * @author Yauheny Mikulski 034 */ 035 public class LocaleConvertUtils { 036 037 // ----------------------------------------------------- Instance Variables 038 039 /** 040 * <p>Gets the <code>Locale</code> which will be used when 041 * no <code>Locale</code> is passed to a method.</p> 042 * 043 * <p>For more details see <code>LocaleConvertUtilsBean</code></p> 044 * @return the default locale 045 * @see LocaleConvertUtilsBean#getDefaultLocale() 046 */ 047 public static Locale getDefaultLocale() { 048 049 return LocaleConvertUtilsBean.getInstance().getDefaultLocale(); 050 } 051 052 /** 053 * <p>Sets the <code>Locale</code> which will be used when 054 * no <code>Locale</code> is passed to a method.</p> 055 * 056 * <p>For more details see <code>LocaleConvertUtilsBean</code></p> 057 * 058 * @param locale the default locale 059 * @see LocaleConvertUtilsBean#setDefaultLocale(Locale) 060 */ 061 public static void setDefaultLocale(Locale locale) { 062 063 LocaleConvertUtilsBean.getInstance().setDefaultLocale(locale); 064 } 065 066 /** 067 * <p>Gets applyLocalized.</p> 068 * 069 * <p>For more details see <code>LocaleConvertUtilsBean</code></p> 070 * 071 * @return <code>true</code> if pattern is localized, 072 * otherwise <code>false</code> 073 * @see LocaleConvertUtilsBean#getApplyLocalized() 074 */ 075 public static boolean getApplyLocalized() { 076 return LocaleConvertUtilsBean.getInstance().getApplyLocalized(); 077 } 078 079 /** 080 * <p>Sets applyLocalized.</p> 081 * 082 * <p>For more details see <code>LocaleConvertUtilsBean</code></p> 083 * 084 * @param newApplyLocalized <code>true</code> if pattern is localized, 085 * otherwise <code>false</code> 086 * @see LocaleConvertUtilsBean#setApplyLocalized(boolean) 087 */ 088 public static void setApplyLocalized(boolean newApplyLocalized) { 089 LocaleConvertUtilsBean.getInstance().setApplyLocalized(newApplyLocalized); 090 } 091 092 // --------------------------------------------------------- Methods 093 094 /** 095 * <p>Convert the specified locale-sensitive value into a String.</p> 096 * 097 * <p>For more details see <code>LocaleConvertUtilsBean</code></p> 098 * 099 * @param value The Value to be converted 100 * @return the converted value 101 * @see LocaleConvertUtilsBean#convert(Object) 102 */ 103 public static String convert(Object value) { 104 return LocaleConvertUtilsBean.getInstance().convert(value); 105 } 106 107 /** 108 * <p>Convert the specified locale-sensitive value into a String 109 * using the conversion pattern.</p> 110 * 111 * <p>For more details see <code>LocaleConvertUtilsBean</code></p> 112 * 113 * @param value The Value to be converted 114 * @param pattern The convertion pattern 115 * @return the converted value 116 * @see LocaleConvertUtilsBean#convert(Object, String) 117 */ 118 public static String convert(Object value, String pattern) { 119 return LocaleConvertUtilsBean.getInstance().convert(value, pattern); 120 } 121 122 /** 123 * <p>Convert the specified locale-sensitive value into a String 124 * using the paticular convertion pattern.</p> 125 * 126 * <p>For more details see <code>LocaleConvertUtilsBean</code></p> 127 * 128 * @param value The Value to be converted 129 * @param locale The locale 130 * @param pattern The convertion pattern 131 * @return the converted value 132 * @see LocaleConvertUtilsBean#convert(Object, Locale, String) 133 */ 134 public static String convert(Object value, Locale locale, String pattern) { 135 136 return LocaleConvertUtilsBean.getInstance().convert(value, locale, pattern); 137 } 138 139 /** 140 * <p>Convert the specified value to an object of the specified class (if 141 * possible). Otherwise, return a String representation of the value.</p> 142 * 143 * <p>For more details see <code>LocaleConvertUtilsBean</code></p> 144 * 145 * @param value The String scalar value to be converted 146 * @param clazz The Data type to which this value should be converted. 147 * @return the converted value 148 * @see LocaleConvertUtilsBean#convert(String, Class) 149 */ 150 public static Object convert(String value, Class clazz) { 151 152 return LocaleConvertUtilsBean.getInstance().convert(value, clazz); 153 } 154 155 /** 156 * <p>Convert the specified value to an object of the specified class (if 157 * possible) using the convertion pattern. Otherwise, return a String 158 * representation of the value.</p> 159 * 160 * <p>For more details see <code>LocaleConvertUtilsBean</code></p> 161 * 162 * @param value The String scalar value to be converted 163 * @param clazz The Data type to which this value should be converted. 164 * @param pattern The convertion pattern 165 * @return the converted value 166 * @see LocaleConvertUtilsBean#convert(String, Class, String) 167 */ 168 public static Object convert(String value, Class clazz, String pattern) { 169 170 return LocaleConvertUtilsBean.getInstance().convert(value, clazz, pattern); 171 } 172 173 /** 174 * <p>Convert the specified value to an object of the specified class (if 175 * possible) using the convertion pattern. Otherwise, return a String 176 * representation of the value.</p> 177 * 178 * <p>For more details see <code>LocaleConvertUtilsBean</code></p> 179 * 180 * @param value The String scalar value to be converted 181 * @param clazz The Data type to which this value should be converted. 182 * @param locale The locale 183 * @param pattern The convertion pattern 184 * @return the converted value 185 * @see LocaleConvertUtilsBean#convert(String, Class, Locale, String) 186 */ 187 public static Object convert(String value, Class clazz, Locale locale, String pattern) { 188 189 return LocaleConvertUtilsBean.getInstance().convert(value, clazz, locale, pattern); 190 } 191 192 /** 193 * <p>Convert an array of specified values to an array of objects of the 194 * specified class (if possible) using the convertion pattern.</p> 195 * 196 * <p>For more details see <code>LocaleConvertUtilsBean</code></p> 197 * 198 * @param values Value to be converted (may be null) 199 * @param clazz Java array or element class to be converted to 200 * @param pattern The convertion pattern 201 * @return the converted value 202 * @see LocaleConvertUtilsBean#convert(String[], Class, String) 203 */ 204 public static Object convert(String[] values, Class clazz, String pattern) { 205 206 return LocaleConvertUtilsBean.getInstance().convert(values, clazz, pattern); 207 } 208 209 /** 210 * <p>Convert an array of specified values to an array of objects of the 211 * specified class (if possible).</p> 212 * 213 * <p>For more details see <code>LocaleConvertUtilsBean</code></p> 214 * 215 * @param values Value to be converted (may be null) 216 * @param clazz Java array or element class to be converted to 217 * @return the converted value 218 * @see LocaleConvertUtilsBean#convert(String[], Class) 219 */ 220 public static Object convert(String[] values, Class clazz) { 221 222 return LocaleConvertUtilsBean.getInstance().convert(values, clazz); 223 } 224 225 /** 226 * <p>Convert an array of specified values to an array of objects of the 227 * specified class (if possible) using the convertion pattern.</p> 228 * 229 * <p>For more details see <code>LocaleConvertUtilsBean</code></p> 230 * 231 * @param values Value to be converted (may be null) 232 * @param clazz Java array or element class to be converted to 233 * @param locale The locale 234 * @param pattern The convertion pattern 235 * @return the converted value 236 * @see LocaleConvertUtilsBean#convert(String[], Class, Locale, String) 237 */ 238 public static Object convert(String[] values, Class clazz, Locale locale, String pattern) { 239 240 return LocaleConvertUtilsBean.getInstance().convert(values, clazz, locale, pattern); 241 } 242 243 /** 244 * <p>Register a custom {@link LocaleConverter} for the specified destination 245 * <code>Class</code>, replacing any previously registered converter.</p> 246 * 247 * <p>For more details see <code>LocaleConvertUtilsBean</code></p> 248 * 249 * @param converter The LocaleConverter to be registered 250 * @param clazz The Destination class for conversions performed by this 251 * Converter 252 * @param locale The locale 253 * @see LocaleConvertUtilsBean#register(LocaleConverter, Class, Locale) 254 */ 255 public static void register(LocaleConverter converter, Class clazz, Locale locale) { 256 257 LocaleConvertUtilsBean.getInstance().register(converter, clazz, locale); 258 } 259 260 /** 261 * <p>Remove any registered {@link LocaleConverter}.</p> 262 * 263 * <p>For more details see <code>LocaleConvertUtilsBean</code></p> 264 * 265 * @see LocaleConvertUtilsBean#deregister() 266 */ 267 public static void deregister() { 268 269 LocaleConvertUtilsBean.getInstance().deregister(); 270 } 271 272 273 /** 274 * <p>Remove any registered {@link LocaleConverter} for the specified locale.</p> 275 * 276 * <p>For more details see <code>LocaleConvertUtilsBean</code></p> 277 * 278 * @param locale The locale 279 * @see LocaleConvertUtilsBean#deregister(Locale) 280 */ 281 public static void deregister(Locale locale) { 282 283 LocaleConvertUtilsBean.getInstance().deregister(locale); 284 } 285 286 287 /** 288 * <p>Remove any registered {@link LocaleConverter} for the specified locale and Class.</p> 289 * 290 * <p>For more details see <code>LocaleConvertUtilsBean</code></p> 291 * 292 * @param clazz Class for which to remove a registered Converter 293 * @param locale The locale 294 * @see LocaleConvertUtilsBean#deregister(Class, Locale) 295 */ 296 public static void deregister(Class clazz, Locale locale) { 297 298 LocaleConvertUtilsBean.getInstance().deregister(clazz, locale); 299 } 300 301 /** 302 * <p>Look up and return any registered {@link LocaleConverter} for the specified 303 * destination class and locale; if there is no registered Converter, return 304 * <code>null</code>.</p> 305 * 306 * <p>For more details see <code>LocaleConvertUtilsBean</code></p> 307 * 308 * @param clazz Class for which to return a registered Converter 309 * @param locale The Locale 310 * @return The registered locale Converter, if any 311 * @see LocaleConvertUtilsBean#lookup(Class, Locale) 312 */ 313 public static LocaleConverter lookup(Class clazz, Locale locale) { 314 315 return LocaleConvertUtilsBean.getInstance().lookup(clazz, locale); 316 } 317 318 /** 319 * <p>Look up and return any registered FastHashMap instance for the specified locale.</p> 320 * 321 * <p>For more details see <code>LocaleConvertUtilsBean</code></p> 322 * 323 * @param locale The Locale 324 * @return The FastHashMap instance contains the all {@link LocaleConverter} types for 325 * the specified locale. 326 * @see LocaleConvertUtilsBean#lookup(Locale) 327 * @deprecated This method will be modified to return a Map in the next release. 328 */ 329 protected static FastHashMap lookup(Locale locale) { 330 return LocaleConvertUtilsBean.getInstance().lookup(locale); 331 } 332 333 /** 334 * <p>Create all {@link LocaleConverter} types for specified locale.</p> 335 * 336 * <p>For more details see <code>LocaleConvertUtilsBean</code></p> 337 * 338 * @param locale The Locale 339 * @return The FastHashMap instance contains the all {@link LocaleConverter} types 340 * for the specified locale. 341 * @see LocaleConvertUtilsBean#create(Locale) 342 * @deprecated This method will be modified to return a Map in the next release. 343 */ 344 protected static FastHashMap create(Locale locale) { 345 346 return LocaleConvertUtilsBean.getInstance().create(locale); 347 } 348 }