public class EchoReplyMessageFactory extends VersionAssignableFactory<EchoOutput> {
@Override
public EchoOutput deserialize(final ByteBuf rawMessage) {
- EchoOutputBuilder builder = new EchoOutputBuilder();
- builder.setVersion(getVersion());
- builder.setXid(readUint32(rawMessage));
+ final EchoOutputBuilder builder = new EchoOutputBuilder()
+ .setVersion(getVersion())
+ .setXid(readUint32(rawMessage));
int remainingBytes = rawMessage.readableBytes();
if (remainingBytes > 0) {
byte[] data = new byte[remainingBytes];
public class EchoRequestMessageFactory extends VersionAssignableFactory<EchoRequestMessage> {
@Override
public EchoRequestMessage deserialize(final ByteBuf rawMessage) {
- EchoRequestMessageBuilder builder = new EchoRequestMessageBuilder();
- builder.setVersion(getVersion());
- builder.setXid(readUint32(rawMessage));
+ EchoRequestMessageBuilder builder = new EchoRequestMessageBuilder()
+ .setVersion(getVersion())
+ .setXid(readUint32(rawMessage));
byte[] data = new byte[rawMessage.readableBytes()];
rawMessage.readBytes(data);
- builder.setData(data);
- return builder.build();
+ return builder.setData(data).build();
}
}
@Override
@SuppressFBWarnings("UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") // FB doesn't recognize Objects.requireNonNull
- public ErrorMessage deserialize(ByteBuf rawMessage) {
+ public ErrorMessage deserialize(final ByteBuf rawMessage) {
Objects.requireNonNull(registry);
int startIndex = rawMessage.readerIndex();
return builder.build();
}
- private static void decodeType(ErrorMessageBuilder builder, ErrorType type, int readValue) {
+ private static void decodeType(final ErrorMessageBuilder builder, final ErrorType type, final int readValue) {
if (type != null) {
builder.setType(Uint16.valueOf(type.getIntValue()));
builder.setTypeString(type.name());
}
}
- private static void decodeCode(ByteBuf rawMessage, ErrorMessageBuilder builder,
- ErrorType type) {
+ private static void decodeCode(final ByteBuf rawMessage, final ErrorMessageBuilder builder,
+ final ErrorType type) {
int code = rawMessage.readUnsignedShort();
if (type != null) {
switch (type) {
}
}
- private static void setUnknownCode(ErrorMessageBuilder builder, int readValue) {
- builder.setCode(Uint16.valueOf(readValue));
- builder.setCodeString(UNKNOWN_CODE);
+ private static void setUnknownCode(final ErrorMessageBuilder builder, final int readValue) {
+ builder.setCode(Uint16.valueOf(readValue)).setCodeString(UNKNOWN_CODE);
}
- private static void setCode(ErrorMessageBuilder builder, int code, String codeString) {
- builder.setCode(Uint16.valueOf(code));
- builder.setCodeString(codeString);
+ private static void setCode(final ErrorMessageBuilder builder, final int code, final String codeString) {
+ builder.setCode(Uint16.valueOf(code)).setCodeString(codeString);
}
@Override
- public void injectDeserializerRegistry(DeserializerRegistry deserializerRegistry) {
+ public void injectDeserializerRegistry(final DeserializerRegistry deserializerRegistry) {
this.registry = deserializerRegistry;
}
*/
package org.opendaylight.openflowjava.protocol.impl.deserialization.factories;
+import static java.util.Objects.requireNonNull;
import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint32;
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import io.netty.buffer.ByteBuf;
-import java.util.Objects;
import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegistry;
import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegistryInjector;
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
*/
public class ExperimenterMessageFactory implements OFDeserializer<ExperimenterMessage>,
DeserializerRegistryInjector {
-
- private DeserializerRegistry deserializerRegistry;
+ private DeserializerRegistry deserializerRegistry = null;
@Override
- @SuppressFBWarnings("UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") // FB doesn't recognize Objects.requireNonNull
- public ExperimenterMessage deserialize(ByteBuf message) {
- Objects.requireNonNull(deserializerRegistry);
-
+ public ExperimenterMessage deserialize(final ByteBuf message) {
final Uint32 xid = readUint32(message);
final Uint32 expId = readUint32(message);
final Uint32 expType = readUint32(message);
- OFDeserializer<ExperimenterDataOfChoice> deserializer = deserializerRegistry.getDeserializer(
+ final OFDeserializer<ExperimenterDataOfChoice> deserializer = deserializerRegistry.getDeserializer(
ExperimenterDeserializerKeyFactory.createExperimenterMessageDeserializerKey(
EncodeConstants.OF13_VERSION_ID, expId.toJava(), expType.toJava()));
- final ExperimenterDataOfChoice vendorData = deserializer.deserialize(message);
- ExperimenterMessageBuilder messageBld = new ExperimenterMessageBuilder()
+ return new ExperimenterMessageBuilder()
.setVersion(EncodeConstants.OF_VERSION_1_3)
.setXid(xid)
.setExperimenter(new ExperimenterId(expId))
.setExpType(expType)
- .setExperimenterDataOfChoice(vendorData);
- return messageBld.build();
+ .setExperimenterDataOfChoice(deserializer.deserialize(message))
+ .build();
}
@Override
- public void injectDeserializerRegistry(DeserializerRegistry registry) {
- this.deserializerRegistry = registry;
+ public void injectDeserializerRegistry(final DeserializerRegistry registry) {
+ this.deserializerRegistry = requireNonNull(registry);
}
}
* @author timotej.kubas
*/
public class FeaturesReplyMessageFactory implements OFDeserializer<GetFeaturesOutput> {
-
private static final byte PADDING_IN_FEATURES_REPLY_HEADER = 2;
@Override
- public GetFeaturesOutput deserialize(ByteBuf rawMessage) {
+ public GetFeaturesOutput deserialize(final ByteBuf rawMessage) {
GetFeaturesOutputBuilder builder = new GetFeaturesOutputBuilder()
.setVersion(EncodeConstants.OF_VERSION_1_3)
.setXid(readUint32(rawMessage))
.setTables(readUint8(rawMessage))
.setAuxiliaryId(readUint8(rawMessage));
rawMessage.skipBytes(PADDING_IN_FEATURES_REPLY_HEADER);
- builder.setCapabilities(createCapabilities(rawMessage.readUnsignedInt()));
- builder.setReserved(readUint32(rawMessage));
- return builder.build();
+ return builder
+ .setCapabilities(createCapabilities(rawMessage.readUnsignedInt()))
+ .setReserved(readUint32(rawMessage))
+ .build();
}
- private static Capabilities createCapabilities(long input) {
+ private static Capabilities createCapabilities(final long input) {
final Boolean flowStats = (input & 1 << 0) != 0;
final Boolean tableStats = (input & 1 << 1) != 0;
final Boolean portStats = (input & 1 << 2) != 0;
final Boolean ipReasm = (input & 1 << 5) != 0;
final Boolean queueStats = (input & 1 << 6) != 0;
final Boolean portBlocked = (input & 1 << 8) != 0;
- return new Capabilities(flowStats, groupStats, ipReasm,
- portBlocked, portStats, queueStats, tableStats);
+ return new Capabilities(flowStats, groupStats, ipReasm, portBlocked, portStats, queueStats, tableStats);
}
-
}
*/
package org.opendaylight.openflowjava.protocol.impl.deserialization.factories;
+import static java.util.Objects.requireNonNull;
import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint16;
import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint32;
import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint64;
import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint8;
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import io.netty.buffer.ByteBuf;
-import java.util.List;
-import java.util.Objects;
import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegistry;
import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegistryInjector;
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
import org.opendaylight.openflowjava.protocol.api.keys.MessageCodeKey;
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
-import org.opendaylight.openflowjava.protocol.impl.util.CodeKeyMaker;
import org.opendaylight.openflowjava.protocol.impl.util.CodeKeyMakerFactory;
import org.opendaylight.openflowjava.protocol.impl.util.ListDeserializer;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.FlowModCommand;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.FlowModFlags;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber;
* Translates FlowModInput messages.
*/
public class FlowModInputMessageFactory implements OFDeserializer<FlowModInput>, DeserializerRegistryInjector {
-
private static final byte PADDING = 2;
- private DeserializerRegistry registry;
- @Override
- @SuppressFBWarnings("UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") // FB doesn't recognize Objects.requireNonNull
- public FlowModInput deserialize(ByteBuf rawMessage) {
- Objects.requireNonNull(registry);
+ private DeserializerRegistry registry = null;
+ @Override
+ public FlowModInput deserialize(final ByteBuf rawMessage) {
FlowModInputBuilder builder = new FlowModInputBuilder()
.setVersion(EncodeConstants.OF_VERSION_1_3)
.setXid(readUint32(rawMessage))
rawMessage.skipBytes(PADDING);
OFDeserializer<Match> matchDeserializer = registry.getDeserializer(
new MessageCodeKey(EncodeConstants.OF13_VERSION_ID, EncodeConstants.EMPTY_VALUE, Match.class));
- builder.setMatch(matchDeserializer.deserialize(rawMessage));
- CodeKeyMaker keyMaker = CodeKeyMakerFactory.createInstructionsKeyMaker(EncodeConstants.OF13_VERSION_ID);
- List<Instruction> instructions = ListDeserializer.deserializeList(EncodeConstants.OF13_VERSION_ID,
- rawMessage.readableBytes(), rawMessage, keyMaker, registry);
- builder.setInstruction(instructions);
- return builder.build();
+ return builder
+ .setMatch(matchDeserializer.deserialize(rawMessage))
+ .setInstruction(ListDeserializer.deserializeList(EncodeConstants.OF13_VERSION_ID,
+ rawMessage.readableBytes(), rawMessage,
+ CodeKeyMakerFactory.createInstructionsKeyMaker(EncodeConstants.OF13_VERSION_ID), registry))
+ .build();
}
@SuppressWarnings("checkstyle:AbbreviationAsWordInName")
- private static FlowModFlags createFlowModFlagsFromBitmap(int input) {
+ private static FlowModFlags createFlowModFlagsFromBitmap(final int input) {
final Boolean _oFPFFSENDFLOWREM = (input & 1 << 0) != 0;
final Boolean _oFPFFCHECKOVERLAP = (input & 1 << 1) != 0;
final Boolean _oFPFFRESETCOUNTS = (input & 1 << 2) != 0;
}
@Override
- public void injectDeserializerRegistry(DeserializerRegistry deserializerRegistry) {
- registry = deserializerRegistry;
+ public void injectDeserializerRegistry(final DeserializerRegistry deserializerRegistry) {
+ registry = requireNonNull(deserializerRegistry);
}
}
*/
package org.opendaylight.openflowjava.protocol.impl.deserialization.factories;
+import static java.util.Objects.requireNonNull;
import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint16;
import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint32;
import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint64;
import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint8;
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import io.netty.buffer.ByteBuf;
import java.util.Objects;
import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegistry;
*/
public class FlowRemovedMessageFactory implements OFDeserializer<FlowRemovedMessage>,
DeserializerRegistryInjector {
-
- private DeserializerRegistry registry;
+ private DeserializerRegistry registry = null;
@Override
- @SuppressFBWarnings("UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") // FB doesn't recognize Objects.requireNonNull
- public FlowRemovedMessage deserialize(ByteBuf rawMessage) {
+ public FlowRemovedMessage deserialize(final ByteBuf rawMessage) {
Objects.requireNonNull(registry);
FlowRemovedMessageBuilder builder = new FlowRemovedMessageBuilder()
.setByteCount(readUint64(rawMessage));
OFDeserializer<Match> matchDeserializer = registry.getDeserializer(new MessageCodeKey(
EncodeConstants.OF13_VERSION_ID, EncodeConstants.EMPTY_VALUE, Match.class));
- builder.setMatch(matchDeserializer.deserialize(rawMessage));
- return builder.build();
+ return builder.setMatch(matchDeserializer.deserialize(rawMessage)).build();
}
@Override
- public void injectDeserializerRegistry(DeserializerRegistry deserializerRegistry) {
- registry = deserializerRegistry;
+ public void injectDeserializerRegistry(final DeserializerRegistry deserializerRegistry) {
+ registry = requireNonNull(deserializerRegistry);
}
}
* @author timotej.kubas
*/
public class GetConfigReplyMessageFactory extends VersionAssignableFactory<GetConfigOutput> {
-
@Override
public GetConfigOutput deserialize(final ByteBuf rawMessage) {
- GetConfigOutputBuilder builder = new GetConfigOutputBuilder();
- builder.setVersion(getVersion());
- builder.setXid(readUint32(rawMessage));
- builder.setFlags(SwitchConfigFlag.forValue(rawMessage.readUnsignedShort()));
- builder.setMissSendLen(readUint16(rawMessage));
- return builder.build();
+ return new GetConfigOutputBuilder()
+ .setVersion(getVersion())
+ .setXid(readUint32(rawMessage))
+ .setFlags(SwitchConfigFlag.forValue(rawMessage.readUnsignedShort()))
+ .setMissSendLen(readUint16(rawMessage))
+ .build();
}
}
@Override
public HelloMessage deserialize(final ByteBuf rawMessage) {
- HelloMessageBuilder builder = new HelloMessageBuilder();
- builder.setVersion(getVersion());
- builder.setXid(readUint32(rawMessage));
+ HelloMessageBuilder builder = new HelloMessageBuilder()
+ .setVersion(getVersion())
+ .setXid(readUint32(rawMessage));
if (rawMessage.readableBytes() > 0) {
builder.setElements(readElement(rawMessage));
}
*/
package org.opendaylight.openflowjava.protocol.impl.deserialization.factories;
+import static java.util.Objects.requireNonNull;
import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint32;
import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint8;
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import io.netty.buffer.ByteBuf;
import java.util.ArrayList;
import java.util.List;
-import java.util.Objects;
import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegistry;
import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegistryInjector;
import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer;
* @author giuseppex.petralia@intel.com
*/
public class MeterModInputMessageFactory implements OFDeserializer<MeterModInput>, DeserializerRegistryInjector {
-
- private DeserializerRegistry registry;
private static final byte PADDING_IN_METER_BAND_DROP_HEADER = 4;
private static final byte PADDING_IN_METER_BAND_DSCP_HEADER = 3;
+ private DeserializerRegistry registry = null;
+
@Override
- public void injectDeserializerRegistry(DeserializerRegistry deserializerRegistry) {
- registry = deserializerRegistry;
+ public void injectDeserializerRegistry(final DeserializerRegistry deserializerRegistry) {
+ registry = requireNonNull(deserializerRegistry);
}
@Override
- @SuppressFBWarnings("UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") // FB doesn't recognize Objects.requireNonNull
- public MeterModInput deserialize(ByteBuf rawMessage) {
- Objects.requireNonNull(registry);
-
+ public MeterModInput deserialize(final ByteBuf rawMessage) {
MeterModInputBuilder builder = new MeterModInputBuilder()
.setVersion(EncodeConstants.OF_VERSION_1_3)
.setXid(readUint32(rawMessage))
int bandType = rawMessage.readUnsignedShort();
switch (bandType) {
case 1:
- final MeterBandDropCaseBuilder bandDropCaseBuilder = new MeterBandDropCaseBuilder();
- MeterBandDropBuilder bandDropBuilder = new MeterBandDropBuilder();
- bandDropBuilder.setType(MeterBandType.forValue(bandType));
rawMessage.readUnsignedShort();
- bandDropBuilder.setRate(readUint32(rawMessage));
- bandDropBuilder.setBurstSize(readUint32(rawMessage));
+ MeterBandDropBuilder bandDropBuilder = new MeterBandDropBuilder()
+ .setType(MeterBandType.forValue(bandType))
+ .setRate(readUint32(rawMessage))
+ .setBurstSize(readUint32(rawMessage));
rawMessage.skipBytes(PADDING_IN_METER_BAND_DROP_HEADER);
- bandDropCaseBuilder.setMeterBandDrop(bandDropBuilder.build());
- bandsBuilder.setMeterBand(bandDropCaseBuilder.build());
+
+ bandsBuilder.setMeterBand(new MeterBandDropCaseBuilder()
+ .setMeterBandDrop(bandDropBuilder.build())
+ .build());
break;
case 2:
- final MeterBandDscpRemarkCaseBuilder bandDscpRemarkCaseBuilder =
- new MeterBandDscpRemarkCaseBuilder();
- MeterBandDscpRemarkBuilder bandDscpRemarkBuilder = new MeterBandDscpRemarkBuilder();
- bandDscpRemarkBuilder.setType(MeterBandType.forValue(bandType));
rawMessage.readUnsignedShort();
- bandDscpRemarkBuilder.setRate(readUint32(rawMessage));
- bandDscpRemarkBuilder.setBurstSize(readUint32(rawMessage));
- bandDscpRemarkBuilder.setPrecLevel(readUint8(rawMessage));
+ MeterBandDscpRemarkBuilder bandDscpRemarkBuilder = new MeterBandDscpRemarkBuilder()
+ .setType(MeterBandType.forValue(bandType))
+ .setRate(readUint32(rawMessage))
+ .setBurstSize(readUint32(rawMessage))
+ .setPrecLevel(readUint8(rawMessage));
rawMessage.skipBytes(PADDING_IN_METER_BAND_DSCP_HEADER);
- bandDscpRemarkCaseBuilder.setMeterBandDscpRemark(bandDscpRemarkBuilder.build());
- bandsBuilder.setMeterBand(bandDscpRemarkCaseBuilder.build());
+ bandsBuilder.setMeterBand(new MeterBandDscpRemarkCaseBuilder()
+ .setMeterBandDscpRemark(bandDscpRemarkBuilder.build())
+ .build());
break;
case 0xFFFF:
long expId = rawMessage.getUnsignedInt(rawMessage.readerIndex() + 2 * Integer.BYTES);
}
bandsList.add(bandsBuilder.build());
}
- builder.setBands(bandsList);
- return builder.build();
+ return builder.setBands(bandsList).build();
}
@SuppressWarnings("checkstyle:AbbreviationAsWordInName")
- private static MeterFlags createMeterFlags(int input) {
+ private static MeterFlags createMeterFlags(final int input) {
final Boolean mfKBPS = (input & 1 << 0) != 0;
final Boolean mfPKTPS = (input & 1 << 1) != 0;
final Boolean mfBURST = (input & 1 << 2) != 0;
*/
public class ClearActionsInstructionDeserializer implements OFDeserializer<Instruction>,
HeaderDeserializer<Instruction> {
+ private static final Instruction CLEAR_INSTRUCTION = new InstructionBuilder()
+ .setInstructionChoice(new ClearActionsCaseBuilder().build())
+ .build();
+
@Override
- public Instruction deserialize(ByteBuf input) {
- InstructionBuilder builder = new InstructionBuilder();
+ public Instruction deserialize(final ByteBuf input) {
input.skipBytes(2 * Short.BYTES);
input.skipBytes(InstructionConstants.PADDING_IN_ACTIONS_INSTRUCTION);
- builder.setInstructionChoice(new ClearActionsCaseBuilder().build());
- return builder.build();
+ return CLEAR_INSTRUCTION;
}
@Override
- public Instruction deserializeHeader(ByteBuf input) {
- InstructionBuilder builder = new InstructionBuilder();
+ public Instruction deserializeHeader(final ByteBuf input) {
input.skipBytes(2 * Short.BYTES);
- builder.setInstructionChoice(new ClearActionsCaseBuilder().build());
- return builder.build();
+ return CLEAR_INSTRUCTION;
}
}
@Override
public MatchV10 deserialize(final ByteBuf input) {
- MatchV10Builder builder = new MatchV10Builder();
- long wildcards = input.readUnsignedInt();
- builder.setWildcards(createWildcards(wildcards));
- builder.setNwSrcMask(decodeNwSrcMask(wildcards));
- builder.setNwDstMask(decodeNwDstMask(wildcards));
- builder.setInPort(readUint16(input));
- builder.setDlSrc(ByteBufUtils.readIetfMacAddress(input));
- builder.setDlDst(ByteBufUtils.readIetfMacAddress(input));
-
- builder.setDlVlan(readUint16(input));
- builder.setDlVlanPcp(readUint8(input));
+ final long wildcards = input.readUnsignedInt();
+ MatchV10Builder builder = new MatchV10Builder()
+ .setWildcards(createWildcards(wildcards))
+ .setNwSrcMask(decodeNwSrcMask(wildcards))
+ .setNwDstMask(decodeNwDstMask(wildcards))
+ .setInPort(readUint16(input))
+ .setDlSrc(ByteBufUtils.readIetfMacAddress(input))
+ .setDlDst(ByteBufUtils.readIetfMacAddress(input))
+ .setDlVlan(readUint16(input))
+ .setDlVlanPcp(readUint8(input));
input.skipBytes(PADDING_IN_MATCH);
- builder.setDlType(readUint16(input));
- builder.setNwTos(readUint8(input));
- builder.setNwProto(readUint8(input));
+ builder
+ .setDlType(readUint16(input))
+ .setNwTos(readUint8(input))
+ .setNwProto(readUint8(input));
input.skipBytes(PADDING_IN_MATCH_2);
- builder.setNwSrc(ByteBufUtils.readIetfIpv4Address(input));
- builder.setNwDst(ByteBufUtils.readIetfIpv4Address(input));
- builder.setTpSrc(readUint16(input));
- builder.setTpDst(readUint16(input));
- return builder.build();
+ return builder
+ .setNwSrc(ByteBufUtils.readIetfIpv4Address(input))
+ .setNwDst(ByteBufUtils.readIetfIpv4Address(input))
+ .setTpSrc(readUint16(input))
+ .setTpDst(readUint16(input))
+ .build();
}
/**