Merge "Changing PathCalcRuntime to use List rather than Set" into dev/ramcloud-new-datamodel
diff --git a/src/main/java/net/onrc/onos/intent/runtime/PlanCalcRuntime.java b/src/main/java/net/onrc/onos/intent/runtime/PlanCalcRuntime.java
index b12711a..5691c53 100644
--- a/src/main/java/net/onrc/onos/intent/runtime/PlanCalcRuntime.java
+++ b/src/main/java/net/onrc/onos/intent/runtime/PlanCalcRuntime.java
@@ -5,13 +5,11 @@
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import net.floodlightcontroller.util.MACAddress;
 import net.onrc.onos.intent.FlowEntry;
 import net.onrc.onos.intent.Intent;
@@ -23,6 +21,9 @@
 import net.onrc.onos.ofcontroller.networkgraph.LinkEvent;
 //import net.onrc.onos.ofcontroller.networkgraph.NetworkGraph;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  *
  * @author Brian O'Connor <bocon@onlab.us>
@@ -40,7 +41,7 @@
 
     public List<Set<FlowEntry>> computePlan(IntentOperationList intentOps) {
 	long start = System.nanoTime();
-	Set<Collection<FlowEntry>> flowEntries = computeFlowEntries(intentOps);
+	List<Collection<FlowEntry>> flowEntries = computeFlowEntries(intentOps);
 	long step1 = System.nanoTime();
 	List<Set<FlowEntry>> plan = buildPhases(flowEntries);
 	long step2 = System.nanoTime();
@@ -49,8 +50,8 @@
 	return plan;
     }
 
-    private Set<Collection<FlowEntry>> computeFlowEntries(IntentOperationList intentOps) {
-	Set<Collection<FlowEntry>> flowEntries = new HashSet<>();
+    private List<Collection<FlowEntry>> computeFlowEntries(IntentOperationList intentOps) {
+	List<Collection<FlowEntry>> flowEntries = new LinkedList<>();
 	for(IntentOperation i : intentOps) {
 	    if(!(i.intent instanceof PathIntent)) {
 		log.warn("Not a path intent: {}", i);
@@ -106,7 +107,7 @@
 	return flowEntries;
     }
 
-    private List<Set<FlowEntry>> buildPhases(Set<Collection<FlowEntry>> flowEntries) {
+    private List<Set<FlowEntry>> buildPhases(List<Collection<FlowEntry>> flowEntries) {
 	Map<FlowEntry, Integer> map = new HashMap<>();
 	List<Set<FlowEntry>> plan = new ArrayList<>();
 	for(Collection<FlowEntry> c : flowEntries) {