/*_##########################################################################
_##
_## 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.AdditionalIpV6Route;
import com.github.kaitoy.sneo.giane.model.AdditionalIpV6RouteGroup;
import com.github.kaitoy.sneo.giane.model.dao.AdditionalIpV6RouteDao;
public class AdditionalIpV6RouteDaoImpl
extends AbstractDao<AdditionalIpV6Route> implements AdditionalIpV6RouteDao {
public AdditionalIpV6Route findByKey(Integer id) {
return findSingleBy("id", id, AdditionalIpV6Route.class);
}
public AdditionalIpV6Route findByName(String name) {
return findSingleBy("name", name, AdditionalIpV6Route.class);
}
public List<AdditionalIpV6Route> findByCriteriaAndAdditionalIpV6RouteGroupId(
CriteriaQuery<AdditionalIpV6Route> criteria,
Integer additionalIpV6RouteGroupId,
boolean included
) {
List<AdditionalIpV6Route> list = findByCriteria(criteria);
Iterator<AdditionalIpV6Route> iter = list.iterator();
while (iter.hasNext()) {
AdditionalIpV6Route route = iter.next();
boolean found = false;
for (AdditionalIpV6RouteGroup routeg: route.getAdditionalIpV6RouteGroups()) {
if (routeg.getId().equals(additionalIpV6RouteGroupId)) {
found = true;
break;
}
}
if ((found && !included) || (!found && included)) {
iter.remove();
}
}
return list;
}
}