001package io.konik.csv.converter;
002
003import com.neovisionaries.i18n.LanguageCode;
004import org.dozer.DozerConverter;
005
006/**
007 * Intermediate converter used to convert {@link String} to {@link LanguageCode}
008 * while mapping a single value to a collection using custom add..() method.
009 */
010public class LanguageCodeConverter extends DozerConverter<String, LanguageCode> {
011
012        public LanguageCodeConverter() {
013                this(String.class, LanguageCode.class);
014        }
015
016        public LanguageCodeConverter(Class<String> prototypeA, Class<LanguageCode> prototypeB) {
017                super(prototypeA, prototypeB);
018        }
019
020        @Override
021        public LanguageCode convertTo(String source, LanguageCode destination) {
022                return LanguageCode.getByCode(source, false);
023        }
024
025        @Override
026        public String convertFrom(LanguageCode source, String destination) {
027                return source.toString();
028        }
029}