package no.niths.domain.adapter; import java.io.IOException; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import no.niths.application.rest.exception.CustomParseException; import no.niths.common.constants.MiscConstants; import org.codehaus.jackson.JsonParser; import org.codehaus.jackson.JsonProcessingException; import org.codehaus.jackson.map.DeserializationContext; import org.codehaus.jackson.map.JsonDeserializer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Class JsonDateDeserializerAdapter used too parse a String too a Date */ public class JsonDateDeserializerAdapter extends JsonDeserializer<Date>{ private Logger logger = LoggerFactory .getLogger(JsonDateDeserializerAdapter.class); private DateFormat df = new SimpleDateFormat(MiscConstants.DATE_FORMAT); @Override public Date deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { try { return df.parse(jp.getText()); } catch (ParseException e) { logger.error(e.getMessage(),e); throw new CustomParseException("Invalid syntacs! Valid syntax : " + MiscConstants.DATE_FORMAT + " ErrorOffset:" + e.getErrorOffset()); } } }