2 * Copyright 2015 Open Networking Laboratory
\r
4 * Licensed under the Apache License, Version 2.0 (the "License");
\r
5 * you may not use this file except in compliance with the License.
\r
6 * You may obtain a copy of the License at
\r
8 * http://www.apache.org/licenses/LICENSE-2.0
\r
10 * Unless required by applicable law or agreed to in writing, software
\r
11 * distributed under the License is distributed on an "AS IS" BASIS,
\r
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
13 * See the License for the specific language governing permissions and
\r
14 * limitations under the License.
\r
16 package org.onosproject.bgpio.types;
\r
18 import java.util.Objects;
\r
20 import org.jboss.netty.buffer.ChannelBuffer;
\r
21 import org.slf4j.Logger;
\r
22 import org.slf4j.LoggerFactory;
\r
24 import com.google.common.base.MoreObjects;
\r
27 * Provides FourOctetAsNumCapabilityTlv Capability Tlv.
\r
29 public class FourOctetAsNumCapabilityTlv implements BgpValueType {
\r
32 * support to indicate its support for four-octet AS numbers -CAPABILITY TLV format.
\r
34 protected static final Logger log = LoggerFactory
\r
35 .getLogger(FourOctetAsNumCapabilityTlv.class);
\r
37 public static final byte TYPE = 65;
\r
38 public static final byte LENGTH = 4;
\r
40 private final int rawValue;
\r
43 * constructor to initialize rawValue.
\r
44 * @param rawValue FourOctetAsNumCapabilityTlv
\r
46 public FourOctetAsNumCapabilityTlv(int rawValue) {
\r
47 this.rawValue = rawValue;
\r
51 * constructor to initialize raw.
\r
52 * @param raw AS number
\r
53 * @return object of FourOctetAsNumCapabilityTlv
\r
55 public static FourOctetAsNumCapabilityTlv of(final int raw) {
\r
56 return new FourOctetAsNumCapabilityTlv(raw);
\r
60 * Returns value of TLV.
\r
61 * @return int value of rawValue
\r
63 public int getInt() {
\r
68 public short getType() {
\r
73 public int hashCode() {
\r
74 return Objects.hash(rawValue);
\r
78 public boolean equals(Object obj) {
\r
82 if (obj instanceof FourOctetAsNumCapabilityTlv) {
\r
83 FourOctetAsNumCapabilityTlv other = (FourOctetAsNumCapabilityTlv) obj;
\r
84 return Objects.equals(rawValue, other.rawValue);
\r
90 public int write(ChannelBuffer cb) {
\r
91 int iLenStartIndex = cb.writerIndex();
\r
93 cb.writeByte(LENGTH);
\r
94 cb.writeInt(rawValue);
\r
95 return cb.writerIndex() - iLenStartIndex;
\r
99 * Reads the channel buffer and returns object of FourOctetAsNumCapabilityTlv.
\r
100 * @param cb type of channel buffer
\r
101 * @return object of FourOctetAsNumCapabilityTlv
\r
103 public static FourOctetAsNumCapabilityTlv read(ChannelBuffer cb) {
\r
104 return FourOctetAsNumCapabilityTlv.of(cb.readInt());
\r
108 public String toString() {
\r
109 return MoreObjects.toStringHelper(getClass())
\r
111 .add("Length", LENGTH)
\r
112 .add("Value", rawValue).toString();
\r
116 public int compareTo(Object o) {
\r
117 // TODO Auto-generated method stub
\r