*/
package org.opendaylight.openflowjava.protocol.impl.deserialization.factories;
+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;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.port.stats._case.MultipartRequestPortStatsBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.queue._case.MultipartRequestQueueBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.table._case.MultipartRequestTableBuilder;
+import org.opendaylight.yangtools.yang.common.Empty;
/**
- * @author giuseppex.petralia@intel.com
+ * Translates MultipartRequestInput messages.
*
+ * @author giuseppex.petralia@intel.com
*/
+@SuppressFBWarnings("UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") // FB doesn't recognize Objects.requireNonNull
public class OF10StatsRequestInputFactory
implements OFDeserializer<MultipartRequestInput>, DeserializerRegistryInjector {
private DeserializerRegistry registry;
@Override
public MultipartRequestInput deserialize(ByteBuf rawMessage) {
+ Objects.requireNonNull(registry);
+
MultipartRequestInputBuilder builder = new MultipartRequestInputBuilder();
builder.setVersion((short) EncodeConstants.OF10_VERSION_ID);
builder.setXid(rawMessage.readUnsignedInt());
builder.setType(getMultipartType(type));
builder.setFlags(getMultipartRequestFlags(rawMessage.readUnsignedShort()));
switch (getMultipartType(type)) {
- case OFPMPDESC:
- builder.setMultipartRequestBody(setDesc(rawMessage));
- break;
- case OFPMPFLOW:
- builder.setMultipartRequestBody(setFlow(rawMessage));
- break;
- case OFPMPAGGREGATE:
- builder.setMultipartRequestBody(setAggregate(rawMessage));
- break;
- case OFPMPTABLE:
- builder.setMultipartRequestBody(setTable(rawMessage));
- break;
- case OFPMPPORTSTATS:
- builder.setMultipartRequestBody(setPortStats(rawMessage));
- break;
- case OFPMPQUEUE:
- builder.setMultipartRequestBody(setQueue(rawMessage));
- break;
- case OFPMPEXPERIMENTER:
- builder.setMultipartRequestBody(setExperimenter(rawMessage));
- break;
- default:
- break;
+ case OFPMPDESC:
+ builder.setMultipartRequestBody(setDesc(rawMessage));
+ break;
+ case OFPMPFLOW:
+ builder.setMultipartRequestBody(setFlow(rawMessage));
+ break;
+ case OFPMPAGGREGATE:
+ builder.setMultipartRequestBody(setAggregate(rawMessage));
+ break;
+ case OFPMPTABLE:
+ builder.setMultipartRequestBody(setTable(rawMessage));
+ break;
+ case OFPMPPORTSTATS:
+ builder.setMultipartRequestBody(setPortStats(rawMessage));
+ break;
+ case OFPMPQUEUE:
+ builder.setMultipartRequestBody(setQueue(rawMessage));
+ break;
+ case OFPMPEXPERIMENTER:
+ builder.setMultipartRequestBody(setExperimenter(rawMessage));
+ break;
+ default:
+ break;
}
return builder.build();
}
- private MultipartRequestExperimenterCase setExperimenter(ByteBuf input) {
+ private static MultipartRequestExperimenterCase setExperimenter(ByteBuf input) {
MultipartRequestExperimenterCaseBuilder caseBuilder = new MultipartRequestExperimenterCaseBuilder();
MultipartRequestExperimenterBuilder experimenterBuilder = new MultipartRequestExperimenterBuilder();
caseBuilder.setMultipartRequestExperimenter(experimenterBuilder.build());
return caseBuilder.build();
}
- private MultipartRequestQueueCase setQueue(ByteBuf input) {
- MultipartRequestQueueCaseBuilder caseBuilder = new MultipartRequestQueueCaseBuilder();
+ private static MultipartRequestQueueCase setQueue(ByteBuf input) {
+ final MultipartRequestQueueCaseBuilder caseBuilder = new MultipartRequestQueueCaseBuilder();
MultipartRequestQueueBuilder queueBuilder = new MultipartRequestQueueBuilder();
queueBuilder.setPortNo((long) input.readUnsignedShort());
input.skipBytes(2);
return caseBuilder.build();
}
- private MultipartRequestPortStatsCase setPortStats(ByteBuf input) {
+ private static MultipartRequestPortStatsCase setPortStats(ByteBuf input) {
MultipartRequestPortStatsCaseBuilder caseBuilder = new MultipartRequestPortStatsCaseBuilder();
MultipartRequestPortStatsBuilder portBuilder = new MultipartRequestPortStatsBuilder();
portBuilder.setPortNo((long) input.readUnsignedShort());
return caseBuilder.build();
}
- private MultipartRequestTableCase setTable(ByteBuf input) {
+ private static MultipartRequestTableCase setTable(ByteBuf input) {
MultipartRequestTableCaseBuilder caseBuilder = new MultipartRequestTableCaseBuilder();
MultipartRequestTableBuilder tableBuilder = new MultipartRequestTableBuilder();
- tableBuilder.setEmpty(true);
+ tableBuilder.setEmpty(Empty.getInstance());
caseBuilder.setMultipartRequestTable(tableBuilder.build());
return caseBuilder.build();
}
private MultipartRequestAggregateCase setAggregate(ByteBuf input) {
- MultipartRequestAggregateCaseBuilder caseBuilder = new MultipartRequestAggregateCaseBuilder();
+ final MultipartRequestAggregateCaseBuilder caseBuilder = new MultipartRequestAggregateCaseBuilder();
MultipartRequestAggregateBuilder aggregateBuilder = new MultipartRequestAggregateBuilder();
OFDeserializer<MatchV10> matchDeserializer = registry.getDeserializer(
new MessageCodeKey(EncodeConstants.OF10_VERSION_ID, EncodeConstants.EMPTY_VALUE, MatchV10.class));
}
private MultipartRequestFlowCase setFlow(ByteBuf input) {
- MultipartRequestFlowCaseBuilder caseBuilder = new MultipartRequestFlowCaseBuilder();
+ final MultipartRequestFlowCaseBuilder caseBuilder = new MultipartRequestFlowCaseBuilder();
MultipartRequestFlowBuilder flowBuilder = new MultipartRequestFlowBuilder();
OFDeserializer<MatchV10> matchDeserializer = registry.getDeserializer(
new MessageCodeKey(EncodeConstants.OF10_VERSION_ID, EncodeConstants.EMPTY_VALUE, MatchV10.class));
return caseBuilder.build();
}
- private MultipartRequestDescCase setDesc(ByteBuf input) {
+ private static MultipartRequestDescCase setDesc(ByteBuf input) {
MultipartRequestDescCaseBuilder caseBuilder = new MultipartRequestDescCaseBuilder();
MultipartRequestDescBuilder descBuilder = new MultipartRequestDescBuilder();
- descBuilder.setEmpty(true);
+ descBuilder.setEmpty(Empty.getInstance());
caseBuilder.setMultipartRequestDesc(descBuilder.build());
return caseBuilder.build();
}
+ @SuppressWarnings("checkstyle:AbbreviationAsWordInName")
private static MultipartRequestFlags getMultipartRequestFlags(int input) {
- final Boolean _oFPMPFREQMORE = (input & (1 << 0)) > 0;
+ final Boolean _oFPMPFREQMORE = (input & 1 << 0) != 0;
MultipartRequestFlags flag = new MultipartRequestFlags(_oFPMPFREQMORE);
return flag;
}