package net.onrc.onos.core.topology;

import java.util.Iterator;
import java.util.LinkedList;

/**
 * Base class for Path representation
 *
 * @author Toshio Koide (t-koide@onlab.us)
 */
public class Path extends LinkedList<LinkEvent> {
    private static final long serialVersionUID = 7127274096495173415L;

    @Override
    public String toString() {
        StringBuilder builder = new StringBuilder();
        Iterator<LinkEvent> i = this.iterator();
        while (i.hasNext()) {
            builder.append(i.next().toString());
            if (i.hasNext()) {
                builder.append(", ");
            }
        }
        return builder.toString();
    }
}
