
cn.featherfly.conversion.core.AbstractConversion Maven / Gradle / Ivy
package cn.featherfly.conversion.core;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import cn.featherfly.common.lang.GenericType;
/**
*
* 使用BeanProperty作为参数的转换器.
*
* @param 类型信息
* @author 钟冀
*/
public abstract class AbstractConversion> implements Conversion{
private ConversionPolicy conversionPolicy;
/**
* 日志
*/
protected final Logger logger = LoggerFactory.getLogger(this.getClass());
/**
* 使用BASIC_CONVERSION_POLICY
*/
public AbstractConversion() {
this(ConversionPolicys.getBasicConversionPolicy());
}
/**
* 使用传入conversionPolicy
* @param conversionPolicy conversionPolicy
*/
public AbstractConversion(ConversionPolicy conversionPolicy) {
this.conversionPolicy = conversionPolicy;
}
/**
*
* 内部状态检查
*
*/
protected void check() {
if (conversionPolicy == null) {
throw new ConversionException("转换策略[conversionPolicy]没有设置!");
}
}
/**
*
* 获取指定类型的转换器
*
* @param 泛型
* @param type 类型
* @return 转换器
*/
protected Convertor getConvertor(Class type) {
@SuppressWarnings("unchecked")
Convertor convertor = (Convertor) conversionPolicy.getConvertor(type);
if (convertor == null) {
throw new ConversionException(
String.format("转换策略没有为类型%s设置转换器!", type.getName()));
}
return convertor;
}
/**
* 返回conversionPolicy
* @return conversionPolicy
*/
public ConversionPolicy getConversionPolicy() {
return conversionPolicy;
}
/**
* 设置conversionPolicy
* @param conversionPolicy conversionPolicy
*/
public void setConversionPolicy(ConversionPolicy conversionPolicy) {
this.conversionPolicy = conversionPolicy;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy