ItEr49S10CUVisualizacionResponsabilidadesTRaballoNaPlanificacionItEr48S10: Adding calendar availabilities sorting method for extra safety
This commit is contained in:
parent
a0ca371743
commit
79fbafa52d
2 changed files with 25 additions and 1 deletions
|
|
@ -710,6 +710,18 @@ public class BaseCalendar extends BaseEntity implements IWorkHours {
|
|||
return Collections.unmodifiableList(calendarAvailabilities);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a a copy of calendar availabilities sorted by start date.
|
||||
* calendarAvailabilities should already be sorted by start date, this
|
||||
* method is just for extra safety
|
||||
*/
|
||||
private List<CalendarAvailability> getCalendarAvailabilitiesSortedByStartDate() {
|
||||
List<CalendarAvailability> result = new ArrayList<CalendarAvailability>(
|
||||
calendarAvailabilities);
|
||||
Collections.sort(result, CalendarAvailability.BY_START_DATE_COMPARATOR);
|
||||
return result;
|
||||
}
|
||||
|
||||
public void addNewCalendarAvailability(
|
||||
CalendarAvailability calendarAvailability)
|
||||
throws IllegalArgumentException {
|
||||
|
|
@ -764,7 +776,10 @@ public class BaseCalendar extends BaseEntity implements IWorkHours {
|
|||
if (calendarAvailabilities.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
return calendarAvailabilities.get(calendarAvailabilities.size() - 1);
|
||||
// Sorting for ensuring the last one is picked. In theory sorting would
|
||||
// not be necessary, doing it for safety
|
||||
List<CalendarAvailability> sorted = getCalendarAvailabilitiesSortedByStartDate();
|
||||
return sorted.get(sorted.size() - 1);
|
||||
}
|
||||
|
||||
public void setStartDate(CalendarAvailability calendarAvailability,
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
|
||||
package org.navalplanner.business.calendars.entities;
|
||||
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
|
||||
import org.hibernate.validator.NotNull;
|
||||
|
|
@ -53,6 +54,14 @@ public class CalendarAvailability extends BaseEntity {
|
|||
|
||||
private LocalDate endDate;
|
||||
|
||||
public static final Comparator<CalendarAvailability> BY_START_DATE_COMPARATOR = new Comparator<CalendarAvailability>() {
|
||||
|
||||
@Override
|
||||
public int compare(CalendarAvailability o1, CalendarAvailability o2) {
|
||||
return o1.getStartDate().compareTo(o2.getStartDate());
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Constructor for hibernate. Do not use!
|
||||
*/
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue