diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/CriterionRequirementHandler.java b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/CriterionRequirementHandler.java index b97c16ab3..29f662ea8 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/CriterionRequirementHandler.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/CriterionRequirementHandler.java @@ -475,9 +475,9 @@ public abstract class CriterionRequirementHandler implements for (CriterionRequirement requirement : requirements) { ResourceEnum resourceTypeParent = requirement.getCriterion() .getType().getResource(); - if ((resourceTypeParent.equals(resourceType)) - || (resourceTypeParent.equals(ResourceEnum.RESOURCE))) + if (resourceTypeParent.equals(resourceType)) { result.add(requirement); + } } return result; } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/HoursGroup.java b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/HoursGroup.java index ed6146668..e5e5526f5 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/HoursGroup.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/HoursGroup.java @@ -30,6 +30,7 @@ import java.util.Map; import java.util.Set; import java.util.UUID; +import org.apache.commons.lang.Validate; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hibernate.validator.AssertTrue; @@ -181,10 +182,7 @@ public class HoursGroup extends BaseEntity implements Cloneable, } public void setResourceType(ResourceEnum resource) { - if ((resource != null) && (resource.equals(ResourceEnum.getDefault()))) { - throw new IllegalArgumentException( - _("the resource type should be Worker or Machine")); - } + Validate.notNull(resource); this.resourceType = resource; } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/CriterionType.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/CriterionType.java index 07918d4fa..8bb98801f 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/CriterionType.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/CriterionType.java @@ -284,8 +284,7 @@ public class CriterionType extends IntegrationEntity implements */ @Override public boolean criterionCanBeRelatedTo(Class klass) { - return ResourceEnum.RESOURCE.equals(getResource()) - || getResource().isAssignableFrom(klass); + return getResource().isAssignableFrom(klass); } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Machine.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Machine.java index b193dbb62..991ed99f8 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Machine.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Machine.java @@ -123,10 +123,7 @@ public class Machine extends Resource { @Override protected boolean isCriterionSatisfactionOfCorrectType( CriterionSatisfaction c) { - - return super.isCriterionSatisfactionOfCorrectType(c) || - c.getResourceType().equals(ResourceEnum.MACHINE); - + return c.getResourceType().equals(ResourceEnum.MACHINE); } } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/PredefinedCriterionTypes.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/PredefinedCriterionTypes.java index 23d2f46c7..9f7f94645 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/PredefinedCriterionTypes.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/PredefinedCriterionTypes.java @@ -19,11 +19,11 @@ */ package org.navalplanner.business.resources.entities; +import static org.navalplanner.business.i18n.I18nHelper._; + import java.util.Arrays; import java.util.List; -import static org.navalplanner.business.i18n.I18nHelper._; - /** * This class defines some criterion types known a priori
* @author Óscar González Fernández @@ -37,7 +37,8 @@ public enum PredefinedCriterionTypes implements ICriterionType { return WorkingRelationship.getCriterionNames(); } }, - LOCATION_GROUP(_("LOCATION_GROUP"), "Location where the resource work",false, true, true, ResourceEnum.RESOURCE) { + LOCATION_GROUP(_("LOCATION_GROUP"), "Location where the workers work", + false, true, true, ResourceEnum.WORKER) { @Override public List getPredefined() { return Arrays.asList(); diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Resource.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Resource.java index 5f8ea4ad3..8fd9712d0 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Resource.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Resource.java @@ -1124,12 +1124,8 @@ public abstract class Resource extends IntegrationEntity { return getFirstRepeatedCode(resourcesCostCategoryAssignments) == null; } - protected boolean isCriterionSatisfactionOfCorrectType( - CriterionSatisfaction c) { - - return c.getResourceType().equals(ResourceEnum.RESOURCE); - - } + protected abstract boolean isCriterionSatisfactionOfCorrectType( + CriterionSatisfaction c); protected IResourceDAO getIntegrationEntityDAO() { return Registry.getResourceDAO(); diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/ResourceEnum.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/ResourceEnum.java index f6903a1e2..a80bd5c5d 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/ResourceEnum.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/ResourceEnum.java @@ -29,7 +29,6 @@ import static org.navalplanner.business.i18n.I18nHelper._; */ public enum ResourceEnum { - RESOURCE(Resource.class, _("RESOURCE")), WORKER(Worker.class, _("WORKER")), MACHINE(Machine.class, _("MACHINE")); @@ -50,7 +49,7 @@ public enum ResourceEnum { } public static ResourceEnum getDefault() { - return RESOURCE; + return WORKER; } public String toString() { diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Worker.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Worker.java index 00d32e272..759cc851f 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Worker.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Worker.java @@ -172,9 +172,7 @@ public class Worker extends Resource { @Override protected boolean isCriterionSatisfactionOfCorrectType( CriterionSatisfaction c) { - - return super.isCriterionSatisfactionOfCorrectType(c) || - c.getResourceType().equals(ResourceEnum.WORKER); + return c.getResourceType().equals(ResourceEnum.WORKER); } diff --git a/navalplanner-business/src/test/java/org/navalplanner/business/test/resources/daos/CriterionTypeDAOTest.java b/navalplanner-business/src/test/java/org/navalplanner/business/test/resources/daos/CriterionTypeDAOTest.java index 206b4a692..9b4f0c8e4 100644 --- a/navalplanner-business/src/test/java/org/navalplanner/business/test/resources/daos/CriterionTypeDAOTest.java +++ b/navalplanner-business/src/test/java/org/navalplanner/business/test/resources/daos/CriterionTypeDAOTest.java @@ -225,7 +225,7 @@ public class CriterionTypeDAOTest { public void testGetCriterionTypesByResourceType() { // Add RESOURCE criterionType CriterionType criterionType = createValidCriterionType(); - criterionType.setResource(ResourceEnum.RESOURCE); + criterionType.setResource(ResourceEnum.WORKER); criterionTypeDAO.save(criterionType); // Add WORKER criterionType @@ -235,7 +235,7 @@ public class CriterionTypeDAOTest { // Get number of criterionTypes of type RESOURCE List resources = new ArrayList(); - resources.add(ResourceEnum.RESOURCE); + resources.add(ResourceEnum.WORKER); List criterions = criterionTypeDAO.getCriterionTypesByResources(resources); int numberOfCriterionsOfTypeResource = criterions.size(); diff --git a/navalplanner-business/src/test/java/org/navalplanner/business/test/resources/entities/CriterionTest.java b/navalplanner-business/src/test/java/org/navalplanner/business/test/resources/entities/CriterionTest.java index cb2f14eea..665147b60 100644 --- a/navalplanner-business/src/test/java/org/navalplanner/business/test/resources/entities/CriterionTest.java +++ b/navalplanner-business/src/test/java/org/navalplanner/business/test/resources/entities/CriterionTest.java @@ -190,7 +190,7 @@ public class CriterionTest { @Test public void testCanBeRelatedTo() throws Exception { assertTrue(PredefinedCriterionTypes.LOCATION_GROUP - .criterionCanBeRelatedTo(Resource.class)); + .criterionCanBeRelatedTo(Worker.class)); assertTrue(PredefinedCriterionTypes.WORK_RELATIONSHIP .criterionCanBeRelatedTo(Worker.class)); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationController.java index 1ec50f70c..acf49823b 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationController.java @@ -291,7 +291,6 @@ public class ResourceAllocationController extends GenericForwardComposer { private static String asString(ResourceEnum resourceType) { switch (resourceType) { - case RESOURCE: case MACHINE: case WORKER: return _(resourceType.getDisplayName()); diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/CompletedEstimatedHoursPerTaskModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/CompletedEstimatedHoursPerTaskModel.java index a1ac3d3b4..d10388d19 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/CompletedEstimatedHoursPerTaskModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/CompletedEstimatedHoursPerTaskModel.java @@ -85,7 +85,6 @@ public class CompletedEstimatedHoursPerTaskModel implements ICompletedEstimatedH private static List applicableResources = new ArrayList(); static { - applicableResources.add(ResourceEnum.RESOURCE); applicableResources.add(ResourceEnum.WORKER); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/HoursWorkedPerWorkerModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/HoursWorkedPerWorkerModel.java index 947f0b66b..87830cd4a 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/HoursWorkedPerWorkerModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/HoursWorkedPerWorkerModel.java @@ -73,7 +73,6 @@ public class HoursWorkedPerWorkerModel implements IHoursWorkedPerWorkerModel { private static List applicableResources = new ArrayList(); static { - applicableResources.add(ResourceEnum.RESOURCE); applicableResources.add(ResourceEnum.WORKER); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/OrderCostsPerResourceModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/OrderCostsPerResourceModel.java index b9e4cf004..df22f6bde 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/OrderCostsPerResourceModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/OrderCostsPerResourceModel.java @@ -98,7 +98,6 @@ public class OrderCostsPerResourceModel implements IOrderCostsPerResourceModel { private static List applicableResources = new ArrayList(); static { - applicableResources.add(ResourceEnum.RESOURCE); applicableResources.add(ResourceEnum.WORKER); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/WorkingArrangementsPerOrderModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/WorkingArrangementsPerOrderModel.java index efc7ed7d5..6cb5f7643 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/WorkingArrangementsPerOrderModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/WorkingArrangementsPerOrderModel.java @@ -40,10 +40,10 @@ import org.navalplanner.business.orders.entities.Order; import org.navalplanner.business.orders.entities.OrderElement; import org.navalplanner.business.planner.daos.ITaskElementDAO; import org.navalplanner.business.planner.entities.Dependency; +import org.navalplanner.business.planner.entities.Dependency.Type; import org.navalplanner.business.planner.entities.Task; import org.navalplanner.business.planner.entities.TaskElement; import org.navalplanner.business.planner.entities.TaskStatusEnum; -import org.navalplanner.business.planner.entities.Dependency.Type; import org.navalplanner.business.reports.dtos.WorkingArrangementPerOrderDTO; import org.navalplanner.business.reports.dtos.WorkingArrangementPerOrderDTO.DependencyWorkingArrangementDTO; import org.navalplanner.business.resources.daos.ICriterionTypeDAO; @@ -98,7 +98,6 @@ public class WorkingArrangementsPerOrderModel implements private static List applicableResources = new ArrayList(); static { - applicableResources.add(ResourceEnum.RESOURCE); applicableResources.add(ResourceEnum.WORKER); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/WorkingProgressPerTaskModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/WorkingProgressPerTaskModel.java index 100d1c6e1..cc0e3147a 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/WorkingProgressPerTaskModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/WorkingProgressPerTaskModel.java @@ -84,7 +84,6 @@ public class WorkingProgressPerTaskModel implements IWorkingProgressPerTaskModel private static List applicableResources = new ArrayList(); static { - applicableResources.add(ResourceEnum.RESOURCE); applicableResources.add(ResourceEnum.WORKER); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/AssignedMachineCriterionsModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/AssignedMachineCriterionsModel.java index 790e6aeec..6251f809d 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/AssignedMachineCriterionsModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/AssignedMachineCriterionsModel.java @@ -76,14 +76,12 @@ public class AssignedMachineCriterionsModel implements IAssignedMachineCriterion private static List applicableResources = new ArrayList(); static { - applicableResources.add(ResourceEnum.RESOURCE); applicableResources.add(ResourceEnum.MACHINE); } private static List applicableWorkerResources = new ArrayList(); static { - applicableWorkerResources.add(ResourceEnum.RESOURCE); applicableWorkerResources.add(ResourceEnum.WORKER); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/MachineModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/MachineModel.java index 5614ee288..57653ed5f 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/MachineModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/machine/MachineModel.java @@ -253,7 +253,6 @@ public class MachineModel implements IMachineModel { HashSet appliableToMachine = new HashSet(); appliableToMachine.add(ResourceEnum.MACHINE); - appliableToMachine.add(ResourceEnum.RESOURCE); unit.addRequiredCriterion(criterion); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/AssignedCriterionsModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/AssignedCriterionsModel.java index 0ba848476..a8a34e9f8 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/AssignedCriterionsModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/worker/AssignedCriterionsModel.java @@ -72,7 +72,7 @@ public class AssignedCriterionsModel implements IAssignedCriterionsModel { private static List applicableResources = new ArrayList(); static { - applicableResources.add(ResourceEnum.RESOURCE); + applicableResources.add(ResourceEnum.WORKER); applicableResources.add(ResourceEnum.WORKER); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/ws/common/impl/ResourceEnumConverter.java b/navalplanner-webapp/src/main/java/org/navalplanner/ws/common/impl/ResourceEnumConverter.java index 429aa1758..c750a50b2 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/ws/common/impl/ResourceEnumConverter.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/ws/common/impl/ResourceEnumConverter.java @@ -42,9 +42,8 @@ public class ResourceEnumConverter { static { - resourceEnumToDTO.put(ResourceEnum.RESOURCE, ResourceEnumDTO.RESOURCE); - resourceEnumFromDTO - .put(ResourceEnumDTO.RESOURCE, ResourceEnum.RESOURCE); + resourceEnumToDTO.put(ResourceEnum.WORKER, ResourceEnumDTO.RESOURCE); + resourceEnumFromDTO.put(ResourceEnumDTO.RESOURCE, ResourceEnum.WORKER); resourceEnumToDTO.put(ResourceEnum.WORKER, ResourceEnumDTO.WORKER); resourceEnumFromDTO.put(ResourceEnumDTO.WORKER, ResourceEnum.WORKER); diff --git a/navalplanner-webapp/src/test/java/org/navalplanner/web/test/ws/resources/api/ResourceServiceTest.java b/navalplanner-webapp/src/test/java/org/navalplanner/web/test/ws/resources/api/ResourceServiceTest.java index aeb34a10b..e3f014497 100644 --- a/navalplanner-webapp/src/test/java/org/navalplanner/web/test/ws/resources/api/ResourceServiceTest.java +++ b/navalplanner-webapp/src/test/java/org/navalplanner/web/test/ws/resources/api/ResourceServiceTest.java @@ -210,7 +210,7 @@ public class ResourceServiceTest { public void testAddResourceWithCriterionSatisfactions() { /* Create a criterion type. */ - CriterionType ct = createCriterionType(); + CriterionType ct = createCriterionType(ResourceEnum.MACHINE); /* Create a resource DTO. */ MachineDTO m1 = new MachineDTO("name", "desc"); @@ -286,7 +286,7 @@ public class ResourceServiceTest { public void testAddResourceWithCriterionSatisfactionWithoutStartDate() { /* Create a criterion type. */ - CriterionType ct = createCriterionType(); + CriterionType ct = createCriterionType(ResourceEnum.MACHINE); /* Create a machine DTO. */ MachineDTO machineDTO = new MachineDTO("name", "desc"); @@ -305,7 +305,7 @@ public class ResourceServiceTest { public void testAddResourceWithCriterionSatisfactionWithNegativeInterval() { /* Create a criterion type. */ - CriterionType ct = createCriterionType(); + CriterionType ct = createCriterionType(ResourceEnum.MACHINE); /* Create a machine DTO. */ MachineDTO machineDTO = new MachineDTO("name", "desc"); @@ -324,7 +324,7 @@ public class ResourceServiceTest { public void testAddResourceWithOverlappingCriterionSatisfactionsAllowed() { /* Create a criterion type. */ - CriterionType ct = createCriterionType(); + CriterionType ct = createCriterionType(ResourceEnum.MACHINE); /* * Create a machine DTO. OK, because @@ -346,8 +346,8 @@ public class ResourceServiceTest { public void testAddResourceWithOverlappingCriterionSatisfactions() { /* Create criterion types. */ - CriterionType ct1 = createCriterionType(); - CriterionType ct2 = createCriterionType(ResourceEnum.RESOURCE, false); + CriterionType ct1 = createCriterionType(ResourceEnum.MACHINE); + CriterionType ct2 = createCriterionType(ResourceEnum.MACHINE, false); /* * Create resource DTOs. Each resource contains one criterion @@ -732,13 +732,14 @@ public class ResourceServiceTest { @Test public void testUpdateResources() throws InstanceNotFoundException { - /* Create a criterion type and a cost category. */ - CriterionType ct = createCriterionType(); + CriterionType ctMachine = createCriterionType(ResourceEnum.MACHINE); + CriterionType ctWorker = createCriterionType(ResourceEnum.WORKER); CostCategory costCategory = createCostCategory(); /* Create a machine DTO. */ MachineDTO m1 = new MachineDTO("name", "desc"); - CriterionSatisfactionDTO m1s1 = new CriterionSatisfactionDTO(ct + CriterionSatisfactionDTO m1s1 = new CriterionSatisfactionDTO( + ctMachine .getName(), "c1", getDate(2000, 1, 1), getDate(2000, 2, 1)); m1.criterionSatisfactions.add(m1s1); ResourcesCostCategoryAssignmentDTO m1a1 = new ResourcesCostCategoryAssignmentDTO( @@ -749,7 +750,8 @@ public class ResourceServiceTest { /* Create a worker DTO. */ String nif = getUniqueName(); WorkerDTO w1 = new WorkerDTO(getUniqueName(), "surname", nif); - CriterionSatisfactionDTO w1s1 = new CriterionSatisfactionDTO(ct + CriterionSatisfactionDTO w1s1 = new CriterionSatisfactionDTO( + ctWorker .getName(), "c1", getDate(2000, 1, 1), getDate(2000, 2, 1)); w1.criterionSatisfactions.add(w1s1); ResourcesCostCategoryAssignmentDTO w1a1 = new ResourcesCostCategoryAssignmentDTO( @@ -777,7 +779,8 @@ public class ResourceServiceTest { WorkerDTO w1Updated = new WorkerDTO(w1.code, null, "surname" + "UPDATED", null); - CriterionSatisfactionDTO w1s2 = new CriterionSatisfactionDTO(ct + CriterionSatisfactionDTO w1s2 = new CriterionSatisfactionDTO( + ctWorker .getName(), "c1", getDate(2000, 3, 1), getDate(2000, 4, 1)); w1Updated.criterionSatisfactions.add(w1s2); ResourcesCostCategoryAssignmentDTO w1a1Updated = new ResourcesCostCategoryAssignmentDTO( @@ -819,7 +822,7 @@ public class ResourceServiceTest { } private CriterionType createCriterionType() { - return createCriterionType(ResourceEnum.RESOURCE, true); + return createCriterionType(ResourceEnum.WORKER, true); } private CriterionType createCriterionType(final ResourceEnum resourceType) {