X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=openflowplugin-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fopenflowplugin%2Fimpl%2Fprotocol%2Fdeserialization%2Fmultipart%2FMultipartReplyMeterFeaturesDeserializer.java;h=4c24be8396c31a1b4f019e646ec9cad92ffe9178;hb=refs%2Fchanges%2F77%2F100077%2F17;hp=b2e3d9352f989aec146085f95ad3b0bedc5671fe;hpb=a5595dea3a55c8e27ab627ae2826d30f85ddbede;p=openflowplugin.git diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/deserialization/multipart/MultipartReplyMeterFeaturesDeserializer.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/deserialization/multipart/MultipartReplyMeterFeaturesDeserializer.java index b2e3d9352f..4c24be8396 100644 --- a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/deserialization/multipart/MultipartReplyMeterFeaturesDeserializer.java +++ b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/deserialization/multipart/MultipartReplyMeterFeaturesDeserializer.java @@ -5,12 +5,14 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.openflowplugin.impl.protocol.deserialization.multipart; +import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint32; +import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint8; + +import com.google.common.collect.ImmutableSet; import io.netty.buffer.ByteBuf; -import java.util.ArrayList; -import java.util.List; +import java.util.Set; import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Counter32; import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.multipart.reply.multipart.reply.body.MultipartReplyMeterFeaturesBuilder; @@ -27,55 +29,46 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.multipart.types.rev170112.m public class MultipartReplyMeterFeaturesDeserializer implements OFDeserializer { @Override - public MultipartReplyBody deserialize(ByteBuf message) { + public MultipartReplyBody deserialize(final ByteBuf message) { return new MultipartReplyMeterFeaturesBuilder() - .setMaxMeter(new Counter32(message.readUnsignedInt())) + .setMaxMeter(new Counter32(readUint32(message))) .setMeterBandSupported(readMeterBands(message)) .setMeterCapabilitiesSupported(readMeterCapabilities(message)) - .setMaxBands(message.readUnsignedByte()) - .setMaxColor(message.readUnsignedByte()) + .setMaxBands(readUint8(message)) + .setMaxColor(readUint8(message)) .build(); } - private static List> readMeterBands(ByteBuf message) { - final List> bandTypes = new ArrayList<>(); + private static Set> readMeterBands(final ByteBuf message) { final long typesMask = message.readUnsignedInt(); - final boolean mbtDrop = (typesMask & (1)) != 0; - final boolean mbtDscpRemark = (typesMask & (1 << 1)) != 0; - if (mbtDrop) { + final var bandTypes = ImmutableSet.>builder(); + if ((typesMask & 1) != 0) { bandTypes.add(MeterBandDrop.class); } - if (mbtDscpRemark) { + if ((typesMask & 1 << 1) != 0) { bandTypes.add(MeterBandDscpRemark.class); } - - return bandTypes; + return bandTypes.build(); } - private static List> readMeterCapabilities(ByteBuf message) { - final List> meterCapabilities = new ArrayList<>(); + private static Set> readMeterCapabilities(final ByteBuf message) { final long capabilitiesMask = message.readUnsignedInt(); - final boolean mfKbps = (capabilitiesMask & (1)) != 0; - final boolean mfPktps = (capabilitiesMask & (1 << 1)) != 0; - final boolean mfBurst = (capabilitiesMask & (1 << 2)) != 0; - final boolean mfStats = (capabilitiesMask & (1 << 3)) != 0; - - if (mfKbps) { + final var meterCapabilities = ImmutableSet.>builder(); + if ((capabilitiesMask & 1) != 0) { meterCapabilities.add(MeterKbps.class); } - if (mfPktps) { + if ((capabilitiesMask & 1 << 1) != 0) { meterCapabilities.add(MeterPktps.class); } - if (mfBurst) { + if ((capabilitiesMask & 1 << 2) != 0) { meterCapabilities.add(MeterBurst.class); } - if (mfStats) { + if ((capabilitiesMask & 1 << 3) != 0) { meterCapabilities.add(MeterStats.class); } - return meterCapabilities; + return meterCapabilities.build(); } - }