package Klausur.Navi;

import java.util.ArrayList;

public class Ort implements Comparable<Ort> {
	private String name;
	private ArrayList<Strasse> strassen;
	
	private int entfernung;
	private Ort vorgaenger;

	public Ort(String n) {
		this.name = n;
		this.strassen = new ArrayList<>();
	}

	public void addStrasse(Strasse str) {
		strassen.add(str);
	}

	public String toString() {
		return this.name + " hat " + strassen.size() + " Straßen "
				+ "und eine Entfernung von " + entfernung + " km zum Startort.";
	}

	public void setEntfernung(int entf, Ort o) {
		if (entf < this.entfernung) {
			this.entfernung = entf;
			vorgaenger = o;
		}
	}
	
	public int getEntfernung() {
		return this.entfernung;
	}

	public void reset() {
		this.entfernung = Integer.MAX_VALUE;
		
		for (Strasse s: strassen)
			s.setErledigt(false);
	}
	
	public String getName() {
		return name;
	}

	@Override
	public int compareTo(Ort o) {
		return this.entfernung - o.entfernung;
	}
	
	public Ort getVorgaenger() {
		return vorgaenger;
	}
	
	public ArrayList<Strasse> getStrassen() {
		return strassen;
	}
}
