import java.util.Scanner;

/**
 * Razred MainProgram vsebuje metodo main, ki deluje kot vhodna točka programa.
 * Omogoča uporabniku, da izbere vrsto ceste in ustvari primer te ceste. 
 * Program nato prikaže informacije o izbrani cesti in izvede specifične metode 
 * za podrazrede, če so prisotni.
 */
public class MainProgram {
    
    /**
     * Vhodna točka programa.
     * 
     * Program omogoča uporabniku izbiro vrste ceste, nato pa ustvari in prikaže
     * informacije o tej cesti. Glede na vrsto ceste se lahko izvedejo dodatne
     * metode, specifične za podrazrede.
     *
     * @param args Argumenti ukazne vrstice (ne uporabljajo se v tem programu)
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Cesta cesta = null;

        // Izbira vrste ceste
        System.out.println("Izberite vrsto ceste za ustvarjanje:");
        System.out.println("1. Osnovna cesta");
        System.out.println("2. Gorska cesta");
        System.out.println("3. Avtocesta");
        int izbira = scanner.nextInt();
        scanner.nextLine(); // Čiščenje nove vrstice

        // Ustvarjanje objekta na podlagi izbire
        switch (izbira) {
            case 1:
                cesta = Cesta.ustvariIzKonzole();
                break;
            case 2:
                cesta = GorskaCesta.ustvariIzKonzole();
                break;
            case 3:
                cesta = Avtocesta.ustvariIzKonzole();
                break;
            default:
                System.out.println("Nevelika izbira!");
                System.exit(1);
        }

        // Prikaz informacij o cesti
        System.out.println("\nInformacije o cesti:");
        cesta.prikaziInformacije();

        // Klic metod za podrazrede
        if (cesta instanceof GorskaCesta) {
            GorskaCesta gorskaCesta = (GorskaCesta) cesta;
            System.out.println("Varna vožnja: " + (gorskaCesta.preveriVarnoVožnjo() ? "Da" : "Ne"));
        } else if (cesta instanceof Avtocesta) {
            Avtocesta avtocesta = (Avtocesta) cesta;
            System.out.println("Zmogljivost: " + (avtocesta.preveriZmogljivost() ? "Visoka" : "Nizka"));
        }
    }
}
