ItEr23S08CUEdicionCalendarioLaboral: Added new method getCalendarVersion, that returns the valid calendar for a concrete date.

Fixed two mistakes on methods newVersion and newCopy (return statement missing).
This commit is contained in:
Manuel Rego Casasnovas 2009-08-27 14:14:16 +02:00 committed by Óscar González Fernández
parent 0be1d61529
commit 7d54dc32f0
2 changed files with 30 additions and 2 deletions

View file

@ -444,7 +444,7 @@ public class BaseCalendar extends BaseEntity implements IValidable {
public BaseCalendar newVersion(LocalDate date)
throws IllegalArgumentException {
if (nextCalendar != null) {
nextCalendar.newVersion(date);
return nextCalendar.newVersion(date);
}
if (previousCalendar != null) {
@ -466,7 +466,7 @@ public class BaseCalendar extends BaseEntity implements IValidable {
public BaseCalendar newCopy() {
if (nextCalendar != null) {
nextCalendar.newCopy();
return nextCalendar.newCopy();
}
BaseCalendar copy = create();
@ -504,4 +504,18 @@ public class BaseCalendar extends BaseEntity implements IValidable {
this.parent = parent;
}
public BaseCalendar getCalendarVersion(Date date) {
return getCalendarVersion(new LocalDate(date));
}
public BaseCalendar getCalendarVersion(LocalDate date) {
if (shouldUsePreviousCalendar(date)) {
return previousCalendar.getCalendarVersion(date);
} else if (shouldUseNextCalendar(date)) {
return nextCalendar.getCalendarVersion(date);
} else {
return this;
}
}
}

View file

@ -588,4 +588,18 @@ public class BaseCalendarTest {
assertThat(newVersion.getOwnExceptions().size(), equalTo(1));
}
@Test
public void testGetVersion() {
BaseCalendar calendar = createBasicCalendar();
BaseCalendar newVersion = calendar.newVersion(WEDNESDAY_LOCAL_DATE);
BaseCalendar lastVersion = newVersion.newVersion(SATURDAY_LOCAL_DATE);
assertThat(lastVersion.getCalendarVersion(MONDAY_LOCAL_DATE),
equalTo(calendar));
assertThat(lastVersion.getCalendarVersion(THURSDAY_LOCAL_DATE),
equalTo(newVersion));
assertThat(lastVersion.getCalendarVersion(SUNDAY_LOCAL_DATE),
equalTo(lastVersion));
}
}