package com.constellio.app.ui.framework.components.converters;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import org.apache.commons.lang3.StringUtils;
import com.vaadin.data.util.converter.Converter;
@SuppressWarnings("serial")
public class ListToStringConverter implements Converter<String, List<String>> {
private String separator;
public ListToStringConverter() {
this(", ");
}
public ListToStringConverter(String separator) {
this.separator = separator;
}
@Override
public List<String> convertToModel(String value, Class<? extends List<String>> targetType, Locale locale)
throws com.vaadin.data.util.converter.Converter.ConversionException {
List<String> listValue;
if (value != null) {
listValue = new ArrayList<>();
String[] tokens = StringUtils.split(value, separator);
for (String token : tokens) {
listValue.add(token);
}
} else {
listValue = null;
}
return listValue;
}
@Override
public String convertToPresentation(List<String> value, Class<? extends String> targetType, Locale locale)
throws com.vaadin.data.util.converter.Converter.ConversionException {
return value != null ? StringUtils.join(value.iterator(), separator) : null;
}
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public Class getModelType() {
return List.class;
}
@Override
public Class<String> getPresentationType() {
return String.class;
}
}