package no.valg.valgnatt.backend.mandatberegning.domene;

public class KommuneKretsParti implements Comparable<KommuneKretsParti> {

	private String kommNr;
	private String kretsNr;
	private String partikode;

	public KommuneKretsParti(String kommNr, String kretsNr, String partikode) {
		this.kommNr = kommNr;
		this.kretsNr = kretsNr;
		this.partikode = partikode;
	}

	public String toString() {
		return kommNr + "-" + kretsNr + "-" + partikode;
	}

	public String getKommNr() {
		return kommNr;
	}

	public String getPartikode() {
		return partikode;
	}

	public KommuneKrets getKommuneKrets() {
		return new KommuneKrets(kommNr, kretsNr);
	}

	public int compareTo(KommuneKretsParti o) {
		return id().compareTo(o.id());
	}

	private String id() {
		return kommNr + "-" + kretsNr + "-" + partikode;
	}

	public int hashCode() {
		return id().hashCode();
	}

	public boolean equals(Object obj) {
		return obj == null || obj.getClass() != this.getClass() ? false : id().equals(((KommuneKretsParti) obj).id());
	}
}
