[Bug #644] Not allow resource type.
It's necessary to execute this statement to migrate previous criterion types associated with resource. update criteriontype set resource = resource -1 where resource > 0; FEA: ItEr60S04ValidacionEProbasFuncionaisItEr59S04
This commit is contained in:
parent
1131c504c6
commit
276c152961
21 changed files with 36 additions and 55 deletions
|
|
@ -475,9 +475,9 @@ public abstract class CriterionRequirementHandler<T, S, R> 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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -284,8 +284,7 @@ public class CriterionType extends IntegrationEntity implements
|
|||
*/
|
||||
@Override
|
||||
public boolean criterionCanBeRelatedTo(Class<? extends Resource> klass) {
|
||||
return ResourceEnum.RESOURCE.equals(getResource())
|
||||
|| getResource().isAssignableFrom(klass);
|
||||
return getResource().isAssignableFrom(klass);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<br />
|
||||
* @author Óscar González Fernández <ogonzalez@igalia.com>
|
||||
|
|
@ -37,7 +37,8 @@ public enum PredefinedCriterionTypes implements ICriterionType<Criterion> {
|
|||
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<String> getPredefined() {
|
||||
return Arrays.asList();
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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() {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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<ResourceEnum> resources = new ArrayList<ResourceEnum>();
|
||||
resources.add(ResourceEnum.RESOURCE);
|
||||
resources.add(ResourceEnum.WORKER);
|
||||
List<CriterionType> criterions = criterionTypeDAO.getCriterionTypesByResources(resources);
|
||||
int numberOfCriterionsOfTypeResource = criterions.size();
|
||||
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
|
|
@ -85,7 +85,6 @@ public class CompletedEstimatedHoursPerTaskModel implements ICompletedEstimatedH
|
|||
private static List<ResourceEnum> applicableResources = new ArrayList<ResourceEnum>();
|
||||
|
||||
static {
|
||||
applicableResources.add(ResourceEnum.RESOURCE);
|
||||
applicableResources.add(ResourceEnum.WORKER);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -73,7 +73,6 @@ public class HoursWorkedPerWorkerModel implements IHoursWorkedPerWorkerModel {
|
|||
private static List<ResourceEnum> applicableResources = new ArrayList<ResourceEnum>();
|
||||
|
||||
static {
|
||||
applicableResources.add(ResourceEnum.RESOURCE);
|
||||
applicableResources.add(ResourceEnum.WORKER);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -98,7 +98,6 @@ public class OrderCostsPerResourceModel implements IOrderCostsPerResourceModel {
|
|||
private static List<ResourceEnum> applicableResources = new ArrayList<ResourceEnum>();
|
||||
|
||||
static {
|
||||
applicableResources.add(ResourceEnum.RESOURCE);
|
||||
applicableResources.add(ResourceEnum.WORKER);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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<ResourceEnum> applicableResources = new ArrayList<ResourceEnum>();
|
||||
|
||||
static {
|
||||
applicableResources.add(ResourceEnum.RESOURCE);
|
||||
applicableResources.add(ResourceEnum.WORKER);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -84,7 +84,6 @@ public class WorkingProgressPerTaskModel implements IWorkingProgressPerTaskModel
|
|||
private static List<ResourceEnum> applicableResources = new ArrayList<ResourceEnum>();
|
||||
|
||||
static {
|
||||
applicableResources.add(ResourceEnum.RESOURCE);
|
||||
applicableResources.add(ResourceEnum.WORKER);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -76,14 +76,12 @@ public class AssignedMachineCriterionsModel implements IAssignedMachineCriterion
|
|||
private static List<ResourceEnum> applicableResources = new ArrayList<ResourceEnum>();
|
||||
|
||||
static {
|
||||
applicableResources.add(ResourceEnum.RESOURCE);
|
||||
applicableResources.add(ResourceEnum.MACHINE);
|
||||
}
|
||||
|
||||
private static List<ResourceEnum> applicableWorkerResources = new ArrayList<ResourceEnum>();
|
||||
|
||||
static {
|
||||
applicableWorkerResources.add(ResourceEnum.RESOURCE);
|
||||
applicableWorkerResources.add(ResourceEnum.WORKER);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -253,7 +253,6 @@ public class MachineModel implements IMachineModel {
|
|||
HashSet<ResourceEnum> appliableToMachine =
|
||||
new HashSet<ResourceEnum>();
|
||||
appliableToMachine.add(ResourceEnum.MACHINE);
|
||||
appliableToMachine.add(ResourceEnum.RESOURCE);
|
||||
unit.addRequiredCriterion(criterion);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ public class AssignedCriterionsModel implements IAssignedCriterionsModel {
|
|||
private static List<ResourceEnum> applicableResources = new ArrayList<ResourceEnum>();
|
||||
|
||||
static {
|
||||
applicableResources.add(ResourceEnum.RESOURCE);
|
||||
applicableResources.add(ResourceEnum.WORKER);
|
||||
applicableResources.add(ResourceEnum.WORKER);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue