diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/GenericResourceAllocation.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/GenericResourceAllocation.java index ea17b6a7e..fe9d1d675 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/GenericResourceAllocation.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/GenericResourceAllocation.java @@ -35,6 +35,7 @@ import org.navalplanner.business.calendars.entities.IWorkHours; import org.navalplanner.business.planner.entities.HoursDistributor.ResourceWithAssignedHours; import org.navalplanner.business.planner.entities.allocationalgorithms.HoursModification; import org.navalplanner.business.planner.entities.allocationalgorithms.ResourcesPerDayModification; +import org.navalplanner.business.resources.daos.IResourceDAO; import org.navalplanner.business.resources.entities.Criterion; import org.navalplanner.business.resources.entities.Resource; @@ -257,4 +258,9 @@ public class GenericResourceAllocation extends getAssociatedResources()); } + @Override + public List querySuitableResources(IResourceDAO resourceDAO) { + return resourceDAO.findAllSatisfyingCriterions(getCriterions()); + } + } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/ResourceAllocation.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/ResourceAllocation.java index f3b85186c..cae321249 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/ResourceAllocation.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/ResourceAllocation.java @@ -44,6 +44,7 @@ import org.navalplanner.business.planner.entities.allocationalgorithms.Allocator import org.navalplanner.business.planner.entities.allocationalgorithms.AllocatorForTaskDurationAndSpecifiedResourcesPerDay; import org.navalplanner.business.planner.entities.allocationalgorithms.HoursModification; import org.navalplanner.business.planner.entities.allocationalgorithms.ResourcesPerDayModification; +import org.navalplanner.business.resources.daos.IResourceDAO; import org.navalplanner.business.resources.entities.Machine; import org.navalplanner.business.resources.entities.MachineWorkersConfigurationUnit; import org.navalplanner.business.resources.entities.Resource; @@ -708,4 +709,13 @@ public abstract class ResourceAllocation extends return !getAssignments().isEmpty(); } + /** + * Do a query to recover a list of resources that are suitable for this + * allocation. For a {@link SpecificResourceAllocation} returns the current + * resource. For a {@link GenericResourceAllocation} returns the resources + * that currently match this allocation criterions + * @return a list of resources that are proper for this allocation + */ + public abstract List querySuitableResources(IResourceDAO resourceDAO); + } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/SpecificResourceAllocation.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/SpecificResourceAllocation.java index 1b4d929ba..6e99fd96b 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/SpecificResourceAllocation.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/SpecificResourceAllocation.java @@ -23,6 +23,7 @@ package org.navalplanner.business.planner.entities; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -34,6 +35,7 @@ import org.navalplanner.business.calendars.entities.CombinedWorkHours; import org.navalplanner.business.calendars.entities.IWorkHours; import org.navalplanner.business.planner.entities.allocationalgorithms.HoursModification; import org.navalplanner.business.planner.entities.allocationalgorithms.ResourcesPerDayModification; +import org.navalplanner.business.resources.daos.IResourceDAO; import org.navalplanner.business.resources.entities.Resource; import org.navalplanner.business.resources.entities.Worker; @@ -223,4 +225,9 @@ public class SpecificResourceAllocation extends return ResourcesPerDayModification.create(this, resourcesPerDay); } + @Override + public List querySuitableResources(IResourceDAO resourceDAO) { + return Collections.singletonList(resource); + } + }