Make the prefered method of building a DayAssignment to specify the EffortDuration
FEA: ItEr60S19TimeUnitDataType
This commit is contained in:
parent
f53a002d15
commit
820b686bf9
5 changed files with 67 additions and 31 deletions
|
|
@ -173,12 +173,13 @@ public abstract class DayAssignment extends BaseEntity {
|
|||
|
||||
}
|
||||
|
||||
protected DayAssignment(LocalDate day, int hours, Resource resource) {
|
||||
protected DayAssignment(LocalDate day, EffortDuration duration,
|
||||
Resource resource) {
|
||||
Validate.notNull(day);
|
||||
Validate.isTrue(hours >= 0);
|
||||
Validate.notNull(duration);
|
||||
Validate.notNull(resource);
|
||||
this.day = day;
|
||||
this.duration = EffortDuration.hours(hours);
|
||||
this.duration = duration;
|
||||
this.resource = resource;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,8 @@
|
|||
*/
|
||||
package org.navalplanner.business.planner.entities;
|
||||
|
||||
import static org.navalplanner.business.workingday.EffortDuration.hours;
|
||||
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.hibernate.validator.NotNull;
|
||||
import org.joda.time.LocalDate;
|
||||
|
|
@ -27,6 +29,7 @@ import org.navalplanner.business.resources.entities.Worker;
|
|||
import org.navalplanner.business.scenarios.entities.Scenario;
|
||||
import org.navalplanner.business.util.deepcopy.OnCopy;
|
||||
import org.navalplanner.business.util.deepcopy.Strategy;
|
||||
import org.navalplanner.business.workingday.EffortDuration;
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -35,9 +38,17 @@ import org.navalplanner.business.util.deepcopy.Strategy;
|
|||
*/
|
||||
public class DerivedDayAssignment extends DayAssignment {
|
||||
|
||||
@Deprecated
|
||||
public static DerivedDayAssignment create(LocalDate day, int hours,
|
||||
Resource resource, DerivedAllocation derivedAllocation) {
|
||||
return create(new DerivedDayAssignment(day, hours, resource,
|
||||
return create(new DerivedDayAssignment(day, hours(hours), resource,
|
||||
derivedAllocation));
|
||||
}
|
||||
|
||||
public static DerivedDayAssignment create(LocalDate day,
|
||||
EffortDuration duration, Resource resource,
|
||||
DerivedAllocation derivedAllocation) {
|
||||
return create(new DerivedDayAssignment(day, duration, resource,
|
||||
derivedAllocation));
|
||||
}
|
||||
|
||||
|
|
@ -110,18 +121,21 @@ public class DerivedDayAssignment extends DayAssignment {
|
|||
@OnCopy(Strategy.IGNORE)
|
||||
private ParentState parentState;
|
||||
|
||||
private DerivedDayAssignment(LocalDate day, int hours, Resource resource) {
|
||||
private DerivedDayAssignment(LocalDate day, EffortDuration hours,
|
||||
Resource resource) {
|
||||
super(day, hours, resource);
|
||||
Validate.isTrue(resource instanceof Worker);
|
||||
}
|
||||
|
||||
private DerivedDayAssignment(LocalDate day, int hours, Resource resource,
|
||||
private DerivedDayAssignment(LocalDate day, EffortDuration hours,
|
||||
Resource resource,
|
||||
DerivedAllocation derivedAllocation) {
|
||||
this(day, hours, resource);
|
||||
this.parentState = new TransientParentState(derivedAllocation);
|
||||
}
|
||||
|
||||
private DerivedDayAssignment(LocalDate day, int hours, Resource resource,
|
||||
private DerivedDayAssignment(LocalDate day, EffortDuration hours,
|
||||
Resource resource,
|
||||
DerivedDayAssignmentsContainer container) {
|
||||
this(day, hours, resource);
|
||||
Validate.notNull(container);
|
||||
|
|
@ -140,7 +154,8 @@ public class DerivedDayAssignment extends DayAssignment {
|
|||
|
||||
private static DerivedDayAssignment create(LocalDate day, int hours,
|
||||
Resource resource, DerivedDayAssignmentsContainer container) {
|
||||
return create(new DerivedDayAssignment(day, hours, resource, container));
|
||||
return create(new DerivedDayAssignment(day,
|
||||
EffortDuration.hours(hours), resource, container));
|
||||
}
|
||||
|
||||
DerivedDayAssignment copyAsChildOf(DerivedAllocation derivedAllocation) {
|
||||
|
|
|
|||
|
|
@ -20,6 +20,8 @@
|
|||
|
||||
package org.navalplanner.business.planner.entities;
|
||||
|
||||
import static org.navalplanner.business.workingday.EffortDuration.hours;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
|
|
@ -33,6 +35,7 @@ import org.navalplanner.business.resources.entities.Resource;
|
|||
import org.navalplanner.business.scenarios.entities.Scenario;
|
||||
import org.navalplanner.business.util.deepcopy.OnCopy;
|
||||
import org.navalplanner.business.util.deepcopy.Strategy;
|
||||
import org.navalplanner.business.workingday.EffortDuration;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -117,11 +120,15 @@ public class GenericDayAssignment extends DayAssignment {
|
|||
}
|
||||
|
||||
|
||||
@Deprecated
|
||||
public static GenericDayAssignment create(LocalDate day, int hours,
|
||||
Resource resource) {
|
||||
GenericDayAssignment result = new GenericDayAssignment(day, hours,
|
||||
resource);
|
||||
return create(result);
|
||||
return create(new GenericDayAssignment(day, hours(hours), resource));
|
||||
}
|
||||
|
||||
public static GenericDayAssignment create(LocalDate day,
|
||||
EffortDuration duration, Resource resource) {
|
||||
return create(new GenericDayAssignment(day, duration, resource));
|
||||
}
|
||||
|
||||
public static Set<GenericDayAssignment> copy(
|
||||
|
|
@ -163,8 +170,9 @@ public class GenericDayAssignment extends DayAssignment {
|
|||
return result;
|
||||
}
|
||||
|
||||
private GenericDayAssignment(LocalDate day, int hours, Resource resource) {
|
||||
super(day, hours, resource);
|
||||
private GenericDayAssignment(LocalDate day, EffortDuration duration,
|
||||
Resource resource) {
|
||||
super(day, duration, resource);
|
||||
parentState = new ContainerNotSpecified();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -20,6 +20,8 @@
|
|||
|
||||
package org.navalplanner.business.planner.entities;
|
||||
|
||||
import static org.navalplanner.business.workingday.EffortDuration.hours;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
|
|
@ -33,6 +35,7 @@ import org.navalplanner.business.resources.entities.Resource;
|
|||
import org.navalplanner.business.scenarios.entities.Scenario;
|
||||
import org.navalplanner.business.util.deepcopy.OnCopy;
|
||||
import org.navalplanner.business.util.deepcopy.Strategy;
|
||||
import org.navalplanner.business.workingday.EffortDuration;
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -156,14 +159,20 @@ public class SpecificDayAssignment extends DayAssignment {
|
|||
@NotNull
|
||||
private SpecificDayAssignmentsContainer container;
|
||||
|
||||
@Deprecated
|
||||
public static SpecificDayAssignment create(LocalDate day, int hours,
|
||||
Resource resource) {
|
||||
return create(new SpecificDayAssignment(day,
|
||||
hours, resource));
|
||||
return create(new SpecificDayAssignment(day, hours(hours), resource));
|
||||
}
|
||||
|
||||
public SpecificDayAssignment(LocalDate day, int hours, Resource resource) {
|
||||
super(day, hours, resource);
|
||||
public static SpecificDayAssignment create(LocalDate day,
|
||||
EffortDuration duration, Resource resource) {
|
||||
return create(new SpecificDayAssignment(day, duration, resource));
|
||||
}
|
||||
|
||||
public SpecificDayAssignment(LocalDate day, EffortDuration duration,
|
||||
Resource resource) {
|
||||
super(day, duration, resource);
|
||||
this.parentState = new ContainerNotSpecified();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
*/
|
||||
|
||||
package org.navalplanner.business.test.resources.entities;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.equalTo;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
|
|
@ -29,6 +30,7 @@ import static org.navalplanner.business.BusinessGlobalNames.BUSINESS_SPRING_CONF
|
|||
import static org.navalplanner.business.test.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_TEST_FILE;
|
||||
import static org.navalplanner.business.test.resources.daos.CriterionSatisfactionDAOTest.date;
|
||||
import static org.navalplanner.business.test.resources.daos.CriterionSatisfactionDAOTest.year;
|
||||
import static org.navalplanner.business.workingday.EffortDuration.hours;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
|
@ -516,8 +518,9 @@ public class ResourceTest {
|
|||
LocalDate today = new LocalDate();
|
||||
LocalDate tomorrow = today.plus(Days.days(1));
|
||||
SpecificDayAssignment specificDayAssignment = new SpecificDayAssignment(
|
||||
today, 10, worker);
|
||||
SpecificDayAssignment another = new SpecificDayAssignment(tomorrow, 10,
|
||||
today, hours(10), worker);
|
||||
SpecificDayAssignment another = new SpecificDayAssignment(tomorrow,
|
||||
hours(10),
|
||||
worker);
|
||||
givenWorkerWithAssignments(specificDayAssignment, another);
|
||||
|
||||
|
|
@ -532,12 +535,13 @@ public class ResourceTest {
|
|||
LocalDate today = new LocalDate();
|
||||
LocalDate tomorrow = today.plus(Days.days(1));
|
||||
SpecificDayAssignment specificDayAssignment = new SpecificDayAssignment(
|
||||
today, 10, worker);
|
||||
SpecificDayAssignment another = new SpecificDayAssignment(tomorrow, 10,
|
||||
today, hours(10), worker);
|
||||
SpecificDayAssignment another = new SpecificDayAssignment(tomorrow,
|
||||
hours(10),
|
||||
worker);
|
||||
givenWorkerWithAssignments(specificDayAssignment, another);
|
||||
|
||||
DayAssignment other = new SpecificDayAssignment(today, 3, worker);
|
||||
DayAssignment other = new SpecificDayAssignment(today, hours(3), worker);
|
||||
worker.addNewAssignments(Arrays.asList(other));
|
||||
assertTrue(worker.getAssignments().size() == assignments.size() + 1);
|
||||
}
|
||||
|
|
@ -554,12 +558,11 @@ public class ResourceTest {
|
|||
givenWorker();
|
||||
LocalDate today = new LocalDate();
|
||||
SpecificDayAssignment specificDayAssignment = new SpecificDayAssignment(
|
||||
today, 10, worker);
|
||||
SpecificDayAssignment another = new SpecificDayAssignment(today, 3,
|
||||
worker);
|
||||
SpecificDayAssignment atAnotherDay = new SpecificDayAssignment(today
|
||||
.plusDays(1), 1,
|
||||
worker);
|
||||
today, hours(10), worker);
|
||||
SpecificDayAssignment another = new SpecificDayAssignment(today,
|
||||
hours(3), worker);
|
||||
SpecificDayAssignment atAnotherDay = new SpecificDayAssignment(
|
||||
today.plusDays(1), hours(1), worker);
|
||||
givenWorkerWithAssignments(specificDayAssignment, another, atAnotherDay);
|
||||
|
||||
assertThat(worker.getAssignedHours(today), equalTo(13));
|
||||
|
|
@ -570,11 +573,11 @@ public class ResourceTest {
|
|||
givenWorker();
|
||||
LocalDate today = new LocalDate();
|
||||
SpecificDayAssignment specificDayAssignment = new SpecificDayAssignment(
|
||||
today, 10, worker);
|
||||
today, hours(10), worker);
|
||||
givenWorkerWithAssignments(specificDayAssignment);
|
||||
worker.getAssignedHours(today);
|
||||
SpecificDayAssignment another = new SpecificDayAssignment(today, 3,
|
||||
worker);
|
||||
SpecificDayAssignment another = new SpecificDayAssignment(today,
|
||||
hours(3), worker);
|
||||
worker.addNewAssignments(Arrays.asList(another));
|
||||
|
||||
assertThat(worker.getAssignedHours(today), equalTo(13));
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue