
package de.ivu.elect.business.personenpruefung.control.wahlrecht;

import de.ivu.elect.business.staat.entity.AbstractStaat;

public enum WahlrechtStaatsangehoerigkeit {

  DEUTSCH(AbstractStaat.DEUTSCHLAND_CUSTOM_CODE) {
    @Override
    public boolean isDeutschZugelassen() {
      return true;
    }
  },

  DEUTSCH_ODER_UNBEKANNT(AbstractStaat.DEUTSCHLAND_CUSTOM_CODE) {
    @Override
    public boolean isDeutschZugelassen() {
      return true;
    }

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

  EU("") {
    @Override
    public boolean isEuZugelassen() {
      return true;
    }
  },

  EU_ODER_UNBEKANNT("") {
    @Override
    public boolean isEuZugelassen() {
      return true;
    }

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

  AUSLAND("") {
    @Override
    public boolean isAuslandZugelassen() {
      return true;
    }
  },

  UNBEKANNT("") {
    @Override
    public boolean isUnbekanntZugelassen() {
      return true;
    }
  },

  ALLE("") {
    @Override
    public boolean isDeutschZugelassen() {
      return true;
    }

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

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

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

  private final String customCode;

  private WahlrechtStaatsangehoerigkeit(String customCode) {
    this.customCode = customCode;
  }

  public String getCustomCode() {
    return customCode;
  }

  public boolean isDeutschZugelassen() {
    return false;
  }

  public boolean isEuZugelassen() {
    return false;
  }

  public boolean isAuslandZugelassen() {
    return false;
  }

  public boolean isUnbekanntZugelassen() {
    return false;
  }
}
