package com.mossle.core.util; import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.List; import org.apache.commons.beanutils.converters.DateConverter; /** * convert utils. * * @author Lingo */ public class ConvertUtils { static { registerDateConverter(); } /** protected constructor. */ protected ConvertUtils() { } /** * convert element property to list. * * @param collection * Collection * @param propertyName * String * @return List */ @SuppressWarnings("unchecked") public static List convertElementPropertyToList( final Collection collection, final String propertyName) { List list = new ArrayList(); try { for (Object obj : collection) { String methodName = ReflectUtils.getGetterMethodName(obj, propertyName); list.add(ReflectUtils.getMethodValue(obj, methodName)); } } catch (NoSuchMethodException e) { throw ReflectUtils.convertReflectionExceptionToUnchecked(e); } catch (IllegalAccessException e) { throw ReflectUtils.convertReflectionExceptionToUnchecked(e); } catch (InvocationTargetException e) { throw ReflectUtils.convertReflectionExceptionToUnchecked(e); } return list; } /** * convert element property to String. * * @param collection * Collection * @param propertyName * String * @param separator * String * @return String */ @SuppressWarnings("unchecked") public static String convertElementPropertyToString( final Collection collection, final String propertyName, final String separator) { List list = convertElementPropertyToList(collection, propertyName); return StringUtils.join(list, separator); } /** * convert element String to Object. * * @param value * String * @param toType * Class * @return Object */ public static Object convertStringToObject(String value, Class<?> toType) { return org.apache.commons.beanutils.ConvertUtils.convert(value, toType); } /** * register date converter. */ private static void registerDateConverter() { DateConverter dc = new DateConverter(); dc.setUseLocaleFormat(true); dc.setPatterns(new String[] { "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss" }); org.apache.commons.beanutils.ConvertUtils.register(dc, Date.class); } }