blob: 1adf5998186f2cbf9a936b3fc609e4787dca89c8 [file] [log] [blame]
tom0eb04ca2014-08-25 14:34:51 -07001// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
2// Copyright (c) 2011, 2012 Open Networking Foundation
3// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
4// This library was generated by the LoxiGen Compiler.
5// See the file LICENSE.txt which should have been included in the source distribution
6
7// Automatically generated by LOXI from template of_class.java
8// Do not modify
9
10package org.projectfloodlight.openflow.protocol.ver13;
11
12import org.projectfloodlight.openflow.protocol.*;
13import org.projectfloodlight.openflow.protocol.action.*;
14import org.projectfloodlight.openflow.protocol.actionid.*;
15import org.projectfloodlight.openflow.protocol.bsntlv.*;
16import org.projectfloodlight.openflow.protocol.errormsg.*;
17import org.projectfloodlight.openflow.protocol.meterband.*;
18import org.projectfloodlight.openflow.protocol.instruction.*;
19import org.projectfloodlight.openflow.protocol.instructionid.*;
20import org.projectfloodlight.openflow.protocol.match.*;
21import org.projectfloodlight.openflow.protocol.oxm.*;
22import org.projectfloodlight.openflow.protocol.queueprop.*;
23import org.projectfloodlight.openflow.types.*;
24import org.projectfloodlight.openflow.util.*;
25import org.projectfloodlight.openflow.exceptions.*;
26import org.slf4j.Logger;
27import org.slf4j.LoggerFactory;
28import java.util.List;
29import com.google.common.collect.ImmutableList;
30import java.util.Set;
31import org.jboss.netty.buffer.ChannelBuffer;
32import com.google.common.hash.PrimitiveSink;
33import com.google.common.hash.Funnel;
34
35class OFBsnVlanCounterStatsEntryVer13 implements OFBsnVlanCounterStatsEntry {
36 private static final Logger logger = LoggerFactory.getLogger(OFBsnVlanCounterStatsEntryVer13.class);
37 // version: 1.3
38 final static byte WIRE_VERSION = 4;
39 final static int MINIMUM_LENGTH = 8;
40
41 private final static int DEFAULT_VLAN_VID = 0x0;
42 private final static List<U64> DEFAULT_VALUES = ImmutableList.<U64>of();
43
44 // OF message fields
45 private final int vlanVid;
46 private final List<U64> values;
47//
48 // Immutable default instance
49 final static OFBsnVlanCounterStatsEntryVer13 DEFAULT = new OFBsnVlanCounterStatsEntryVer13(
50 DEFAULT_VLAN_VID, DEFAULT_VALUES
51 );
52
53 // package private constructor - used by readers, builders, and factory
54 OFBsnVlanCounterStatsEntryVer13(int vlanVid, List<U64> values) {
55 this.vlanVid = vlanVid;
56 this.values = values;
57 }
58
59 // Accessors for OF message fields
60 @Override
61 public int getVlanVid() {
62 return vlanVid;
63 }
64
65 @Override
66 public List<U64> getValues() {
67 return values;
68 }
69
70 @Override
71 public OFVersion getVersion() {
72 return OFVersion.OF_13;
73 }
74
75
76
77 public OFBsnVlanCounterStatsEntry.Builder createBuilder() {
78 return new BuilderWithParent(this);
79 }
80
81 static class BuilderWithParent implements OFBsnVlanCounterStatsEntry.Builder {
82 final OFBsnVlanCounterStatsEntryVer13 parentMessage;
83
84 // OF message fields
85 private boolean vlanVidSet;
86 private int vlanVid;
87 private boolean valuesSet;
88 private List<U64> values;
89
90 BuilderWithParent(OFBsnVlanCounterStatsEntryVer13 parentMessage) {
91 this.parentMessage = parentMessage;
92 }
93
94 @Override
95 public int getVlanVid() {
96 return vlanVid;
97 }
98
99 @Override
100 public OFBsnVlanCounterStatsEntry.Builder setVlanVid(int vlanVid) {
101 this.vlanVid = vlanVid;
102 this.vlanVidSet = true;
103 return this;
104 }
105 @Override
106 public List<U64> getValues() {
107 return values;
108 }
109
110 @Override
111 public OFBsnVlanCounterStatsEntry.Builder setValues(List<U64> values) {
112 this.values = values;
113 this.valuesSet = true;
114 return this;
115 }
116 @Override
117 public OFVersion getVersion() {
118 return OFVersion.OF_13;
119 }
120
121
122
123 @Override
124 public OFBsnVlanCounterStatsEntry build() {
125 int vlanVid = this.vlanVidSet ? this.vlanVid : parentMessage.vlanVid;
126 List<U64> values = this.valuesSet ? this.values : parentMessage.values;
127 if(values == null)
128 throw new NullPointerException("Property values must not be null");
129
130 //
131 return new OFBsnVlanCounterStatsEntryVer13(
132 vlanVid,
133 values
134 );
135 }
136
137 }
138
139 static class Builder implements OFBsnVlanCounterStatsEntry.Builder {
140 // OF message fields
141 private boolean vlanVidSet;
142 private int vlanVid;
143 private boolean valuesSet;
144 private List<U64> values;
145
146 @Override
147 public int getVlanVid() {
148 return vlanVid;
149 }
150
151 @Override
152 public OFBsnVlanCounterStatsEntry.Builder setVlanVid(int vlanVid) {
153 this.vlanVid = vlanVid;
154 this.vlanVidSet = true;
155 return this;
156 }
157 @Override
158 public List<U64> getValues() {
159 return values;
160 }
161
162 @Override
163 public OFBsnVlanCounterStatsEntry.Builder setValues(List<U64> values) {
164 this.values = values;
165 this.valuesSet = true;
166 return this;
167 }
168 @Override
169 public OFVersion getVersion() {
170 return OFVersion.OF_13;
171 }
172
173//
174 @Override
175 public OFBsnVlanCounterStatsEntry build() {
176 int vlanVid = this.vlanVidSet ? this.vlanVid : DEFAULT_VLAN_VID;
177 List<U64> values = this.valuesSet ? this.values : DEFAULT_VALUES;
178 if(values == null)
179 throw new NullPointerException("Property values must not be null");
180
181
182 return new OFBsnVlanCounterStatsEntryVer13(
183 vlanVid,
184 values
185 );
186 }
187
188 }
189
190
191 final static Reader READER = new Reader();
192 static class Reader implements OFMessageReader<OFBsnVlanCounterStatsEntry> {
193 @Override
194 public OFBsnVlanCounterStatsEntry readFrom(ChannelBuffer bb) throws OFParseError {
195 int start = bb.readerIndex();
196 int length = U16.f(bb.readShort());
197 if(length < MINIMUM_LENGTH)
198 throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
199 if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
200 // Buffer does not have all data yet
201 bb.readerIndex(start);
202 return null;
203 }
204 if(logger.isTraceEnabled())
205 logger.trace("readFrom - length={}", length);
206 int vlanVid = U16.f(bb.readShort());
207 // pad: 4 bytes
208 bb.skipBytes(4);
209 List<U64> values = ChannelUtils.readList(bb, length - (bb.readerIndex() - start), U64.READER);
210
211 OFBsnVlanCounterStatsEntryVer13 bsnVlanCounterStatsEntryVer13 = new OFBsnVlanCounterStatsEntryVer13(
212 vlanVid,
213 values
214 );
215 if(logger.isTraceEnabled())
216 logger.trace("readFrom - read={}", bsnVlanCounterStatsEntryVer13);
217 return bsnVlanCounterStatsEntryVer13;
218 }
219 }
220
221 public void putTo(PrimitiveSink sink) {
222 FUNNEL.funnel(this, sink);
223 }
224
225 final static OFBsnVlanCounterStatsEntryVer13Funnel FUNNEL = new OFBsnVlanCounterStatsEntryVer13Funnel();
226 static class OFBsnVlanCounterStatsEntryVer13Funnel implements Funnel<OFBsnVlanCounterStatsEntryVer13> {
227 private static final long serialVersionUID = 1L;
228 @Override
229 public void funnel(OFBsnVlanCounterStatsEntryVer13 message, PrimitiveSink sink) {
230 // FIXME: skip funnel of length
231 sink.putInt(message.vlanVid);
232 // skip pad (4 bytes)
233 FunnelUtils.putList(message.values, sink);
234 }
235 }
236
237
238 public void writeTo(ChannelBuffer bb) {
239 WRITER.write(bb, this);
240 }
241
242 final static Writer WRITER = new Writer();
243 static class Writer implements OFMessageWriter<OFBsnVlanCounterStatsEntryVer13> {
244 @Override
245 public void write(ChannelBuffer bb, OFBsnVlanCounterStatsEntryVer13 message) {
246 int startIndex = bb.writerIndex();
247 // length is length of variable message, will be updated at the end
248 int lengthIndex = bb.writerIndex();
249 bb.writeShort(U16.t(0));
250
251 bb.writeShort(U16.t(message.vlanVid));
252 // pad: 4 bytes
253 bb.writeZero(4);
254 ChannelUtils.writeList(bb, message.values);
255
256 // update length field
257 int length = bb.writerIndex() - startIndex;
258 bb.setShort(lengthIndex, length);
259
260 }
261 }
262
263 @Override
264 public String toString() {
265 StringBuilder b = new StringBuilder("OFBsnVlanCounterStatsEntryVer13(");
266 b.append("vlanVid=").append(vlanVid);
267 b.append(", ");
268 b.append("values=").append(values);
269 b.append(")");
270 return b.toString();
271 }
272
273 @Override
274 public boolean equals(Object obj) {
275 if (this == obj)
276 return true;
277 if (obj == null)
278 return false;
279 if (getClass() != obj.getClass())
280 return false;
281 OFBsnVlanCounterStatsEntryVer13 other = (OFBsnVlanCounterStatsEntryVer13) obj;
282
283 if( vlanVid != other.vlanVid)
284 return false;
285 if (values == null) {
286 if (other.values != null)
287 return false;
288 } else if (!values.equals(other.values))
289 return false;
290 return true;
291 }
292
293 @Override
294 public int hashCode() {
295 final int prime = 31;
296 int result = 1;
297
298 result = prime * result + vlanVid;
299 result = prime * result + ((values == null) ? 0 : values.hashCode());
300 return result;
301 }
302
303}