BUG-47 : PCEP migration to generated DTOs.
[bgpcep.git] / pcep / impl / src / main / java / org / opendaylight / protocol / pcep / impl / tlv / OverloadedDurationTlvParser.java
1 /**
2  * 
3  */
4 package org.opendaylight.protocol.pcep.impl.tlv;
5
6 import org.opendaylight.protocol.pcep.PCEPDeserializerException;
7 import org.opendaylight.protocol.pcep.spi.TlvParser;
8 import org.opendaylight.protocol.pcep.spi.TlvSerializer;
9 import org.opendaylight.protocol.util.ByteArray;
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.OverloadDurationTlv;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Tlv;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.notification.object.tlvs.OverloadDurationBuilder;
13
14 /**
15  * Parser for {@link OverloadDurationTlv}
16  */
17 public class OverloadedDurationTlvParser implements TlvParser, TlvSerializer {
18
19         public static final int TYPE = 2;
20
21         private static final int OVERLOADED_DURATION_LENGTH = 4;
22
23         @Override
24         public OverloadDurationTlv parseTlv(final byte[] buffer) throws PCEPDeserializerException {
25                 final long l = ByteArray.bytesToInt(ByteArray.subByte(buffer, 0, OVERLOADED_DURATION_LENGTH));
26                 return new OverloadDurationBuilder().setDuration(l).build();
27         }
28
29         @Override
30         public byte[] serializeTlv(final Tlv tlv) {
31                 if (tlv == null)
32                         throw new IllegalArgumentException("OverloadedTlv is mandatory.");
33                 final OverloadDurationTlv odt = (OverloadDurationTlv) tlv;
34                 return ByteArray.subByte(ByteArray.longToBytes(odt.getDuration()), 4, OVERLOADED_DURATION_LENGTH);
35         }
36
37         @Override
38         public int getType() {
39                 return TYPE;
40         }
41 }