blob: f3a10929a474682ecd6b630de60808decf6806df [file] [log] [blame]
Thomas Vachuska24c849c2014-10-27 09:53:05 -07001/*
Thomas Vachuska4f1a60c2014-10-28 13:39:07 -07002 * Copyright 2014 Open Networking Laboratory
alshabibc4901cd2014-09-05 16:50:40 -07003 *
Thomas Vachuska4f1a60c2014-10-28 13:39:07 -07004 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
alshabibc4901cd2014-09-05 16:50:40 -07007 *
Thomas Vachuska4f1a60c2014-10-28 13:39:07 -07008 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
Thomas Vachuska24c849c2014-10-27 09:53:05 -070015 */
16
17
alshabibc4901cd2014-09-05 16:50:40 -070018
19package org.onlab.packet;
20
21import java.util.Arrays;
22
23/**
24 *
alshabibc4901cd2014-09-05 16:50:40 -070025 */
26public class Data extends BasePacket {
27 protected byte[] data;
28
29 /**
30 *
31 */
32 public Data() {
33 }
34
35 /**
Yuta HIGUCHI5c947272014-11-03 21:39:21 -080036 * @param data the data
alshabibc4901cd2014-09-05 16:50:40 -070037 */
38 public Data(final byte[] data) {
39 this.data = data;
40 }
41
42 /**
43 * @return the data
44 */
45 public byte[] getData() {
46 return this.data;
47 }
48
49 /**
50 * @param data
51 * the data to set
Yuta HIGUCHI5c947272014-11-03 21:39:21 -080052 * @return self
alshabibc4901cd2014-09-05 16:50:40 -070053 */
54 public Data setData(final byte[] data) {
55 this.data = data;
56 return this;
57 }
58
59 @Override
60 public byte[] serialize() {
61 return this.data;
62 }
63
64 @Override
65 public IPacket deserialize(final byte[] data, final int offset,
66 final int length) {
67 this.data = Arrays.copyOfRange(data, offset, data.length);
68 return this;
69 }
70
71 /*
72 * (non-Javadoc)
73 *
74 * @see java.lang.Object#hashCode()
75 */
76 @Override
77 public int hashCode() {
78 final int prime = 1571;
79 int result = super.hashCode();
80 result = prime * result + Arrays.hashCode(this.data);
81 return result;
82 }
83
84 /*
85 * (non-Javadoc)
86 *
87 * @see java.lang.Object#equals(java.lang.Object)
88 */
89 @Override
90 public boolean equals(final Object obj) {
91 if (this == obj) {
92 return true;
93 }
94 if (!super.equals(obj)) {
95 return false;
96 }
97 if (!(obj instanceof Data)) {
98 return false;
99 }
100 final Data other = (Data) obj;
101 if (!Arrays.equals(this.data, other.data)) {
102 return false;
103 }
104 return true;
105 }
106}