import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * Glavni razred programa za vnos podatkov o cestah in izpis teh podatkov.
 * Program omogoča uporabniku, da vnaša podatke o različnih cestah, 
 * dokler ne pritisne Enter brez vnosa, nato pa izpiše seznam vseh vnesenih cest.
 */
public class MainProgram {
    /**
     * Glavna metoda za zagon programa.
     * 
     * @param args Argumenti ukazne vrstice (ne uporabljajo se v tem programu)
     */
    public static void main(String[] args) {
        // Ustvarimo dinamični seznam za shranjevanje cest
        List<Cesta> seznamCest = new ArrayList<>();
        Scanner scanner = new Scanner(System.in);

        // Zanka za vnos podatkov o cestah
        while (true) {
            System.out.println("Vnesite podatke za novo cesto (ali pritisnite Enter brez vnosa za končanje):");

            // Vnos imena ceste
            System.out.print("Ime ceste: ");
            String ime = scanner.nextLine();
            if (ime.isEmpty()) {
                break; // Izstop iz zanke, če uporabnik vnese prazno vrstico
            }

            // Vnos dolžine ceste s preverjanjem veljavnosti vnosa
            System.out.print("Dolžina ceste (v km): ");
            double dolzina = 0;
            while (true) {
                try {
                    dolzina = Double.parseDouble(scanner.nextLine());
                    if (dolzina >= 0) {
                        break;
                    } else {
                        System.out.println("Dolžina mora biti nenegativna. Poskusite znova.");
                    }
                } catch (NumberFormatException e) {
                    System.out.println("Neveljavna številka. Poskusite znova.");
                }
            }

            // Vnos tipa ceste
            System.out.print("Tip ceste (avtocesta, regionalna, lokalna): ");
            String tip = scanner.nextLine();

            // Dodajanje nove ceste v seznam
            seznamCest.add(new Cesta(ime, dolzina, tip));
        }

        // Izpis vseh vnesenih cest
        System.out.println("\nSeznam cest:");
        for (Cesta cesta : seznamCest) {
            System.out.println(cesta);
        }

        // Zapiranje skenerja
        scanner.close();
    }
}
