package com.hongqiang.shop.common.utils;
import org.apache.commons.beanutils.ConvertUtilsBean;
import org.apache.commons.beanutils.Converter;
import org.apache.commons.beanutils.converters.ArrayConverter;
import com.hongqiang.shop.common.utils.model.EnumConverter;
class ShopConvertUtils extends ConvertUtilsBean
{
public String convert(Object value)
{
if (value != null)
{
Class<?> localClass = value.getClass();
if ((localClass.isEnum()) && (super.lookup(localClass) == null))
{
super.register(new EnumConverter(localClass), localClass);
}
else if ((localClass.isArray()) && (localClass.getComponentType().isEnum()))
{
if (super.lookup(localClass) == null)
{
Object localObject = new ArrayConverter(localClass, new EnumConverter(localClass.getComponentType()), 0);
((ArrayConverter)localObject).setOnlyFirstToString(false);
super.register((Converter)localObject, localClass);
}
Object localObject = super.lookup(localClass);
return (String)((Converter)localObject).convert(String.class, value);
}
}
return (String)super.convert(value);
}
public Object convert(String value, @SuppressWarnings("rawtypes") Class clazz)
{
if ((clazz.isEnum()) && (super.lookup(clazz) == null))
super.register(new EnumConverter(clazz), clazz);
return super.convert(value, clazz);
}
public Object convert(String[] values, @SuppressWarnings("rawtypes") Class clazz)
{
if ((clazz.isArray()) && (clazz.getComponentType().isEnum()) && (super.lookup(clazz.getComponentType()) == null))
super.register(new EnumConverter(clazz.getComponentType()), clazz.getComponentType());
return super.convert(values, clazz);
}
public Object convert(Object value, @SuppressWarnings("rawtypes") Class targetType)
{
if (super.lookup(targetType) == null)
if (targetType.isEnum())
{
super.register(new EnumConverter(targetType), targetType);
}
else if ((targetType.isArray()) && (targetType.getComponentType().isEnum()))
{
ArrayConverter localArrayConverter = new ArrayConverter(targetType, new EnumConverter(targetType.getComponentType()), 0);
localArrayConverter.setOnlyFirstToString(false);
super.register(localArrayConverter, targetType);
}
return super.convert(value, targetType);
}
}