0257a6aab024ef55ab6b8b7d0f80a473b806ebfc
[openflowjava.git] / third-party / openflowj_netty / src / main / java / org / openflow / protocol / statistics / OFVendorStatistics.java
1 /**
2 *    Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior
3 *    University
4
5 *    Licensed under the Apache License, Version 2.0 (the "License"); you may
6 *    not use this file except in compliance with the License. You may obtain
7 *    a copy of the License at
8 *
9 *         http://www.apache.org/licenses/LICENSE-2.0
10 *
11 *    Unless required by applicable law or agreed to in writing, software
12 *    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13 *    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14 *    License for the specific language governing permissions and limitations
15 *    under the License.
16 **/
17
18 package org.openflow.protocol.statistics;
19
20
21 import org.jboss.netty.buffer.ChannelBuffer;
22
23 /**
24  * The base class for vendor implemented statistics
25  * @author David Erickson (daviderickson@cs.stanford.edu)
26  */
27 public class OFVendorStatistics implements OFStatistics {
28     protected int vendor;
29     protected byte[] body;
30
31     // non-message fields
32     protected int length = 0;
33
34     @Override
35     public void readFrom(ChannelBuffer data) {
36         this.vendor = data.readInt();
37         if (body == null)
38             body = new byte[length - 4];
39         data.readBytes(body);
40     }
41
42     @Override
43     public void writeTo(ChannelBuffer data) {
44         data.writeInt(this.vendor);
45         if (body != null)
46             data.writeBytes(body);
47     }
48
49     @Override
50     public int hashCode() {
51         final int prime = 457;
52         int result = 1;
53         result = prime * result + vendor;
54         return result;
55     }
56
57     @Override
58     public boolean equals(Object obj) {
59         if (this == obj) {
60             return true;
61         }
62         if (obj == null) {
63             return false;
64         }
65         if (!(obj instanceof OFVendorStatistics)) {
66             return false;
67         }
68         OFVendorStatistics other = (OFVendorStatistics) obj;
69         if (vendor != other.vendor) {
70             return false;
71         }
72         return true;
73     }
74
75     @Override
76     public int getLength() {
77         return length;
78     }
79
80     public void setLength(int length) {
81         this.length = length;
82     }
83 }