import java.util.Scanner;

/**
 * Razred Cesta predstavlja osnovne informacije o cesti, vključno z imenom, dolžino in materialom.
 * Omogoča prikaz informacij o cesti, izračunavanje povprečne hitrostne omejitve ter
 * ustvarjanje objekta Cesta iz vnosa z ukazne konzole.
 */
public class Cesta {
    private String ime; // Ime ceste
    private double dolzina; // Dolžina ceste v kilometrih
    private String material; // Material ceste (asfalt, makadam, itd.)

    /**
     * Konstruktor za inicializacijo objekta Cesta.
     *
     * @param ime Ime ceste
     * @param dolzina Dolžina ceste v kilometrih
     * @param material Material ceste (asfalt, makadam, itd.)
     */
    public Cesta(String ime, double dolzina, String material) {
        this.ime = ime;
        this.dolzina = dolzina;
        this.material = material;
    }

    /**
     * Prikazuje informacije o cesti na standardnem izhodu.
     * Izpiše ime ceste, dolžino ceste in material ceste.
     */
    public void prikaziInformacije() {
        System.out.println("Ime ceste: " + ime);
        System.out.println("Dolžina ceste: " + dolzina + " km");
        System.out.println("Material ceste: " + material);
    }

    /**
     * Izračunava povprečno hitrostno omejitev na cesti.
     * 
     * Hitrostna omejitev je 50 km/h za ceste krajše od 10 km, 
     * sicer pa 80 km/h.
     *
     * @return Povprečna hitrostna omejitev v km/h
     */
    public double izracunajPovprecnoHitrostnoOmejitev() {
        return dolzina < 10 ? 50 : 80;
    }

    /**
     * Ustvari nov objekt Cesta iz vnosa z ukazne konzole.
     * 
     * Uporabnik vnese ime, dolžino in material ceste. Ta metoda prebere
     * te informacije iz ukazne konzole in vrne novo instanco Cesta.
     *
     * @return Nova instanca Cesta
     */
    public static Cesta ustvariIzKonzole() {
        Scanner scanner = new Scanner(System.in);

        System.out.print("Vnesite ime ceste: ");
        String ime = scanner.nextLine();

        System.out.print("Vnesite dolžino ceste (v km): ");
        double dolzina = scanner.nextDouble();
        scanner.nextLine(); // Čiščenje nove vrstice

        System.out.print("Vnesite material ceste: ");
        String material = scanner.nextLine();

        return new Cesta(ime, dolzina, material);
    }

    /**
     * Getter za ime ceste.
     *
     * @return Ime ceste
     */
    public String getIme() {
        return ime;
    }

    /**
     * Getter za dolžino ceste.
     *
     * @return Dolžina ceste v kilometrih
     */
    public double getDolzina() {
        return dolzina;
    }

    /**
     * Getter za material ceste.
     *
     * @return Material ceste (asfalt, makadam, itd.)
     */
    public String getMaterial() {
        return material;
    }
}
