package de.ivu.elect.presentation.ergebnis.table;

import java.math.BigDecimal;

import de.ivu.elect.business.ergebnis.entity.GewinnerUnterlegenerStimmendifferenzSearchResult;
import de.ivu.elect.jee.faces.Messages;
import de.ivu.elect.jee.presentation.dynamictable.ColumnType;
import de.ivu.elect.presentation.system.PercentUtil;

/**
 *  on 02.06.2015.
 */
public class GewinnerUnterlegenerStimmendifferenzRelativColumn extends AbstractGewinnerUnterlegenerStimmendifferenzColumn {

  public GewinnerUnterlegenerStimmendifferenzRelativColumn(Messages messages) {
    super(messages);
  }

  @Override
  public Object getValue(GewinnerUnterlegenerStimmendifferenzSearchResult gewinnerUnterlegenerStimmendifferenzSearchResult) {

    BigDecimal erster = PercentUtil.percent01(gewinnerUnterlegenerStimmendifferenzSearchResult.getAnzahlStimmenInsgesamt(), gewinnerUnterlegenerStimmendifferenzSearchResult.getAnzahlStimmenErster());
    BigDecimal zweiter = PercentUtil.percent01(gewinnerUnterlegenerStimmendifferenzSearchResult.getAnzahlStimmenInsgesamt(), gewinnerUnterlegenerStimmendifferenzSearchResult.getAnzahlStimmenZweiter());

    if (erster == null || zweiter == null) {
      return null;
    }

    return erster.subtract(zweiter);
  }

  @Override
  public String getHeader() {
    return getMessage("gewinner.unterlegener.stimmendifferenz.relativ");
  }

  @Override
  public ColumnType getType() {
    return ColumnType.DECIMAL_ONE_FRACTION_DIGIT_PERCENTAGE;
  }
}
