
package de.ivu.elect.presentation.stimmeingabe;

import static org.apache.commons.lang3.StringUtils.defaultIfBlank;
import static org.apache.commons.lang3.StringUtils.isNotBlank;

import java.io.Serializable;

import javax.inject.Inject;

import de.ivu.elect.business.gebietsbaum.entity.Wahldurchfuehrungsgebiet;
import de.ivu.elect.business.stimmeingabe.entity.Ergebniseingang;
import de.ivu.elect.business.stimmeingabe.entity.ErgebniseingangConstants;
import de.ivu.elect.jee.faces.FacesContextUtil;
import de.ivu.elect.jee.faces.Messages;

public class LetzterErgebniseingangCustomInformationResolver implements Serializable {

  private static final long serialVersionUID = 1L;

  @Inject
  private transient Messages messages;

  public LetzterErgebniseingangCustomInformationResolver() {
    super();
  }

  public boolean isCustomInformationVorhanden(Wahldurchfuehrungsgebiet wahldurchfuehrungsgebiet, Ergebniseingang ergebniseingang) {
    return isNotBlank(getCustomInformation(wahldurchfuehrungsgebiet, ergebniseingang));
  }

  public String getCustomInformationLabel(Wahldurchfuehrungsgebiet wahldurchfuehrungsgebiet, Ergebniseingang ergebniseingang) {
    if (isDevelopmentStage()) {
      return getMessage(ErgebniseingangConstants.MESSAGE_KEY_EINGABE_HASH_CODE_EINZAHL);
    }

    return "";
  }

  public String getCustomInformation(Wahldurchfuehrungsgebiet wahldurchfuehrungsgebiet, Ergebniseingang ergebniseingang) {
    if (isDevelopmentStage()) {
      return defaultIfBlank(ergebniseingang.getEingabeHashCode(), "N/A") + " (NUR ZUR ENTWICKLUNG)";
    }

    return "";
  }

  protected String getMessage(String msgKey, Object... params) {
    return messages.getMessageForMessageKey(msgKey, params);
  }

  private boolean isDevelopmentStage() {
    return FacesContextUtil.isDevelopmentStage();
  }
}
