package org.mifos.application.servicefacade; import java.util.Date; import org.joda.time.LocalDate; import org.mifos.application.meeting.business.MeetingBO; import org.mifos.application.meeting.exceptions.MeetingException; import org.mifos.application.meeting.util.helpers.MeetingType; import org.mifos.application.meeting.util.helpers.RankOfDay; import org.mifos.application.meeting.util.helpers.RecurrenceType; import org.mifos.application.meeting.util.helpers.WeekDay; public class CreationMeetingDto { private LocalDate meetingStartDate; private String meetingPlace; private Short recurrenceType; private Short dayNumber; private Short weekDay; private Short rankOfDay; private Short recurAfter; public LocalDate getMeetingStartDate() { return meetingStartDate; } public void setMeetingStartDate(LocalDate meetingStartDate) { this.meetingStartDate = meetingStartDate; } public String getMeetingPlace() { return meetingPlace; } public void setMeetingPlace(String meetingPlace) { this.meetingPlace = meetingPlace; } public Short getRecurrenceType() { return recurrenceType; } public void setRecurrenceType(Short recurrenceType) { this.recurrenceType = recurrenceType; } public Short getDayNumber() { return dayNumber; } public void setDayNumber(Short dayNumber) { this.dayNumber = dayNumber; } public Short getRecurAfter() { return recurAfter; } public void setRecurAfter(Short recurAfter) { this.recurAfter = recurAfter; } public WeekDay getWeekDay() { if (null != weekDay) { return WeekDay.getJodaWeekDay(weekDay); } else { return WeekDay.MONDAY; } } public RankOfDay getRankOfDay() { if (null != rankOfDay) { return RankOfDay.getRankOfDay(rankOfDay); } else { return RankOfDay.FIRST; } } public MeetingBO toBO() throws MeetingException { MeetingBO meeting = null; if (recurrenceType.equals(RecurrenceType.WEEKLY.getValue())) { meeting = new MeetingBO(getWeekDay(), getRecurAfter(), getMeetingStartDate().toDateMidnight().toDate(), MeetingType.CUSTOMER_MEETING, getMeetingPlace()); } else if (recurrenceType.equals(RecurrenceType.DAILY.getValue())) { meeting = new MeetingBO(getRecurAfter(), getMeetingStartDate().toDateTimeAtStartOfDay().toDate(), MeetingType.CUSTOMER_MEETING, getMeetingPlace()); } else { meeting = new MeetingBO(getWeekDay(), getRankOfDay(), getRecurAfter(), getMeetingStartDate() .toDateMidnight().toDate(), MeetingType.CUSTOMER_MEETING, getMeetingPlace()); } return meeting; } }