Move pcep base parser Activator to its own bundle
[bgpcep.git] / pcep / ietf-stateful07 / src / main / java / org / opendaylight / protocol / pcep / ietf / stateful07 / Stateful07LspSymbolicNameTlvParser.java
index 4dac10ada6966d171653c651abc41b4372d43122..32a62aac72893ffbb65adbd2145a034982374265 100644 (file)
@@ -7,10 +7,14 @@
  */
 package org.opendaylight.protocol.pcep.ietf.stateful07;
 
-import org.opendaylight.protocol.pcep.impl.tlv.TlvUtil;
+import com.google.common.base.Preconditions;
+import io.netty.buffer.ByteBuf;
+import io.netty.buffer.Unpooled;
 import org.opendaylight.protocol.pcep.spi.PCEPDeserializerException;
 import org.opendaylight.protocol.pcep.spi.TlvParser;
 import org.opendaylight.protocol.pcep.spi.TlvSerializer;
+import org.opendaylight.protocol.pcep.spi.TlvUtil;
+import org.opendaylight.protocol.util.ByteArray;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.symbolic.path.name.tlv.SymbolicPathName;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.symbolic.path.name.tlv.SymbolicPathNameBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Tlv;
@@ -20,25 +24,22 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ
  */
 public final class Stateful07LspSymbolicNameTlvParser implements TlvParser, TlvSerializer {
 
-       public static final int TYPE = 17;
+    public static final int TYPE = 17;
 
-       @Override
-       public SymbolicPathName parseTlv(final byte[] buffer) throws PCEPDeserializerException {
-               return new SymbolicPathNameBuilder().setPathName(
-                               new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.SymbolicPathName(buffer)).build();
-       }
+    @Override
+    public SymbolicPathName parseTlv(final ByteBuf buffer) throws PCEPDeserializerException {
+        if (buffer == null) {
+            return null;
+        }
+        return new SymbolicPathNameBuilder().setPathName(
+                new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.SymbolicPathName(ByteArray.getAllBytes(buffer))).build();
+    }
 
-       @Override
-       public byte[] serializeTlv(final Tlv tlv) {
-               if (tlv == null) {
-                       throw new IllegalArgumentException("SymbolicPathNameTlv is mandatory.");
-               }
-               final SymbolicPathName spn = (SymbolicPathName) tlv;
-               return TlvUtil.formatTlv(TYPE, spn.getPathName().getValue());
-       }
-
-       @Override
-       public int getType() {
-               return TYPE;
-       }
+    @Override
+    public void serializeTlv(final Tlv tlv, final ByteBuf buffer) {
+        Preconditions.checkArgument(tlv instanceof SymbolicPathName, "SymbolicPathNameTlv is mandatory.");
+        final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.SymbolicPathName spn = ((SymbolicPathName) tlv).getPathName();
+        Preconditions.checkArgument(spn != null, "SymbolicPathName is mandatory");
+        TlvUtil.formatTlv(TYPE, Unpooled.copiedBuffer(spn.getValue()), buffer);
+    }
 }