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

import static de.ivu.elect.business.security.Customer.WVZ;
import static java.util.Arrays.asList;

import java.util.ArrayList;
import java.util.List;

import de.ivu.elect.business.security.Customer;

/**
 *  on 30.01.2017.
 */
public enum StatistikKennzeichenArt {

  WAHLBERECHTIGTE_A1(WVZ) { // de.ivu.elect.business.statistik.control.WahlberechtigteA1WvzStatistikKennzeichenBerechner

    @Override
    public boolean isWahlabhaengig() {
      return true;
    }
  },
  WAHLBERECHTIGTE_A2(WVZ) { // de.ivu.elect.business.statistik.control.WahlberechtigteA2WvzStatistikKennzeichenBerechner

    @Override
    public boolean isWahlabhaengig() {
      return true;
    }
  },
  WAHLBERECHTIGTE_A3(WVZ) { // de.ivu.elect.business.statistik.control.WahlberechtigteA3WvzStatistikKennzeichenBerechner

    @Override
    public boolean isWahlabhaengig() {
      return true;
    }
  },
  WAHLBERECHTIGTE_AUSLANDSDEUTSCH(WVZ) { // de.ivu.elect.business.statistik.control.WahlberechtigteAuslandsdeutschWvzStatistikKennzeichenBerechner

    @Override
    public boolean isWahlabhaengig() {
      return true;
    }
  },
  WAEHLERVERZEICHNISEINTRAG_GESTRICHEN(WVZ) { // de.ivu.elect.business.statistik.control.WaehlerverzeichniseintraegeGestrichenWvzStatistikKennzeichenBerechner

    @Override
    public boolean isWahlabhaengig() {
      return false;
    }
  },

  WAHLBERECHTIGTE_NACH_STAATSANGEHOERIGKEIT_UND_WAHLSTATISTIKKENNZEICHEN(WVZ) { // de.ivu.elect.business.statistik.control.WahlberechtigteNachStaatsangehoerigkeitUndWahlstatistikKennzeichenWvzStatistikKennzeichenBerechner

    @Override
    public boolean isWahlabhaengig() {
      return true;
    }
  },

  WAHLBERECHTIGTE_PRO_WAHLSTATISTIKKENNZEICHEN(WVZ) { // de.ivu.elect.business.statistik.control.WahlberechtigteProWahlstatistikKennzeichenWvzStatistikKennzeichenBerechner

    @Override
    public boolean isWahlabhaengig() {
      return true;
    }
  },

  WAHLBERECHTIGTE_AUSLANDSDEUTSCH_PRO_WAHLSTATISTIKKENNZEICHEN(WVZ) { // de.ivu.elect.business.statistik.control.WahlberechtigteAuslandsdeutschWvzStatistikKennzeichenBerechner

    @Override
    public boolean isWahlabhaengig() {
      return true;
    }
  },

  WAHLBERCHTIGTE_MIT_WAHLSCHEIN_NACH_WAHLSTATISTIKKENNZEICHEN(WVZ) { // de.ivu.elect.business.statistik.control.WahlberechtigteMitWahlscheinProWahlstatistikKennzeichenWvzStatistikKennzeichenBerechner

    @Override
    public boolean isWahlabhaengig() {
      return true;
    }
  },

  WAHLBERCHTIGTE_OHNE_WAHLSCHEIN_NACH_WAHLSTATISTIKKENNZEICHEN(WVZ) { // de.ivu.elect.business.statistik.control.WahlberechtigteOhneWahlscheinProWahlstatistikKennzeichenWvzStatistikKennzeichenBerechner

    @Override
    public boolean isWahlabhaengig() {
      return true;
    }
  },

