
package de.ivu.elect.presentation.security;

import javax.enterprise.inject.Specializes;

import de.ivu.elect.business.security.entity.EntityMitSperrmerkmal;
import de.ivu.elect.business.wahlausschuss.entity.Wahlausschussmitglied;

@Specializes
public class WasSperrmerkmalSecurityDefinition extends CommonSperrmerkmalSecurityDefinition {

  private static final long serialVersionUID = 1L;

  public WasSperrmerkmalSecurityDefinition() {
    super();
  }

  @Override
  protected boolean isSperreVorhandenInternal(EntityMitSperrmerkmal entityMitSperrmerkmal) {
    return !isEntityMitSperrmerkmalIgnored(entityMitSperrmerkmal) && super.isSperreVorhandenInternal(entityMitSperrmerkmal);
  }

  private boolean isEntityMitSperrmerkmalIgnored(EntityMitSperrmerkmal entityMitSperrmerkmal) {
    return isEntityMitSperrmerkmalUebernommenInDb(entityMitSperrmerkmal)
        && !matchesEntityMitSperrmerkmalClass(entityMitSperrmerkmal, Wahlausschussmitglied.class);
  }
}
