/*_##########################################################################
_##
_## Copyright (C) 2013 Kaito Yamada
_##
_##########################################################################
*/
package com.github.kaitoy.sneo.giane.model.dao.impl;
import java.util.Iterator;
import java.util.List;
import javax.persistence.criteria.CriteriaQuery;
import com.github.kaitoy.sneo.giane.model.TrapTarget;
import com.github.kaitoy.sneo.giane.model.TrapTargetGroup;
import com.github.kaitoy.sneo.giane.model.dao.TrapTargetDao;
public class TrapTargetDaoImpl
extends AbstractDao<TrapTarget> implements TrapTargetDao {
public TrapTarget findByKey(Integer id) {
return findSingleBy("id", id, TrapTarget.class);
}
public TrapTarget findByName(String name) {
return findSingleBy("name", name, TrapTarget.class);
}
public List<TrapTarget> findByCriteriaAndTrapTargetGroupId(
CriteriaQuery<TrapTarget> criteria,
Integer trapTargetGroupId,
boolean included
) {
List<TrapTarget> list = findByCriteria(criteria);
Iterator<TrapTarget> iter = list.iterator();
while (iter.hasNext()) {
TrapTarget tt = iter.next();
boolean found = false;
for (TrapTargetGroup ttg: tt.getTrapTargetGroups()) {
if (ttg.getId().equals(trapTargetGroupId)) {
found = true;
break;
}
}
if ((found && !included) || (!found && included)) {
iter.remove();
}
}
return list;
}
}