Move adsal into its own subdirectory.
[controller.git] / opendaylight / sal / api / src / main / java / org / opendaylight / controller / sal / core / Path.java
diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Path.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Path.java
deleted file mode 100644 (file)
index 3a4a192..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-/**
- * @file   Path.java
- *
- * @brief  Describe a path as a sequence of Edge such that from
- * each of its Head Node there is an link to the next Tail Node in the sequence
- *
- */
-package org.opendaylight.controller.sal.core;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.List;
-
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-
-/**
- * Describe a path as a sequence of Edge such that from
- * each of its Head Node there is an link to the next Tail Node in the
- * sequence
- *
- */
-@XmlRootElement
-@XmlAccessorType(XmlAccessType.NONE)
-public class Path implements Serializable {
-    private static final long serialVersionUID = 1L;
-    @XmlElement
-    private List<Edge> edges;
-
-    /**
-     * Private constructor used for JAXB mapping
-     */
-    @SuppressWarnings("unused")
-    private Path() {
-        this.edges = null;
-    }
-
-    /**
-     * Construct an object representing a path, the constructor will
-     * check if the passed list of edges is such that for every
-     * consecutive edges the head node of the first edge coincide with
-     * the tail node of the subsequent in order for connectivity to be there.
-     *
-     * @param edges Edges of the path
-     *
-     */
-    public Path(List<Edge> edges) throws ConstructionException {
-        // Lets check if the list of edges is such that the head node
-        // of an edge is also the tail node of the subsequent one
-        boolean sequential = true;
-        if (edges.size() >= 2) {
-            for (int i = 0; i < edges.size() - 1; i++) {
-                Edge current = edges.get(i);
-                Edge next = edges.get(i + 1);
-                if (!current.getHeadNodeConnector().getNode().equals(next.getTailNodeConnector().getNode())) {
-                    sequential = false;
-                    break;
-                }
-            }
-        } else if (edges.size() == 0) {
-            throw new ConstructionException("Path is empty");
-        }
-
-        if (!sequential) {
-            throw new ConstructionException("Path is not sequential");
-        }
-
-        this.edges = edges;
-    }
-
-    /**
-     * Create the reversed path
-     * @return The reversed path
-     */
-    public Path reverse() {
-        int j = edges.size(); // size always > 0
-        Edge[]  aEdges = new Edge[j];
-        for (Edge e : edges) {
-            j--;
-            aEdges[j] = e.reverse();
-        }
-        Path rp;
-        try {
-         rp = new Path(Arrays.asList(aEdges));
-        } catch (ConstructionException ce) {
-            rp = null;
-        }
-        return rp;
-    }
-
-    /**
-     * Return the list of nodes of this path, the first node is the start node
-     * @return the list of nodes
-     */
-    public List<Node> getNodes() {
-        List<Node> nl = new ArrayList<Node>();
-        nl.add(this.getStartNode());
-        for (Edge e : edges) {
-            nl.add(e.getHeadNodeConnector().getNode());
-        }
-        return nl;
-    }
-
-    /**
-     * Copy Construct for a path
-     *
-     * @param src Path to copy from
-     *
-     */
-    public Path(Path src) throws ConstructionException {
-        if (src != null) {
-            this.edges = new LinkedList<Edge>(src.getEdges());
-        } else {
-            throw new ConstructionException("src supplied was null");
-        }
-    }
-
-    /**
-     * get the First Node of the path
-     *
-     *
-     * @return The start Node of the Path
-     */
-    public Node getStartNode() {
-        return this.edges.get(0).getTailNodeConnector().getNode();
-    }
-
-    /**
-     * get the Last Node of the path
-     *
-     *
-     * @return The last Node of the Path
-     */
-    public Node getEndNode() {
-        return this.edges.get(this.edges.size() - 1).getHeadNodeConnector()
-                .getNode();
-    }
-
-    /**
-     * getter method for the Path
-     *
-     *
-     * @return Return the list of edges that constitute the Path
-     */
-    public List<Edge> getEdges() {
-        return (edges == null) ? Collections.<Edge>emptyList() : new ArrayList<Edge>(edges);
-    }
-
-    @Override
-    public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + ((edges == null) ? 0 : edges.hashCode());
-        return result;
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj) {
-            return true;
-        }
-        if (obj == null) {
-            return false;
-        }
-        if (getClass() != obj.getClass()) {
-            return false;
-        }
-        Path other = (Path) obj;
-        if (edges == null) {
-            if (other.edges != null) {
-                return false;
-            }
-        } else if (!edges.equals(other.edges)) {
-            return false;
-        }
-        return true;
-    }
-
-    @Override
-    public String toString() {
-        StringBuilder sb = new StringBuilder();
-        sb.append("[");
-        for (int i = 0; i < this.edges.size(); i++) {
-            if (i != 0) {
-                // add the comma to the previous element
-                sb.append(",");
-            }
-            sb.append(this.edges.get(i).toString());
-        }
-        sb.append("]");
-        return sb.toString();
-    }
-}