From 9e3dd6ee613437cefbc0a93ad31c18520ff56226 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 6 Jan 2020 19:45:13 +0100 Subject: [PATCH] Reduce PathKey serialization duplication PathKeyUtils.serializePathKey() can take PathKeySubobject, which makes it readily reusable in RROPathKey128SubobjectParser, reducing amount of duplication we have. Change-Id: I23f5c58842c2a1ef073ef3f90b6224247a7a195f Signed-off-by: Robert Varga --- .../rro/RROPathKey128SubobjectParser.java | 15 ++------------- .../rsvp/parser/spi/subobjects/PathKeyUtils.java | 4 ++-- 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/rsvp/impl/src/main/java/org/opendaylight/protocol/rsvp/parser/impl/subobject/rro/RROPathKey128SubobjectParser.java b/rsvp/impl/src/main/java/org/opendaylight/protocol/rsvp/parser/impl/subobject/rro/RROPathKey128SubobjectParser.java index fc33c71545..e6634465b3 100644 --- a/rsvp/impl/src/main/java/org/opendaylight/protocol/rsvp/parser/impl/subobject/rro/RROPathKey128SubobjectParser.java +++ b/rsvp/impl/src/main/java/org/opendaylight/protocol/rsvp/parser/impl/subobject/rro/RROPathKey128SubobjectParser.java @@ -10,9 +10,9 @@ package org.opendaylight.protocol.rsvp.parser.impl.subobject.rro; import static com.google.common.base.Preconditions.checkArgument; import io.netty.buffer.ByteBuf; -import io.netty.buffer.Unpooled; import org.opendaylight.protocol.rsvp.parser.spi.RROSubobjectParser; import org.opendaylight.protocol.rsvp.parser.spi.RSVPParsingException; +import org.opendaylight.protocol.rsvp.parser.spi.subobjects.PathKeyUtils; import org.opendaylight.protocol.util.ByteArray; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.PathKey; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.PceId; @@ -35,18 +35,7 @@ public class RROPathKey128SubobjectParser implements RROSubobjectParser { public static void serializeSubobject(final SubobjectContainer subobject, final ByteBuf buffer) { final PathKeyCase pkcase = (PathKeyCase) subobject.getSubobjectType(); - final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.record.route.subobjects - .subobject.type.path.key._case.PathKey pk = pkcase.getPathKey(); - final ByteBuf body = Unpooled.buffer(); - - final PathKey pathKey = pk.getPathKey(); - checkArgument(pathKey != null, "PathKey is mandatory."); - ByteBufUtils.write(body, pathKey.getValue()); - - final PceId pceId = pk.getPceId(); - checkArgument(pceId != null, "PceId is mandatory."); - body.writeBytes(pceId.getValue()); - RROSubobjectUtil.formatSubobject(TYPE, body, buffer); + RROSubobjectUtil.formatSubobject(TYPE, PathKeyUtils.serializePathKey(pkcase.getPathKey()), buffer); } @Override diff --git a/rsvp/spi/src/main/java/org/opendaylight/protocol/rsvp/parser/spi/subobjects/PathKeyUtils.java b/rsvp/spi/src/main/java/org/opendaylight/protocol/rsvp/parser/spi/subobjects/PathKeyUtils.java index fc613383db..8d0b6588f5 100644 --- a/rsvp/spi/src/main/java/org/opendaylight/protocol/rsvp/parser/spi/subobjects/PathKeyUtils.java +++ b/rsvp/spi/src/main/java/org/opendaylight/protocol/rsvp/parser/spi/subobjects/PathKeyUtils.java @@ -13,6 +13,7 @@ import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import org.opendaylight.protocol.util.ByteArray; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.PathKey; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.PathKeySubobject; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.PceId; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.rsvp.rev150820.explicit.route.subobjects.subobject.type.path.key._case.PathKeyBuilder; import org.opendaylight.yangtools.yang.common.netty.ByteBufUtils; @@ -30,8 +31,7 @@ public final class PathKeyUtils { .build(); } - public static ByteBuf serializePathKey(final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang - .rsvp.rev150820.explicit.route.subobjects.subobject.type.path.key._case.PathKey pk) { + public static ByteBuf serializePathKey(final PathKeySubobject pk) { final ByteBuf body = Unpooled.buffer(); final PathKey pathKey = pk.getPathKey(); checkArgument(pathKey != null, "PathKey is mandatory."); -- 2.36.6