package no.niths.domain.adapter;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.xml.bind.annotation.adapters.XmlAdapter;
import no.niths.application.rest.exception.CustomParseException;
import no.niths.common.constants.MiscConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Class XmlDateAdapter used too parse a String too a date
* or a date too a String
*/
public class XmlDateAdapter extends XmlAdapter<String,Date>{
private Logger logger = LoggerFactory
.getLogger(XmlDateAdapter.class);
private DateFormat df = new SimpleDateFormat(MiscConstants.DATE_FORMAT);
@Override
public Date unmarshal(String date){
try {
return df.parse(date);
} catch (ParseException px) {
logger.error(px.getMessage(),px);
throw new CustomParseException("Invalid syntacs! Valid syntax : "
+ MiscConstants.DATE_FORMAT + " ErrorOffset:"
+ px.getErrorOffset());
}
}
@Override
public String marshal(Date date){
return df.format(date);
}
}