xuxiuxi
2017-07-23 34c342a8401a76636a3434d3df2d345cae6e88a7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package com.awsle.aibatis.xml.engine.converters.lookup;
 
import com.awsle.aibatis.xml.engine.converters.ConversionException;
import com.awsle.aibatis.xml.engine.converters.Converter;
import com.awsle.aibatis.xml.engine.converters.ConverterLookup;
import com.awsle.aibatis.xml.engine.converters.basic.NullConverter;
 
import java.util.Iterator;
import java.util.LinkedList;
 
public class DefaultConverterLookup implements ConverterLookup {
 
    private LinkedList converters = new LinkedList();
    private Converter nullConverter = new NullConverter();
 
    public Converter lookupConverterForType(Class type) {
        if (type == null) {
            return nullConverter;
        }
        for (Iterator iterator = converters.iterator(); iterator.hasNext();) {
            Converter converter = (Converter) iterator.next();
            if (converter.canConvert(type)) {
                return converter;
            }
        }
        throw new ConversionException("No converter specified for " + type);
    }
 
    public void registerConverter(Converter converter) {
        converters.addFirst(converter);
    }
 
}