package be.mentoringsystems.merke.presentation.conversion; import be.mentoringsystems.merke.model.Filter; import be.mentoringsystems.merke.model.FilterMap; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.type.TypeFactory; import java.beans.PropertyEditorSupport; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; /** * * @author anthonyarents */ public class FilterMapEditor extends PropertyEditorSupport { private static final Logger LOGGER = LogManager.getLogger(FilterMapEditor.class); @Override public void setAsText(final String text) throws IllegalArgumentException { ObjectMapper mapper = new ObjectMapper(); final FilterMap filterMap = new FilterMap(); try { final List filters = mapper.readValue(text, TypeFactory.defaultInstance().constructCollectionType(ArrayList.class, Filter.class)); for (Filter filter : filters) { filterMap.addFilter(filter); } } catch (IOException ex) { LOGGER.error(ex.getMessage(), ex); } setValue(filterMap); } }