diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/DayAssignment.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/DayAssignment.java index 234396def..11230d189 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/DayAssignment.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/DayAssignment.java @@ -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; } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/DerivedDayAssignment.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/DerivedDayAssignment.java index a06d757b1..27b9a32b5 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/DerivedDayAssignment.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/DerivedDayAssignment.java @@ -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) { diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/GenericDayAssignment.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/GenericDayAssignment.java index d1edd1381..9eded3247 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/GenericDayAssignment.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/GenericDayAssignment.java @@ -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 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(); } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/SpecificDayAssignment.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/SpecificDayAssignment.java index e8be46ee8..c8159921f 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/SpecificDayAssignment.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/SpecificDayAssignment.java @@ -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(); } diff --git a/navalplanner-business/src/test/java/org/navalplanner/business/test/resources/entities/ResourceTest.java b/navalplanner-business/src/test/java/org/navalplanner/business/test/resources/entities/ResourceTest.java index aefe10eff..e339a7dc3 100644 --- a/navalplanner-business/src/test/java/org/navalplanner/business/test/resources/entities/ResourceTest.java +++ b/navalplanner-business/src/test/java/org/navalplanner/business/test/resources/entities/ResourceTest.java @@ -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));