
package de.ivu.elect.business.gebietsbaum.control;

import java.util.Set;

import de.ivu.elect.business.gebietsbaum.entity.EntityMitGebieten;
import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.business.gebietsbaum.entity.GebietPK;

public class FilterByGebieten<E extends EntityMitGebieten> extends AbstractFilterByGebiet<E> {

  @Override
  protected boolean isNameNummerPassend(E entity, String untergebietNameNummer) {
    for (Gebiet gebiet : entity.getGebiete()) {
      if (super.isNameNummerPassend(gebiet, untergebietNameNummer)) {
        return true;
      }
    }
    return false;
  }

  @Override
  protected boolean isGleichesGebiet(Gebiet gebiet, E entityMitGebieten) {
    return entityMitGebieten.getGebiete().contains(gebiet);
  }

  @Override
  protected boolean isGebietInGebietshierarchie(Set<GebietPK> erlaubteGebiete, E entityMitGebieten) {
    for (Gebiet gebietDerEntitaet : entityMitGebieten.getGebiete()) {
      if (erlaubteGebiete.contains(gebietDerEntitaet.getPk())) {
        return true;
      }
    }
    return false;
  }

}
