X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=bgp%2Fparser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fprotocol%2Fbgp%2Fparser%2Fimpl%2Fmessage%2Fupdate%2FLocalPreferenceAttributeParser.java;h=d7abf0ff8f2c1ab7f43b8172c16f830e655140c2;hb=3c135df98a164d4207775de96a5217a392d1949e;hp=c66ff1adf07b151d8a2e63f73f76d1c13c9b6d04;hpb=fef52c72498ea2e4d84ea6686f708fd9898ff0ac;p=bgpcep.git diff --git a/bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/message/update/LocalPreferenceAttributeParser.java b/bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/message/update/LocalPreferenceAttributeParser.java index c66ff1adf0..d7abf0ff8f 100644 --- a/bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/message/update/LocalPreferenceAttributeParser.java +++ b/bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/message/update/LocalPreferenceAttributeParser.java @@ -7,16 +7,34 @@ */ package org.opendaylight.protocol.bgp.parser.impl.message.update; +import com.google.common.base.Preconditions; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; import org.opendaylight.protocol.bgp.parser.spi.AttributeParser; -import org.opendaylight.protocol.util.ByteArray; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130918.path.attributes.LocalPrefBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130918.update.PathAttributesBuilder; +import org.opendaylight.protocol.bgp.parser.spi.AttributeSerializer; +import org.opendaylight.protocol.bgp.parser.spi.AttributeUtil; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.path.attributes.Attributes; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.path.attributes.AttributesBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.path.attributes.attributes.LocalPref; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.path.attributes.attributes.LocalPrefBuilder; +import org.opendaylight.yangtools.yang.binding.DataObject; -public final class LocalPreferenceAttributeParser implements AttributeParser { - public static final int TYPE = 5; +public final class LocalPreferenceAttributeParser implements AttributeParser,AttributeSerializer { - @Override - public void parseAttribute(final byte[] bytes, final PathAttributesBuilder builder) { - builder.setLocalPref(new LocalPrefBuilder().setPref(ByteArray.bytesToLong(bytes)).build()); - } -} \ No newline at end of file + public static final int TYPE = 5; + + @Override + public void parseAttribute(final ByteBuf buffer, final AttributesBuilder builder) { + builder.setLocalPref(new LocalPrefBuilder().setPref(buffer.readUnsignedInt()).build()); + } + + @Override + public void serializeAttribute(final DataObject attribute, final ByteBuf byteAggregator) { + Preconditions.checkArgument(attribute instanceof Attributes, "Attribute parameter is not a PathAttribute object."); + final LocalPref lp = ((Attributes) attribute).getLocalPref(); + if (lp == null) { + return; + } + AttributeUtil.formatAttribute(AttributeUtil.TRANSITIVE, TYPE, Unpooled.copyInt(lp.getPref().intValue()), byteAggregator); + } +}