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

import java.io.Serializable;
import java.util.regex.Pattern;

import org.apache.commons.lang3.StringUtils;

import de.ivu.elect.business.gebietsbaum.entity.Gebiet;
import de.ivu.elect.business.gebietsbaum.entity.GebietPK;

public class ListeGebiet implements Serializable {

  private static final long serialVersionUID = 1L;

  private final WahlvorschlagPK wahlvorschlagPK;

  private final GebietPK gebietPK;

  public ListeGebiet(Liste liste, Gebiet gebiet) {
    this(liste.getPk(), gebiet.getPk());
  }

  public ListeGebiet(WahlvorschlagPK wahlvorschlagPK, GebietPK gebietPK) {
    this.wahlvorschlagPK = wahlvorschlagPK;
    this.gebietPK = gebietPK;
  }

  public WahlvorschlagPK getWahlvorschlagPK() {
    return wahlvorschlagPK;
  }

  public GebietPK getGebietPK() {
    return gebietPK;
  }

  public static ListeGebiet deserialize(String string) {
    if (StringUtils.isBlank(string)) {
      return null; // ELECTVAPP-1234
    }
    String[] split = string.split(Pattern.quote("|"));
    return new ListeGebiet(new WahlvorschlagPK(Long.parseLong(split[0])), new GebietPK(Long.parseLong(split[1])));
  }

  public String serialize() {
    return wahlvorschlagPK.getId() + "|" + gebietPK.getId();
  }

}
