Spring ConditionalGenericConverter基于源对象的实例变量值

时间:2016-04-01 03:04:28

标签: java spring type-conversion

我有一个Request.class类,我希望根据条件将其转换为Response.class:如果Request.class的实例有一个布尔实例变量isValid设置为true,如果不是这个转换器不应该是触发。有没有办法可以使用Spring提供的ConditionalGenericConverter接口来实现它?还是有更好的方法解决这个问题?

public class RequestToResponseConverter implements ConditionalGenericConverter {
    @Override
    public Set<ConvertiblePair> getConvertibleTypes() {
        Set<ConditionalGenericConverter.ConvertiblePair> pairs = new LinkedHashSet<>(); 
          pairs.add(new ConditionalGenericConverter.ConvertiblePair(Request.class, Response.class)); 
          return pairs;

    }

    @Override
    public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public boolean matches(TypeDescriptor sourceType, TypeDescriptor targetType) {
        // TODO Auto-generated method stub
        if(//request.isValid){
            return true;
        }
        return false;
    }

0 个答案:

没有答案