diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/IWorkerDAO.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/IWorkerDAO.java index b2e31818d..7b1e0f08f 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/IWorkerDAO.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/IWorkerDAO.java @@ -20,11 +20,12 @@ package org.navalplanner.business.resources.daos; +import java.util.Collection; import java.util.List; import org.navalplanner.business.common.daos.IGenericDAO; import org.navalplanner.business.common.exceptions.InstanceNotFoundException; -import org.navalplanner.business.resources.entities.Criterion; +import org.navalplanner.business.resources.entities.ICriterion; import org.navalplanner.business.resources.entities.Worker; import org.springframework.transaction.annotation.Transactional; @@ -49,7 +50,7 @@ public interface IWorkerDAO extends IGenericDAO { * @return */ @SuppressWarnings("unchecked") - List findByNameAndCriterions(String name, List criterions); + List findByNameAndCriterions(String name, Collection criterions); /** * Returns workers which name/NIF partially matches with name diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/WorkerDAO.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/WorkerDAO.java index 0c7896ff1..0d25e63f7 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/WorkerDAO.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/WorkerDAO.java @@ -21,14 +21,14 @@ package org.navalplanner.business.resources.daos; import java.util.ArrayList; -import java.util.HashSet; +import java.util.Collection; import java.util.List; import org.hibernate.Criteria; import org.hibernate.criterion.Restrictions; import org.navalplanner.business.common.daos.GenericDAOHibernate; import org.navalplanner.business.common.exceptions.InstanceNotFoundException; -import org.navalplanner.business.resources.entities.Criterion; +import org.navalplanner.business.resources.entities.ICriterion; import org.navalplanner.business.resources.entities.Worker; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; @@ -69,7 +69,7 @@ public class WorkerDAO extends GenericDAOHibernate @SuppressWarnings("unchecked") @Override public List findByNameAndCriterions(String name, - List criterions) { + Collection criterions) { // Find workers by name List workers; @@ -87,7 +87,7 @@ public class WorkerDAO extends GenericDAOHibernate // Filter by criterion final List result = new ArrayList(); for (Worker worker : workers) { - if (worker.satisfiesCriterions(new HashSet(criterions))) { + if (worker.satisfiesCriterions(criterions)) { result.add(worker); } } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/CriterionCompounder.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/CriterionCompounder.java index 5410b2f76..d07d745bb 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/CriterionCompounder.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/CriterionCompounder.java @@ -36,7 +36,8 @@ public class CriterionCompounder { return new CriterionCompounder(); } - public static CriterionCompounder buildAnd(List criterions) { + public static CriterionCompounder buildAnd( + Collection criterions) { CriterionCompounder compounder = new CriterionCompounder(); for (ICriterion criterion : criterions) { compounder = compounder.and(criterion); 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 7fd86bb4b..e26703799 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 @@ -21,7 +21,7 @@ package org.navalplanner.business.resources.entities; import java.util.ArrayList; -import java.util.Set; +import java.util.Collection; import org.hibernate.validator.NotEmpty; import org.hibernate.validator.NotNull; @@ -101,7 +101,8 @@ public class Worker extends Resource { this.nif = nif; } - public boolean satisfiesCriterions(Set criterions) { + public boolean satisfiesCriterions( + Collection criterions) { ICriterion compositedCriterion = CriterionCompounder.buildAnd( new ArrayList(criterions)).getResult(); return compositedCriterion.isSatisfiedBy(this);