  WAHLSCHEIN_ERSTELLTE_INSGESAMT_NACH_DATUM(WVZ) { // de.ivu.elect.business.statistik.control.WahlscheineErstelltNachDatumWvzStatistikKennzeichenBerechner

    @Override
    public boolean isWahlabhaengig() {
      return false;
    }
  },
  WAHLSCHEIN_ERSTELLTE_PRO_ORGANSISATIONSEINHEIT_UND_NACH_DATUM(WVZ) { // de.ivu.elect.business.statistik.control.WahlscheineErstelltNachDatumOrganisationseinheitWvzStatistikKennzeichenBerechner

    @Override
    public boolean isWahlabhaengig() {
      return false;
    }
  },

  WAHLSCHEINE_ERSTELLTE_INTERNET(WVZ) { // de.ivu.elect.business.statistik.control.WahlscheineErstelltInternetWvzStatistikKennzeichenBerechner

    @Override
    public boolean isWahlabhaengig() {
      return false;
    }
  },

  WAHLSCHEINE_ERSTELLTE_INTERNET_NACH_DATUM(WVZ) { // de.ivu.elect.business.statistik.control.WahlscheineErstelltInternetNachDatumWvzStatistikKennzeichenBerechner

    @Override
    public boolean isWahlabhaengig() {
      return false;
    }
  },

  WAHLSCHEINE_ERSTELLTE_EINGESCANNT(WVZ) { // de.ivu.elect.business.statistik.control.WahlscheineErstelltEingescanntWvzStatistikKennzeichenBerechner

    @Override
    public boolean isWahlabhaengig() {
      return false;
    }
  },

  WAHLSCHEINE_ERSTELLTE_EINGESCANNT_NACH_DATUM(WVZ) { // de.ivu.elect.business.statistik.control.WahlscheineErstelltEingescanntNachDatumWvzStatistikKennzeichenBerechner

    @Override
    public boolean isWahlabhaengig() {
      return false;
    }
  },
  
  WAHLSCHEINE_ERSTELLTE_POSTALISCH(WVZ) { // de.ivu.elect.business.statistik.control.WahlscheineErstelltPostalischWvzStatistikKennzeichenBerechner

    @Override
    public boolean isWahlabhaengig() {
      return false;
    }
  },

  WAHLSCHEINE_ERSTELLTE_POSTALISCH_NACH_DATUM(WVZ) { // de.ivu.elect.business.statistik.control.WahlscheineErstelltPostalischNachDatumWvzStatistikKennzeichenBerechner

    @Override
    public boolean isWahlabhaengig() {
      return false;
    }
  },
  
  WAHLSCHEINE_STORNIERTE(WVZ) { // de.ivu.elect.business.statistik.control.WahlscheineStorniertWvzStatistikKennzeichenBerechner

    @Override
    public boolean isWahlabhaengig() {
      return false;
    }
  },
  WAHLSCHEINE_UNGUELTIGE(WVZ) { // de.ivu.elect.business.statistik.control.WahlscheineUngueltigeWvzStatistikKennzeichenBerechner

    @Override
    public boolean isWahlabhaengig() {
      return true;
    }
  },
  WAHLSCHEINE_UNZUSTELLBARE(WVZ) { // de.ivu.elect.business.statistik.control.WahlscheineUnzustellbarWvzStatistikKennzeichenBerechner

    @Override
    public boolean isWahlabhaengig() {
      return false;
    }
  },
  WAHLBENACHRICHTIGUNGEN_UNZUSTELLBARE(WVZ) { // de.ivu.elect.business.statistik.control.WahlbenachrichtigungenUnzustellbarWvzStatistikKennzeichenBerechner

    @Override
    public boolean isWahlabhaengig() {
      return false;
    }
  };

  private final List<Customer> customers;

  StatistikKennzeichenArt(Customer customer, Customer... customers) {
    this.customers = new ArrayList<>();
    this.customers.add(customer);
    if (customers != null) {
      this.customers.addAll(asList(customers));

    }
  }

  public List<Customer> getCustomers() {
    return customers;
  }

  public abstract boolean isWahlabhaengig();
}
