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

public enum WahlErgebniseingangUebernahmeArt {

  DEAKTIVIERT {
    @Override
    public boolean isAutomatischeErgebniseingangUebernahmeVonVorlaeufigNachEndgueltigMoeglich() {
      return false;
    }

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

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

  UEBERNEHMEN_ERGEBNISEINGANGSFEHLERSTATUS_BEHALTEN {
    @Override
    public boolean isAutomatischeErgebniseingangUebernahmeVonVorlaeufigNachEndgueltigMoeglich() {
      return true;
    }

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

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

  UEBERNEHMEN_ERGEBNISEINGANGSFEHLERSTATUS_VALIDIEREN {
    @Override
    public boolean isAutomatischeErgebniseingangUebernahmeVonVorlaeufigNachEndgueltigMoeglich() {
      return true;
    }

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

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

  UEBERNEHMEN_ERGEBNISEINGANGSFEHLERSTATUS_UNVOLLSTAENDIG {
    @Override
    public boolean isAutomatischeErgebniseingangUebernahmeVonVorlaeufigNachEndgueltigMoeglich() {
      return true;
    }

    @Override
    public boolean isErgebniseingangsfehlerstatusAnpassenAufMussFehlerSetzen() {
      return true;
    }

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

  public abstract boolean isAutomatischeErgebniseingangUebernahmeVonVorlaeufigNachEndgueltigMoeglich();

  public abstract boolean isErgebniseingangsfehlerstatusAnpassenAufMussFehlerSetzen();

  public abstract boolean isErgebniseingangsfehlerstatusPlausibilisieren();
}
