package de.ivu.elect.business.auffaelligkeit.entity;

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

public enum GebietsartenDerBetrachtetenGebieteInAuffaelligkeitssuche {
  ALLE {
    @Override
    public boolean isAnzuzeigendesGebiet(Gebiet gebiet) {
      return true;
    }
  },
  NUR_URNENWAHLGEBIET {
    @Override
    public boolean isAnzuzeigendesGebiet(Gebiet gebiet) {
      return !gebiet.isBriefwahlgebiet();
    }
  },
  NUR_BRIEFWAHLGEBIETE {
    @Override
    public boolean isAnzuzeigendesGebiet(Gebiet gebiet) {
      return !gebiet.isUrnenwahlgebiet();
    }
  },
  NUR_UEBERGEORDNETE_GEBIETE {
    @Override
    public boolean isAnzuzeigendesGebiet(Gebiet gebiet) {
      return !gebiet.isErfassungsgebiet();
    }
  },
  URNENWAHLGEBIET_UND_BRIEFWAHLGEBIETE {
    @Override
    public boolean isAnzuzeigendesGebiet(Gebiet gebiet) {
      return true;
    }
  };

  public abstract boolean isAnzuzeigendesGebiet (Gebiet gebiet);
}