77f8af2e2d1f06f8f8fc34b5a11e8c6db9a793b7
[openflowjava.git] / third-party / openflow-codec / src / main / java / org / openflow / codec / protocol / action / OFPActionExperimenterHeader.java
1 /**
2  * @author Yugandhar Sarraju (ysarraju@in.ibm.com) - Jul 20, 2013
3  */
4 package org.openflow.codec.protocol.action;
5
6 import org.openflow.codec.io.IDataBuffer;
7
8 /**
9  * Represents an ofp_action_experimenter_header
10  */
11 public class OFPActionExperimenterHeader extends OFPAction {
12     public static int MINIMUM_LENGTH = 8;
13
14     protected int experimenter;
15
16     public OFPActionExperimenterHeader() {
17         super.setType(OFPActionType.EXPERIMENTER);
18         super.setLength((short) MINIMUM_LENGTH);
19     }
20
21     /**
22      * @return the experimenter
23      */
24     public int getExperimenter() {
25         return experimenter;
26     }
27
28     /**
29      * @param experimenter
30      *            the experimenter to set
31      */
32     public void setExperimenter(int experimenter) {
33         this.experimenter = experimenter;
34     }
35
36     @Override
37     public void readFrom(IDataBuffer data) {
38         super.readFrom(data);
39         this.experimenter = data.getInt();
40     }
41
42     @Override
43     public void writeTo(IDataBuffer data) {
44         super.writeTo(data);
45         data.putInt(this.experimenter);
46     }
47
48     @Override
49     public int hashCode() {
50         final int prime = 397;
51         int result = super.hashCode();
52         result = prime * result + experimenter;
53         return result;
54     }
55
56     @Override
57     public boolean equals(Object obj) {
58         if (this == obj) {
59             return true;
60         }
61         if (!super.equals(obj)) {
62             return false;
63         }
64         if (!(obj instanceof OFPActionExperimenterHeader)) {
65             return false;
66         }
67         OFPActionExperimenterHeader other = (OFPActionExperimenterHeader) obj;
68         if (experimenter != other.experimenter) {
69             return false;
70         }
71         return true;
72     }
73 }