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

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

import de.ivu.elect.business.wahl.entity.ExternerLinkPermission;
import de.ivu.elect.business.wahl.entity.Wahl;
import de.ivu.elect.business.wahl.entity.WahlParameter;
import de.ivu.elect.business.wahl.entity.WahlParameterWerte;
import de.ivu.elect.business.wahl.entity.Wahltermin;

public class ExternerLinkWahlParameterInit extends AbstractWahlParameterInit {

  public ExternerLinkWahlParameterInit() {
    super();
  }

  @Override
  protected Collection<WahlParameter> createDefaultParameters(Wahltermin wahltermin, Wahl wahl) {
    List<WahlParameter> result = new ArrayList<>();

    addParameter1(result);

    addParameter2(result);

    addParameter3(result);

    addParameter4(result);

    addParameter5(result);

    return result;
  }

  protected void addParameter1(List<WahlParameter> result) {
    add(result, WahlParameterWerte.EXTERNER_LINK_1_URL, "https://support.elect-it.com/ticket/");
    add(result, WahlParameterWerte.EXTERNER_LINK_1_LABEL, "Jira (Problem melden)");
    add(result, WahlParameterWerte.EXTERNER_LINK_1_PERMISSION, getPermissionParameter1().name());
  }

  protected ExternerLinkPermission getPermissionParameter1() {
    return ExternerLinkPermission.OHNE;
  }

  protected void addParameter2(List<WahlParameter> result) {
    add(result, WahlParameterWerte.EXTERNER_LINK_2_URL, "https://support.elect-it.com/wiki/");
    add(result, WahlParameterWerte.EXTERNER_LINK_2_LABEL, "Confluence (Wiki)");
    add(result, WahlParameterWerte.EXTERNER_LINK_2_PERMISSION, getPermissionParameter2().name());
  }

  protected ExternerLinkPermission getPermissionParameter2() {
    return ExternerLinkPermission.OHNE;
  }

  protected void addParameter3(List<WahlParameter> result) {
    add(result, WahlParameterWerte.EXTERNER_LINK_3_URL, "https://www.elect-it.com/");
    add(result, WahlParameterWerte.EXTERNER_LINK_3_LABEL, "elect iT GmbH");
    add(result, WahlParameterWerte.EXTERNER_LINK_3_PERMISSION, getPermissionParameter3().name());
  }

  protected ExternerLinkPermission getPermissionParameter3() {
    return ExternerLinkPermission.OHNE;
  }

  protected void addParameter4(List<WahlParameter> result) {
    add(result, WahlParameterWerte.EXTERNER_LINK_4_URL, "");
    add(result, WahlParameterWerte.EXTERNER_LINK_4_LABEL, "");
    add(result, WahlParameterWerte.EXTERNER_LINK_4_PERMISSION, ExternerLinkPermission.OHNE.name());
  }

  protected void addParameter5(List<WahlParameter> result) {
    add(result, WahlParameterWerte.EXTERNER_LINK_5_URL, "");
    add(result, WahlParameterWerte.EXTERNER_LINK_5_LABEL, "");
    add(result, WahlParameterWerte.EXTERNER_LINK_5_PERMISSION, ExternerLinkPermission.OHNE.name());
  }
}
