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

import org.apache.commons.lang3.StringUtils;

import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.presentation.gebietsbaum.GebietNummerFormatter;

/**
 *  on 22.07.2015.
 */
public enum GebietDarstellung {

  NAME {
    @Override
    public String getBezeichnung(Gebiet gebiet, GebietNummerFormatter gebietNummerFormatter) {
      return gebietNummerFormatter.getName(gebiet);
    }
  },
  KUERZEL {
    @Override
    public String getBezeichnung(Gebiet gebiet, GebietNummerFormatter gebietNummerFormatter) {
      if (StringUtils.isNotBlank(gebiet.getKuerzel())) {
        return gebiet.getKuerzel();
      }
      return NAME.getBezeichnung(gebiet, gebietNummerFormatter);
    }
  },
  NUMMER {
    @Override
    public String getBezeichnung(Gebiet gebiet, GebietNummerFormatter gebietNummerFormatter) {
      return gebietNummerFormatter.getNummer(gebiet);
    }
  },
  NUMMER_UND_NAME {
    @Override
    public String getBezeichnung(Gebiet gebiet, GebietNummerFormatter gebietNummerFormatter) {
      return gebietNummerFormatter.getNameMitNummer(gebiet);
    }
  };

  public abstract String getBezeichnung(Gebiet gebiet, GebietNummerFormatter gebietNummerFormatter);
}
