Remove findSatisfyingAllCriterionsAtSomePoint from IResourceDAO

Since it's no longer used it is removed. Use IResourcesSearcher
instead.

FEA: ItEr74S04BugFixing
This commit is contained in:
Óscar González Fernández 2011-04-11 19:25:48 +02:00
parent 1744c8df90
commit 5b3e324eae
3 changed files with 8 additions and 52 deletions

View file

@ -21,7 +21,6 @@
package org.navalplanner.business.resources.daos;
import java.util.Collection;
import java.util.Date;
import java.util.List;
@ -51,14 +50,6 @@ public interface IResourceDAO extends IIntegrationEntityDAO<Resource> {
*/
List<Resource> findResourcesRelatedTo(List<Task> tasks);
/**
* Returns a list of {@link Resource} satisfying all criteria at some point
* in time
* @param criterions
* @return
*/
List<Resource> findSatisfyingAllCriterionsAtSomePoint(Collection<? extends Criterion> criterions);
/**
* Returns all {@link Machine}
*

View file

@ -22,14 +22,12 @@
package org.navalplanner.business.resources.daos;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import org.apache.commons.lang.Validate;
import org.hibernate.Query;
import org.hibernate.criterion.Restrictions;
import org.navalplanner.business.common.daos.IntegrationEntityDAO;
@ -93,43 +91,6 @@ public class ResourceDAO extends IntegrationEntityDAO<Resource> implements
return list;
}
@Override
public List<Resource> findSatisfyingAllCriterionsAtSomePoint(
Collection<? extends Criterion> criterions) {
Validate.notNull(criterions);
Validate.noNullElements(criterions);
if (criterions.isEmpty()) {
return list(Resource.class);
}
return selectSatisfiyingAllAtSomePoint(
findRelatedWithSomeOfTheCriterions(criterions), criterions);
}
private List<Resource> selectSatisfiyingAllAtSomePoint(
List<Resource> resources,
Collection<? extends Criterion> criterions) {
List<Resource> result = new ArrayList<Resource>();
for (Resource each : resources) {
if (each.satisfiesCriterionsAtSomePoint(criterions)) {
result.add(each);
}
}
return result;
}
@SuppressWarnings("unchecked")
private List<Resource> findRelatedWithSomeOfTheCriterions(
Collection<? extends Criterion> criterions) {
String strQuery = "SELECT DISTINCT resource "
+ "FROM Resource resource "
+ "JOIN resource.criterionSatisfactions criterionSatisfactions "
+ "JOIN criterionSatisfactions.criterion criterion "
+ "WHERE criterion IN (:criterions)";
Query query = getSession().createQuery(strQuery);
query.setParameterList("criterions", criterions);
return (List<Resource>) query.list();
}
@Override
public List<Resource> findResourcesRelatedTo(List<Task> taskElements) {
if (taskElements.isEmpty()) {

View file

@ -46,6 +46,7 @@ import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
import org.navalplanner.business.resources.daos.ICriterionDAO;
import org.navalplanner.business.resources.daos.ICriterionTypeDAO;
import org.navalplanner.business.resources.daos.IResourceDAO;
import org.navalplanner.business.resources.daos.IResourcesSearcher;
import org.navalplanner.business.resources.entities.Criterion;
import org.navalplanner.business.resources.entities.CriterionSatisfaction;
import org.navalplanner.business.resources.entities.CriterionType;
@ -71,6 +72,9 @@ public class ResourceDAOTest {
@Autowired
private IResourceDAO resourceDAO;
@Autowired
private IResourcesSearcher resourcesSearcher;
@Autowired
private SessionFactory sessionFactory;
@ -116,8 +120,8 @@ public class ResourceDAOTest {
public void testResourceIsRelatedWithAllCriterions() {
Collection<Criterion> criterions = createCriterions();
createAndSaveResourceSatisfyingAllCriterions(criterions);
List<Resource> result = resourceDAO
.findSatisfyingAllCriterionsAtSomePoint(criterions);
List<Resource> result = resourcesSearcher.searchBoth()
.byCriteria(criterions).execute();
assertNotNull(result);
assertEquals(1, result.size());
}
@ -167,8 +171,8 @@ public class ResourceDAOTest {
// Modify criterions collection
criterions.add(createCriterion("criterion3"));
List<Resource> result = resourceDAO
.findSatisfyingAllCriterionsAtSomePoint(criterions);
List<Resource> result = resourcesSearcher.searchBoth()
.byCriteria(criterions).execute();
assertNotNull(result);
assertThat(result.size(), not(equalTo(1)));
}