Define an order relationship for TaskDates
FEA: ItEr60S19TimeUnitDataType
This commit is contained in:
parent
f63248e7d5
commit
c0b64a0bef
2 changed files with 39 additions and 1 deletions
|
|
@ -19,6 +19,8 @@
|
|||
*/
|
||||
package org.navalplanner.business.workingday;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
|
||||
import org.apache.commons.lang.Validate;
|
||||
|
|
@ -31,7 +33,17 @@ import org.joda.time.LocalDate;
|
|||
* @author Óscar González Fernández
|
||||
*
|
||||
*/
|
||||
public class TaskDate {
|
||||
public class TaskDate implements Comparable<TaskDate> {
|
||||
|
||||
public static TaskDate min(TaskDate... dates) {
|
||||
Validate.noNullElements(dates);
|
||||
return Collections.min(Arrays.asList(dates));
|
||||
}
|
||||
|
||||
public static TaskDate max(TaskDate... dates) {
|
||||
Validate.noNullElements(dates);
|
||||
return Collections.max(Arrays.asList(dates));
|
||||
}
|
||||
|
||||
public static TaskDate create(LocalDate date, EffortDuration effortDuration) {
|
||||
return new TaskDate(date, effortDuration);
|
||||
|
|
@ -92,4 +104,13 @@ public class TaskDate {
|
|||
return this.date.toDateTimeAtStartOfDay();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(TaskDate other) {
|
||||
int result = date.compareTo(other.date);
|
||||
if (result == 0) {
|
||||
result = effortDuration.compareTo(other.effortDuration);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -82,4 +82,21 @@ public class TaskDateTest {
|
|||
.toDateTimeAtStartOfDay();
|
||||
assertThat(dateTime, equalTo(today.toDateTimeAtStartOfDay()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void implementsComparable() {
|
||||
assertTrue(Comparable.class.isAssignableFrom(TaskDate.class));
|
||||
assertTrue(TaskDate.create(today, halfHour).compareTo(
|
||||
TaskDate.create(today, oneHour)) < 0);
|
||||
assertTrue(TaskDate.create(today, oneHour).compareTo(
|
||||
TaskDate.create(tomorrow, halfHour)) < 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void hasMaxAndMinMethods() {
|
||||
TaskDate a = TaskDate.create(today, halfHour);
|
||||
TaskDate b = TaskDate.create(today, oneHour);
|
||||
assertThat(TaskDate.min(a, b), equalTo(a));
|
||||
assertThat(TaskDate.max(a, b), equalTo(b));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue