package com.flexmls.flexmls_api.models; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import org.apache.log4j.Logger; import org.codehaus.jackson.annotate.JsonIgnore; import org.codehaus.jackson.annotate.JsonProperty; public class OpenHouse extends ResourceEntity { private static final SimpleDateFormat MDY_FORMAT = new SimpleDateFormat("MM/dd/yyyy"); private static final SimpleDateFormat FORMAT = new SimpleDateFormat("MM/dd/yyyy hh:mm a"); private static Logger logger = Logger.getLogger(OpenHouse.class); @JsonProperty("Date") private String dateString; @JsonIgnore private Date date; @JsonProperty("StartTime") private String startString; @JsonIgnore private Date startTime; @JsonProperty("EndTime") private String endString; @JsonIgnore private Date endTime; public Date getDate() { if(date == null){ try { date = MDY_FORMAT.parse(dateString); } catch (ParseException e) { logger.debug("Failed parsing expected date format. Trying again with standard formats.", e); } } return date; } public void setDate(Date date) { this.date = date; } public Date getStartTime() { if(startTime == null){ try { startTime = FORMAT.parse(dateString + " " + startString); } catch (ParseException e) { logger.debug("Failed parsing expected date format. Trying again with standard formats.", e); } } return startTime; } public void setStartTime(Date startTime) { this.startTime = startTime; } public Date getEndTime() { if(endTime == null){ try { endTime = FORMAT.parse(dateString + " " + endString); } catch (ParseException e) { logger.debug("Failed parsing expected date format. Trying again with standard formats.", e); } } return endTime; } public void setEndTime(Date endTime) { this.endTime = endTime; } }