From d23a8f6a2bd195fdaec01a04261f5bcf9ea242a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Tue, 8 Sep 2009 16:26:23 +0200 Subject: [PATCH] ItEr25S07CUAsignacionGrupoRecursosAPlanificacionItEr24S08: DayAssignment now stores a day, the number of hours and the resource it's applied to --- .../planner/entities/DayAssigment.java | 36 +++++++++++-------- .../planner/entities/GenericDayAssigment.java | 17 +++++++-- .../entities/SpecificDayAssigment.java | 18 ++++++++-- .../entities/ResourceAllocations.hbm.xml | 11 +++--- .../planner/daos/DayAssigmentDAOTest.java | 20 ++++++++--- 5 files changed, 71 insertions(+), 31 deletions(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/DayAssigment.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/DayAssigment.java index dcd0ffcab..ccc088780 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/DayAssigment.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/DayAssigment.java @@ -1,40 +1,46 @@ package org.navalplanner.business.planner.entities; -import java.util.HashSet; -import java.util.Set; - +import org.apache.commons.lang.Validate; +import org.hibernate.validator.Min; +import org.hibernate.validator.NotNull; +import org.joda.time.LocalDate; import org.navalplanner.business.common.BaseEntity; -import org.navalplanner.business.resources.entities.Worker; +import org.navalplanner.business.resources.entities.Resource; public abstract class DayAssigment extends BaseEntity { + @Min(0) private int hours; - private Set workers = new HashSet(); + @NotNull + private LocalDate day; + + @NotNull + private Resource resource; protected DayAssigment() { } - protected DayAssigment(int hours, Set workers) { + protected DayAssigment(LocalDate day, int hours, Resource resource) { + Validate.notNull(day); + Validate.isTrue(hours >= 0); + Validate.notNull(resource); + this.day = day; this.hours = hours; - this.workers = workers; + this.resource = resource; } public int getHours() { return hours; } - public void setHours(int hours) { - this.hours = hours; + public Resource getResource() { + return resource; } - public Set getWorkers() { - return workers; - } - - public void setWorkers(Set workers) { - this.workers = workers; + public LocalDate getDay() { + return day; } } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/GenericDayAssigment.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/GenericDayAssigment.java index 818fe0964..793058350 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/GenericDayAssigment.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/GenericDayAssigment.java @@ -3,7 +3,9 @@ package org.navalplanner.business.planner.entities; import java.util.HashSet; import java.util.Set; +import org.joda.time.LocalDate; import org.navalplanner.business.resources.entities.Criterion; +import org.navalplanner.business.resources.entities.Resource; /** * @@ -16,11 +18,20 @@ public class GenericDayAssigment extends DayAssigment { private Set criterions = new HashSet(); - public static GenericDayAssigment create() { - return (GenericDayAssigment) create(new GenericDayAssigment()); + public static GenericDayAssigment create(LocalDate day, int hours, + Resource resource) { + return (GenericDayAssigment) create(new GenericDayAssigment(day, hours, + resource)); } - protected GenericDayAssigment() { + private GenericDayAssigment(LocalDate day, int hours, Resource resource) { + super(day, hours, resource); + } + + /** + * Constructor for hibernate. DO NOT USE! + */ + public GenericDayAssigment() { } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/SpecificDayAssigment.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/SpecificDayAssigment.java index f338db1a3..2a3576f76 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/SpecificDayAssigment.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/SpecificDayAssigment.java @@ -1,5 +1,8 @@ package org.navalplanner.business.planner.entities; +import org.joda.time.LocalDate; +import org.navalplanner.business.resources.entities.Resource; + /** * @@ -10,11 +13,20 @@ public class SpecificDayAssigment extends DayAssigment { private SpecificResourceAllocation specificResourceAllocation; - public static SpecificDayAssigment create() { - return (SpecificDayAssigment) create(new SpecificDayAssigment()); + public static SpecificDayAssigment create(LocalDate day, int hours, + Resource resource) { + return (SpecificDayAssigment) create(new SpecificDayAssigment(day, + hours, resource)); } - protected SpecificDayAssigment() { + public SpecificDayAssigment(LocalDate day, int hours, Resource resource) { + super(day, hours, resource); + } + + /** + * Constructor for hibernate. DO NOT USE! + */ + public SpecificDayAssigment() { } diff --git a/navalplanner-business/src/main/resources/org/navalplanner/business/planner/entities/ResourceAllocations.hbm.xml b/navalplanner-business/src/main/resources/org/navalplanner/business/planner/entities/ResourceAllocations.hbm.xml index 21dc1964a..590a457ff 100644 --- a/navalplanner-business/src/main/resources/org/navalplanner/business/planner/entities/ResourceAllocations.hbm.xml +++ b/navalplanner-business/src/main/resources/org/navalplanner/business/planner/entities/ResourceAllocations.hbm.xml @@ -55,12 +55,13 @@ - + - - - - + + + + diff --git a/navalplanner-business/src/test/java/org/navalplanner/business/test/planner/daos/DayAssigmentDAOTest.java b/navalplanner-business/src/test/java/org/navalplanner/business/test/planner/daos/DayAssigmentDAOTest.java index d0e0fb9ed..f40d86414 100644 --- a/navalplanner-business/src/test/java/org/navalplanner/business/test/planner/daos/DayAssigmentDAOTest.java +++ b/navalplanner-business/src/test/java/org/navalplanner/business/test/planner/daos/DayAssigmentDAOTest.java @@ -8,6 +8,7 @@ import static org.navalplanner.business.test.BusinessGlobalNames.BUSINESS_SPRING import java.util.List; +import org.joda.time.LocalDate; import org.junit.Test; import org.junit.runner.RunWith; import org.navalplanner.business.common.exceptions.InstanceNotFoundException; @@ -16,6 +17,8 @@ import org.navalplanner.business.planner.entities.DayAssigment; import org.navalplanner.business.planner.entities.GenericDayAssigment; import org.navalplanner.business.planner.entities.SpecificDayAssigment; import org.navalplanner.business.resources.daos.IResourceDAO; +import org.navalplanner.business.resources.entities.Resource; +import org.navalplanner.business.resources.entities.Worker; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @@ -24,7 +27,7 @@ import org.springframework.transaction.annotation.Transactional; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { BUSINESS_SPRING_CONFIG_FILE, BUSINESS_SPRING_CONFIG_TEST_FILE }) -/* +/** * @author Diego Pino GarcĂ­a */ @Transactional @@ -34,20 +37,27 @@ public class DayAssigmentDAOTest { private IDayAssigmentDAO dayAssigmentDAO; @Autowired - IResourceDAO resourceDAO; + private IResourceDAO resourceDAO; private SpecificDayAssigment createValidSpecificDayAssigment() { - return SpecificDayAssigment.create(); + return SpecificDayAssigment.create(new LocalDate(2009, 1, 2), 8, + createValidResource()); + } + + private Resource createValidResource() { + Worker worker = Worker.create("first", "surname", "1221332132A", 5); + resourceDAO.save(worker); + return worker; } private GenericDayAssigment createValidGenericDayAssigment() { - return GenericDayAssigment.create(); + return GenericDayAssigment.create(new LocalDate(2009, 1, 2), 8, + createValidResource()); } @Test public void testInSpringContainer() { assertTrue(dayAssigmentDAO != null); - assertTrue(resourceDAO != null); } @Test