1 package org.openflow.codec.protocol;
3 import java.util.Arrays;
5 import org.openflow.codec.io.IDataBuffer;
6 import org.openflow.codec.util.U16;
9 * Represents ofp_experimenter_header
13 public class OFPExperimenterHeader extends OFPMessage {
14 public static int MINIMUM_LENGTH = 16;
16 private int experimenter;
23 public OFPExperimenterHeader() {
25 this.type = OFPType.EXPERIMENTER;
26 this.length = U16.t(MINIMUM_LENGTH);
34 public int getExperimenter() {
43 public void setExperimenter(int experimenter) {
44 this.experimenter = experimenter;
48 * get experimenter type
52 public int getExpType() {
57 * set experimenter type
61 public void setExpType(int expType) {
62 this.expType = expType;
66 public void readFrom(IDataBuffer data) {
68 this.experimenter = data.getInt();
69 this.expType = data.getInt();
70 if (this.length > MINIMUM_LENGTH) {
71 this.data = new byte[this.length - MINIMUM_LENGTH];
77 public void writeTo(IDataBuffer data) {
79 data.putInt(this.experimenter);
80 data.putInt(this.expType);
81 if (this.data != null)
88 public byte[] getData() {
96 public void setData(byte[] data) {
104 private void updateLength() {
105 int dataLength = (null == data) ? 0 : data.length;
106 this.length = (short) (OFPExperimenterHeader.MINIMUM_LENGTH + dataLength);
112 * @see java.lang.Object#hashCode()
115 public int hashCode() {
116 final int prime = 337;
117 int result = super.hashCode();
118 result = prime * result + Arrays.hashCode(data);
119 result = prime * result + experimenter;
120 result = prime * result + expType;
127 * @see java.lang.Object#equals(java.lang.Object)
130 public boolean equals(Object obj) {
133 if (!super.equals(obj))
135 if (getClass() != obj.getClass())
137 OFPExperimenterHeader other = (OFPExperimenterHeader) obj;
138 if (experimenter != other.experimenter)
140 if (expType != other.expType)
142 if (!Arrays.equals(data, other.data))