diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationModel.java index 4c8ad874f..f3a0ced6d 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationModel.java @@ -110,13 +110,14 @@ public class ResourceAllocationModel implements IResourceAllocationModel { .addSpecificResourceAllocationFor(reloadResources(resources)); } - private List reloadResources( - Collection resources) { - List result = new ArrayList(); - for (Resource each : resources) { + @SuppressWarnings("unchecked") + private List reloadResources( + Collection resources) { + List result = new ArrayList(); + for (T each : resources) { Resource reloaded = resourceDAO.findExistingEntity(each.getId()); reattachResource(reloaded); - result.add(reloaded); + result.add((T) reloaded); } return result; } @@ -263,17 +264,14 @@ public class ResourceAllocationModel implements IResourceAllocationModel { @Override public Collection findWorkersMatching( - Collection requiredCriterions) { + Collection requiredCriteria) { reassociateResourcesWithSession(); - List allSatisfyingCriterions; - if (!requiredCriterions.isEmpty()) { - allSatisfyingCriterions = resourceDAO - .findSatisfyingAllCriterionsAtSomePoint(requiredCriterions); - } else { - allSatisfyingCriterions = new ArrayList(); + List workers = new ArrayList(); + if (!requiredCriteria.isEmpty()) { + workers = searchModel.searchWorkers() + .byCriteria(requiredCriteria).execute(); } - return Resource.workers(reloadResources(Resource - .workers(allSatisfyingCriterions))); + return reloadResources(workers); } }; }