Statistics Mgr to avoid unnucessary cache updates
[controller.git] / opendaylight / sal / api / src / main / java / org / opendaylight / controller / sal / reader / NodeDescription.java
index b68326707dfaa41e204f0ed55157bad97da8b60c..12ce4d69482b3f32a61b3aade2b79079aa130f6d 100644 (file)
@@ -9,20 +9,20 @@
 
 package org.opendaylight.controller.sal.reader;
 
-import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
+import java.io.Serializable;
+
 
 /**
- * Represents the switch description information
- *
- *
- *
+ * Represents the network node description information
  */
-public class NodeDescription {
+public class NodeDescription implements Serializable, Cloneable{
+    private static final long serialVersionUID = 1L;
+
     private String manufacturer;
     private String hardware;
     private String software;
     private String serialNumber;
-    private String sdnProtocolDescription;
+    private String description;
 
     public NodeDescription() {
 
@@ -60,17 +60,91 @@ public class NodeDescription {
         this.serialNumber = serialNumber;
     }
 
-    public String getSdnProtocolDescription() {
-        return sdnProtocolDescription;
+    public String getDescription() {
+        return description;
     }
 
-    public void setSdnProtocolDescription(String sdnProtocolDescription) {
-        this.sdnProtocolDescription = sdnProtocolDescription;
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((description == null) ? 0 : description.hashCode());
+        result = prime * result + ((hardware == null) ? 0 : hardware.hashCode());
+        result = prime * result + ((manufacturer == null) ? 0 : manufacturer.hashCode());
+        result = prime * result + ((serialNumber == null) ? 0 : serialNumber.hashCode());
+        result = prime * result + ((software == null) ? 0 : software.hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (obj == null) {
+            return false;
+        }
+        if (!(obj instanceof NodeDescription)) {
+            return false;
+        }
+        NodeDescription other = (NodeDescription) obj;
+        if (description == null) {
+            if (other.description != null) {
+                return false;
+            }
+        } else if (!description.equals(other.description)) {
+            return false;
+        }
+        if (hardware == null) {
+            if (other.hardware != null) {
+                return false;
+            }
+        } else if (!hardware.equals(other.hardware)) {
+            return false;
+        }
+        if (manufacturer == null) {
+            if (other.manufacturer != null) {
+                return false;
+            }
+        } else if (!manufacturer.equals(other.manufacturer)) {
+            return false;
+        }
+        if (serialNumber == null) {
+            if (other.serialNumber != null) {
+                return false;
+            }
+        } else if (!serialNumber.equals(other.serialNumber)) {
+            return false;
+        }
+        if (software == null) {
+            if (other.software != null) {
+                return false;
+            }
+        } else if (!software.equals(other.software)) {
+            return false;
+        }
+        return true;
     }
 
     @Override
     public String toString() {
-        return "HwDescription[" + ReflectionToStringBuilder.toString(this)
-                + "]";
+        return "HwDescription[manufacturer=" + manufacturer + ", hardware="
+                        + hardware + ", software=" + software + ", serialNumber="
+                        + serialNumber + ", description=" + description + "]";
+    }
+    @Override
+    public NodeDescription clone() {
+        NodeDescription nd = new NodeDescription();
+        nd.setDescription(description);
+        nd.setHardware(hardware);
+        nd.setManufacturer(manufacturer);
+        nd.setSerialNumber(serialNumber);
+        nd.setSoftware(software);
+
+        return nd;
     }
 }