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