/*************************************************************************
 *  Kompilacja:  javac DirectedEdge.java
 *  Wykonanie:    java DirectedEdge
 *
 *  Niezmienne ważone krawędzie skierowane.
 *
 *************************************************************************/

/**
 *  Klasa <tt>DirectedEdge</tt> reprezentuje krawędź ważoną w grafie skierowanym.
 *  <p>
 *  Dodatkową dokumentację znajdziesz w <a href="http://algs4.cs.princeton.edu/44sp">podrozdziale 4.4</a> książki
 *  <i>Algorytmy, wydanie czwarte</i> Roberta Sedgewicka i Kevina Wayne'a.
 */

public class DirectedEdge { 
    private final int v;
    private final int w;
    private final double weight;

   /**
     * Tworzy krawędź skierowaną z v do w o danej wadze.
     */
    public DirectedEdge(int v, int w, double weight) {
        this.v = v;
        this.w = w;
        this.weight = weight;
    }

   /**
     * Zwraca wierzchołek początkowy krawędzi.
     */
    public int from() {
        return v;
    }

   /**
     * Zwraca wierzchołek końcowy krawędzi.
     */
    public int to() {
        return w;
    }

   /**
     * Zwraca wagę krawędzi.
     */
    public double weight() { return weight; }

   /**
     * Zwraca łańcuch znaków reprezentujący daną krawędź.
     */
    public String toString() {
        return v + "->" + w + " " + String.format("%5.2f", weight);
    }

   /**
     * Klient testowy.
     */
    public static void main(String[] args) {
        DirectedEdge e = new DirectedEdge(12, 23, 3.14);
        StdOut.println(e);
    }
}
