DisjointPath should've been immutable.

Change-Id: I8499bd53acd62425c3aa8b0bce4958d6c0054712
diff --git a/core/api/src/main/java/org/onosproject/net/DefaultDisjointPath.java b/core/api/src/main/java/org/onosproject/net/DefaultDisjointPath.java
index b68110d..b133de0 100644
--- a/core/api/src/main/java/org/onosproject/net/DefaultDisjointPath.java
+++ b/core/api/src/main/java/org/onosproject/net/DefaultDisjointPath.java
@@ -30,8 +30,6 @@
     private final DefaultPath path1;
     private final DefaultPath path2;
 
-    boolean usingPath1 = true;
-
     /**
      * Creates a disjoint path pair from two default paths.
      *
@@ -58,21 +56,17 @@
 
     @Override
     public List<Link> links() {
-        if (usingPath1) {
-            return path1.links();
-        } else {
-            return path2.links();
-        }
+        return path1.links();
     }
 
     @Override
     public double cost() {
-        return usingPath1 ? path1.cost() : path2.cost();
+        return path1.cost();
     }
 
     @Override
     public Weight weight() {
-        return usingPath1 ? path1.weight() : path2.weight();
+        return path1.weight();
     }
 
     @Override
@@ -105,12 +99,9 @@
         return false;
     }
 
+    @Deprecated
     @Override
     public boolean useBackup() {
-        if (path2 == null || path2.links() == null) {
-            return false;
-        }
-        usingPath1 = !usingPath1;
-        return true;
+        return false;
     }
 }
diff --git a/core/api/src/main/java/org/onosproject/net/DisjointPath.java b/core/api/src/main/java/org/onosproject/net/DisjointPath.java
index 39237ea..8367067 100644
--- a/core/api/src/main/java/org/onosproject/net/DisjointPath.java
+++ b/core/api/src/main/java/org/onosproject/net/DisjointPath.java
@@ -30,7 +30,10 @@
      *
      * @return boolean corresponding to whether request to use
      *          backup was successful.
+     *
+     * @deprecated in 1.11.0
      */
+    @Deprecated
     boolean useBackup();
 
     /**
diff --git a/core/api/src/test/java/org/onosproject/net/DefaultDisjointPathTest.java b/core/api/src/test/java/org/onosproject/net/DefaultDisjointPathTest.java
index 2a287a3..d160809 100644
--- a/core/api/src/test/java/org/onosproject/net/DefaultDisjointPathTest.java
+++ b/core/api/src/test/java/org/onosproject/net/DefaultDisjointPathTest.java
@@ -87,28 +87,6 @@
     }
 
     /**
-     * Tests switching to the backup path.
-     */
-    @Test
-    public void testUseBackup() {
-        disjointPath1.useBackup();
-        assertThat(disjointPath1.primary(), is(path1));
-        assertThat(disjointPath1.backup(), is(path2));
-        assertThat(disjointPath1.links(), is(links2));
-        assertThat(disjointPath1.cost(), is(2.0));
-
-        disjointPath1.useBackup();
-        assertThat(disjointPath1.links(), is(links1));
-        assertThat(disjointPath1.cost(), is(1.0));
-
-        assertThat(disjointPath4.primary(), is(path1));
-        assertThat(disjointPath4.backup(), is((DefaultDisjointPath) null));
-        disjointPath4.useBackup();
-        assertThat(disjointPath4.primary(), is(path1));
-        assertThat(disjointPath4.backup(), is((DefaultDisjointPath) null));
-    }
-
-    /**
      * Tests equals(), hashCode(), and toString() methods.
      */
     @Test
diff --git a/utils/misc/src/main/java/org/onlab/graph/DisjointPathPair.java b/utils/misc/src/main/java/org/onlab/graph/DisjointPathPair.java
index 6436ad4..1d6768d 100644
--- a/utils/misc/src/main/java/org/onlab/graph/DisjointPathPair.java
+++ b/utils/misc/src/main/java/org/onlab/graph/DisjointPathPair.java
@@ -31,7 +31,6 @@
 public class DisjointPathPair<V extends Vertex, E extends Edge<V>> implements Path<V, E> {
 
     private final Path<V, E> primary, secondary;
-    private boolean primaryActive = true;
 
     /**
      * Creates a disjoint path pair from two paths.
@@ -79,7 +78,7 @@
 
     @Override
     public List<E> edges() {
-        return primaryActive || !hasBackup() ? primary.edges() : secondary.edges();
+        return primary.edges();
     }
 
     /**