package cms.model.converter;
import cms.model.model.IEntity;
import cms.util.DateUtil;
import java.text.ParseException;
import java.util.Date;
import java.util.Map;
import org.slim3.util.ArrayMap;
import org.slim3.util.BeanUtil;
public abstract class AbstractConverter implements IConverter {
protected IEntity entity;
protected Map<String, Object> input = new ArrayMap<String, Object>();
public IEntity convert(final Map<String, Object> input) throws ConverterException {
BeanUtil.copy(input, this.input); // don't affect request values
convertFields();
BeanUtil.copy(this.input, entity);
return entity;
}
abstract protected void convertFields() throws ConverterException;
protected Date convertDate(String field) throws ConverterException {
try {
String date = (String) input.get(field);
input.remove(field);
return DateUtil.stringToDate(date);
} catch (ParseException e) {
throw new ConverterException(field, "Nesprávně zadané datum.");
}
}
}