package no.niths.application.rest.helper; import java.io.Serializable; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.GregorianCalendar; import no.niths.application.rest.exception.CustomParseException; import no.niths.common.constants.MiscConstants; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Class that can hold two dates. * Used in some controllers to specify the * dates for a search */ public class TimeDTO implements Serializable { private static final long serialVersionUID = 9063546904075958216L; private String startTime; private String endTime; private Logger logger = LoggerFactory.getLogger(TimeDTO.class); public TimeDTO() { this(null,null); } public TimeDTO(String start, String end){ setStartTime(start); setEndTime(end); } public String getEndTime() { return endTime; } public void setEndTime(String endTime) { this.endTime = endTime; } public String getStartTime() { return startTime; } public void setStartTime(String startTime) { this.startTime = startTime; } public GregorianCalendar getEndTimeCal() { return parseHelper(endTime); } public GregorianCalendar getStartTimeCal() { return parseHelper(startTime); } @Override public String toString() { return String.format("[%s][%s]", startTime, endTime); } private GregorianCalendar parseHelper(String parseableString) { DateFormat df = new SimpleDateFormat(MiscConstants.CALENDAR_FORMAT); GregorianCalendar calendar = new GregorianCalendar(2012, Calendar.MARCH, 9, 22, 21, 23); try { calendar.setTime(df.parse(parseableString)); logger.debug(calendar.getTime()+""); return calendar; } catch (ParseException px) { logger.debug(px.getMessage(),px); throw new CustomParseException("Invalid syntacs! Valid syntax : " + MiscConstants.CALENDAR_FORMAT + " ErrorOffset:" + px.getErrorOffset()); } } }