Fixed bugs while getting demo.py to work.
[affinity.git] / affinity / api / src / main / java / org / opendaylight / affinity / affinity / AffinityLink.java
index da923657516d986b38fac9540911d7603a1905f7..351e9865a14c193f517a879ff90a5ef2225c7025 100644 (file)
@@ -49,6 +49,7 @@ public class AffinityLink implements Cloneable, Serializable {
     AffinityGroup toGroup;
 
     // Keep at most one affinity attribute per type. 
+    @XmlElement
     private HashMap<AffinityAttributeType, AffinityAttribute> attrlist;
     
     // xxx 
@@ -102,6 +103,11 @@ public class AffinityLink implements Cloneable, Serializable {
         addAttribute((AffinityAttribute) redirect);
     }
 
+    // Unset the waypoint address.
+    public void unsetWaypoint() {        
+        attrlist.remove(AffinityAttributeType.SET_PATH_REDIRECT);
+    }
+
     public AffinityAttribute getWaypoint() {
        return attrlist.get(AffinityAttributeType.SET_PATH_REDIRECT);
     }
@@ -110,11 +116,16 @@ public class AffinityLink implements Cloneable, Serializable {
         return attrlist.containsKey(AffinityAttributeType.SET_DENY);
     }
 
-    // Drop flows matching this affinity link
+    // Mark this with "deny"
     public void setDeny() {
         SetDeny deny = new SetDeny();
         addAttribute(deny);
     }
+
+    // Remove "deny" marking if it exists
+    public void unsetDeny() {
+        attrlist.remove(AffinityAttributeType.SET_DENY);
+    }
     public String getAttribute() {
        return this.affinityAttribute;
     }
@@ -124,5 +135,16 @@ public class AffinityLink implements Cloneable, Serializable {
     public AffinityGroup getToGroup() {
        return this.toGroup;
     }
+    @Override
+    public String toString() {
+        String output = this.name;
+
+        if (attrlist != null) {
+            for (AffinityAttribute a: attrlist.values()) {
+                output = output + "attr: " + a.toString() + "; ";
+            }
+        }
+        return output;
+    }
 }