1 package org.openflow.protocol.statistics;
3 import java.io.Serializable;
4 import java.nio.ByteBuffer;
6 import org.openflow.util.StringByteSerializer;
9 * Represents an ofp_desc_stats structure
10 * @author David Erickson (daviderickson@cs.stanford.edu)
12 public class OFDescriptionStatistics implements OFStatistics, Serializable {
13 public static int DESCRIPTION_STRING_LENGTH = 256;
14 public static int SERIAL_NUMBER_LENGTH = 32;
16 protected String manufacturerDescription;
17 protected String hardwareDescription;
18 protected String softwareDescription;
19 protected String serialNumber;
20 protected String datapathDescription;
23 * @return the manufacturerDescription
25 public String getManufacturerDescription() {
26 return manufacturerDescription;
30 * @param manufacturerDescription the manufacturerDescription to set
32 public void setManufacturerDescription(String manufacturerDescription) {
33 this.manufacturerDescription = manufacturerDescription;
37 * @return the hardwareDescription
39 public String getHardwareDescription() {
40 return hardwareDescription;
44 * @param hardwareDescription the hardwareDescription to set
46 public void setHardwareDescription(String hardwareDescription) {
47 this.hardwareDescription = hardwareDescription;
51 * @return the softwareDescription
53 public String getSoftwareDescription() {
54 return softwareDescription;
58 * @param softwareDescription the softwareDescription to set
60 public void setSoftwareDescription(String softwareDescription) {
61 this.softwareDescription = softwareDescription;
65 * @return the serialNumber
67 public String getSerialNumber() {
68 if (serialNumber.equals("None"))
74 * @param serialNumber the serialNumber to set
76 public void setSerialNumber(String serialNumber) {
77 this.serialNumber = serialNumber;
81 * @return the datapathDescription
83 public String getDatapathDescription() {
84 return datapathDescription;
88 * @param datapathDescription the datapathDescription to set
90 public void setDatapathDescription(String datapathDescription) {
91 this.datapathDescription = datapathDescription;
95 public int getLength() {
100 public void readFrom(ByteBuffer data) {
101 this.manufacturerDescription = StringByteSerializer.readFrom(data,
102 DESCRIPTION_STRING_LENGTH);
103 this.hardwareDescription = StringByteSerializer.readFrom(data,
104 DESCRIPTION_STRING_LENGTH);
105 this.softwareDescription = StringByteSerializer.readFrom(data,
106 DESCRIPTION_STRING_LENGTH);
107 this.serialNumber = StringByteSerializer.readFrom(data,
108 SERIAL_NUMBER_LENGTH);
109 this.datapathDescription = StringByteSerializer.readFrom(data,
110 DESCRIPTION_STRING_LENGTH);
114 public void writeTo(ByteBuffer data) {
115 StringByteSerializer.writeTo(data, DESCRIPTION_STRING_LENGTH,
116 this.manufacturerDescription);
117 StringByteSerializer.writeTo(data, DESCRIPTION_STRING_LENGTH,
118 this.hardwareDescription);
119 StringByteSerializer.writeTo(data, DESCRIPTION_STRING_LENGTH,
120 this.softwareDescription);
121 StringByteSerializer.writeTo(data, SERIAL_NUMBER_LENGTH,
123 StringByteSerializer.writeTo(data, DESCRIPTION_STRING_LENGTH,
124 this.datapathDescription);
128 public int hashCode() {
129 final int prime = 409;
133 + ((datapathDescription == null) ? 0 : datapathDescription
137 + ((hardwareDescription == null) ? 0 : hardwareDescription
141 + ((manufacturerDescription == null) ? 0
142 : manufacturerDescription.hashCode());
143 result = prime * result
144 + ((serialNumber == null) ? 0 : serialNumber.hashCode());
147 + ((softwareDescription == null) ? 0 : softwareDescription
153 public boolean equals(Object obj) {
160 if (!(obj instanceof OFDescriptionStatistics)) {
163 OFDescriptionStatistics other = (OFDescriptionStatistics) obj;
164 if (datapathDescription == null) {
165 if (other.datapathDescription != null) {
168 } else if (!datapathDescription.equals(other.datapathDescription)) {
171 if (hardwareDescription == null) {
172 if (other.hardwareDescription != null) {
175 } else if (!hardwareDescription.equals(other.hardwareDescription)) {
178 if (manufacturerDescription == null) {
179 if (other.manufacturerDescription != null) {
182 } else if (!manufacturerDescription
183 .equals(other.manufacturerDescription)) {
186 if (serialNumber == null) {
187 if (other.serialNumber != null) {
190 } else if (!serialNumber.equals(other.serialNumber)) {
193 if (softwareDescription == null) {
194 if (other.softwareDescription != null) {
197 } else if (!softwareDescription.equals(other.softwareDescription)) {