package com.google.sitebricks.options;
import java.lang.reflect.Type;
import java.util.Set;
import com.google.common.collect.Sets;
import com.google.inject.Inject;
import com.google.sitebricks.conversion.MvelTypeConverter;
import com.google.sitebricks.conversion.TypeConverter;
/**
* Hacky wrapper of MvelTypeConverter to support sets.
*
* @author jochen@pedesis.org (Jochen Bekmann)
*/
public class OptionTypeConverter implements TypeConverter {
@Inject
MvelTypeConverter converter;
@Override
@SuppressWarnings("unchecked")
public <T> T convert(Object source, Type type) {
if (Set.class == type && String.class == source.getClass()) {
Set<String> set = Sets.newHashSet();
for (String s : ((String) source).split(","))
set.add(s.trim());
return (T) set;
}
return (T) converter.convert(source, type);
}
}