--- /dev/null
+/*
+ * Copyright (c) 2020 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.openflowjava.protocol.impl.deserialization.action;
+
+import com.google.common.annotations.Beta;
+import io.netty.buffer.ByteBuf;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.ActionChoice;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
+
+@Beta
+public abstract class AbstractActionCaseDeserializer<T extends ActionChoice> extends AbstractActionDeserializer<T> {
+ protected AbstractActionCaseDeserializer(final @NonNull T emptyChoice) {
+ super(emptyChoice);
+ }
+
+ @Override
+ public final Action deserialize(final ByteBuf input) {
+ return new ActionBuilder().setActionChoice(deserializeAction(input)).build();
+ }
+
+ protected abstract @NonNull T deserializeAction(@NonNull ByteBuf input);
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.openflowjava.protocol.impl.deserialization.action;
+
+import io.netty.buffer.ByteBuf;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.openflowjava.protocol.impl.util.ActionConstants;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.ActionChoice;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.EtherType;
+import org.opendaylight.yangtools.yang.common.netty.ByteBufUtils;
+
+abstract class AbstractEtherTypeActionDeserializer<T extends ActionChoice> extends AbstractActionCaseDeserializer<T> {
+ AbstractEtherTypeActionDeserializer(final @NonNull T emptyChoice) {
+ super(emptyChoice);
+ }
+
+ @Override
+ protected final T deserializeAction(final ByteBuf input) {
+ input.skipBytes(2 * Short.BYTES);
+ final EtherType etherType = new EtherType(ByteBufUtils.readUint16(input));
+ input.skipBytes(ActionConstants.ETHERTYPE_ACTION_PADDING);
+
+ return createAction(etherType);
+ }
+
+ abstract @NonNull T createAction(@NonNull EtherType etherType);
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.openflowjava.protocol.impl.deserialization.action;
+
+import io.netty.buffer.ByteBuf;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.openflowjava.protocol.impl.util.ActionConstants;
+import org.opendaylight.openflowjava.util.ByteBufUtils;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.ActionChoice;
+
+abstract class AbstractOF10SetDlActionDeserializer<T extends ActionChoice> extends AbstractActionCaseDeserializer<T> {
+ AbstractOF10SetDlActionDeserializer(final @NonNull T emptyChoice) {
+ super(emptyChoice);
+ }
+
+ @Override
+ protected final T deserializeAction(final ByteBuf input) {
+ input.skipBytes(2 * Short.BYTES);
+ final MacAddress macAddress = ByteBufUtils.readIetfMacAddress(input);
+ input.skipBytes(ActionConstants.PADDING_IN_DL_ADDRESS_ACTION);
+
+ return createAction(macAddress);
+ }
+
+ abstract @NonNull T createAction(@NonNull MacAddress macAddress);
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.openflowjava.protocol.impl.deserialization.action;
+
+import io.netty.buffer.ByteBuf;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.openflowjava.util.ByteBufUtils;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.ActionChoice;
+
+abstract class AbstractOF10SetNwActionDeserializer<T extends ActionChoice> extends AbstractActionCaseDeserializer<T> {
+ AbstractOF10SetNwActionDeserializer(final @NonNull T emptyChoice) {
+ super(emptyChoice);
+ }
+
+ @Override
+ protected final T deserializeAction(final ByteBuf input) {
+ input.skipBytes(2 * Short.BYTES);
+
+ return createAction(ByteBufUtils.readIetfIpv4Address(input));
+ }
+
+ abstract @NonNull T createAction(@NonNull Ipv4Address ipAddress);
+}
--- /dev/null
+/*
+ * Copyright (c) 2020 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * 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.openflowjava.protocol.impl.deserialization.action;
+
+import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint16;
+
+import io.netty.buffer.ByteBuf;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.openflowjava.protocol.impl.util.ActionConstants;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.ActionChoice;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber;
+
+abstract class AbstractOF10SetTpActionDeserializer<T extends ActionChoice> extends AbstractActionCaseDeserializer<T> {
+ AbstractOF10SetTpActionDeserializer(final @NonNull T emptyChoice) {
+ super(emptyChoice);
+ }
+
+ @Override
+ protected final T deserializeAction(final ByteBuf input) {
+ input.skipBytes(2 * Short.BYTES);
+ final PortNumber port = new PortNumber(readUint16(input).toUint32());
+ input.skipBytes(ActionConstants.PADDING_IN_TP_PORT_ACTION);
+
+ return createAction(port);
+ }
+
+ abstract @NonNull T createAction(@NonNull PortNumber port);
+}
@Override
public Action deserialize(final ByteBuf input) {
input.skipBytes(2 * Short.BYTES);
- EnqueueActionBuilder actionBuilder = new EnqueueActionBuilder();
- actionBuilder.setPort(new PortNumber(readUint16(input).toUint32()));
+ final var port = new PortNumber(readUint16(input).toUint32());
input.skipBytes(ActionConstants.PADDING_IN_ENQUEUE_ACTION);
- actionBuilder.setQueueId(new QueueId(readUint32(input)));
+ final var queueId = new QueueId(readUint32(input));
+
return new ActionBuilder()
- .setActionChoice(new EnqueueCaseBuilder().setEnqueueAction(actionBuilder.build()).build())
+ .setActionChoice(new EnqueueCaseBuilder()
+ .setEnqueueAction(new EnqueueActionBuilder().setPort(port).setQueueId(queueId).build())
+ .build())
.build();
}
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.OutputActionCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.OutputActionCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.output.action._case.OutputActionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber;
/**
*
* @author michal.polkorab
*/
-public class OF10OutputActionDeserializer extends AbstractActionDeserializer<OutputActionCase> {
+public final class OF10OutputActionDeserializer extends AbstractActionCaseDeserializer<OutputActionCase> {
public OF10OutputActionDeserializer() {
super(new OutputActionCaseBuilder().build());
}
@Override
- public Action deserialize(final ByteBuf input) {
- final ActionBuilder builder = new ActionBuilder();
+ protected OutputActionCase deserializeAction(final ByteBuf input) {
input.skipBytes(2 * Short.BYTES);
- OutputActionCaseBuilder caseBuilder = new OutputActionCaseBuilder();
- OutputActionBuilder actionBuilder = new OutputActionBuilder();
- actionBuilder.setPort(new PortNumber(readUint16(input).toUint32()));
- actionBuilder.setMaxLength(readUint16(input));
- caseBuilder.setOutputAction(actionBuilder.build());
- builder.setActionChoice(caseBuilder.build());
- return builder.build();
+
+ return new OutputActionCaseBuilder()
+ .setOutputAction(new OutputActionBuilder()
+ .setPort(new PortNumber(readUint16(input).toUint32()))
+ .setMaxLength(readUint16(input))
+ .build())
+ .build();
}
}
*/
package org.opendaylight.openflowjava.protocol.impl.deserialization.action;
-import io.netty.buffer.ByteBuf;
-import org.opendaylight.openflowjava.protocol.impl.util.ActionConstants;
-import org.opendaylight.openflowjava.util.ByteBufUtils;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetDlDstCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetDlDstCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.set.dl.dst._case.SetDlDstActionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
/**
* OF10SetDlDstActionDeserializer.
*
* @author michal.polkorab
*/
-public class OF10SetDlDstActionDeserializer extends AbstractActionDeserializer<SetDlDstCase> {
+public final class OF10SetDlDstActionDeserializer extends AbstractOF10SetDlActionDeserializer<SetDlDstCase> {
public OF10SetDlDstActionDeserializer() {
super(new SetDlDstCaseBuilder().build());
}
@Override
- public Action deserialize(final ByteBuf input) {
- final ActionBuilder builder = new ActionBuilder();
- input.skipBytes(2 * Short.BYTES);
- SetDlDstCaseBuilder caseBuilder = new SetDlDstCaseBuilder();
- SetDlDstActionBuilder actionBuilder = new SetDlDstActionBuilder();
- actionBuilder.setDlDstAddress(ByteBufUtils.readIetfMacAddress(input));
- caseBuilder.setSetDlDstAction(actionBuilder.build());
- builder.setActionChoice(caseBuilder.build());
- input.skipBytes(ActionConstants.PADDING_IN_DL_ADDRESS_ACTION);
- return builder.build();
+ SetDlDstCase createAction(final MacAddress macAddress) {
+ return new SetDlDstCaseBuilder()
+ .setSetDlDstAction(new SetDlDstActionBuilder().setDlDstAddress(macAddress).build())
+ .build();
}
}
*/
package org.opendaylight.openflowjava.protocol.impl.deserialization.action;
-import io.netty.buffer.ByteBuf;
-import org.opendaylight.openflowjava.protocol.impl.util.ActionConstants;
-import org.opendaylight.openflowjava.util.ByteBufUtils;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetDlSrcCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetDlSrcCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.set.dl.src._case.SetDlSrcActionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
/**
* OF10SetDlSrcActionDeserializer.
*
* @author michal.polkorab
*/
-public class OF10SetDlSrcActionDeserializer extends AbstractActionDeserializer<SetDlSrcCase> {
+public final class OF10SetDlSrcActionDeserializer extends AbstractOF10SetDlActionDeserializer<SetDlSrcCase> {
public OF10SetDlSrcActionDeserializer() {
super(new SetDlSrcCaseBuilder().build());
}
@Override
- public Action deserialize(final ByteBuf input) {
- final ActionBuilder builder = new ActionBuilder();
- input.skipBytes(2 * Short.BYTES);
- SetDlSrcCaseBuilder caseBuilder = new SetDlSrcCaseBuilder();
- SetDlSrcActionBuilder actionBuilder = new SetDlSrcActionBuilder();
- actionBuilder.setDlSrcAddress(ByteBufUtils.readIetfMacAddress(input));
- caseBuilder.setSetDlSrcAction(actionBuilder.build());
- builder.setActionChoice(caseBuilder.build());
- input.skipBytes(ActionConstants.PADDING_IN_DL_ADDRESS_ACTION);
- return builder.build();
+ SetDlSrcCase createAction(final MacAddress macAddress) {
+ return new SetDlSrcCaseBuilder()
+ .setSetDlSrcAction(new SetDlSrcActionBuilder().setDlSrcAddress(macAddress).build())
+ .build();
}
}
*/
package org.opendaylight.openflowjava.protocol.impl.deserialization.action;
-import io.netty.buffer.ByteBuf;
-import org.opendaylight.openflowjava.util.ByteBufUtils;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetNwDstCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetNwDstCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.set.nw.dst._case.SetNwDstActionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
/**
* OF10SetNwDstActionDeserializer.
*
* @author michal.polkorab
*/
-public class OF10SetNwDstActionDeserializer extends AbstractActionDeserializer<SetNwDstCase> {
+public final class OF10SetNwDstActionDeserializer extends AbstractOF10SetNwActionDeserializer<SetNwDstCase> {
public OF10SetNwDstActionDeserializer() {
super(new SetNwDstCaseBuilder().build());
}
@Override
- public Action deserialize(final ByteBuf input) {
- final ActionBuilder builder = new ActionBuilder();
- input.skipBytes(2 * Short.BYTES);
- SetNwDstCaseBuilder caseBuilder = new SetNwDstCaseBuilder();
- SetNwDstActionBuilder actionBuilder = new SetNwDstActionBuilder();
- actionBuilder.setIpAddress(ByteBufUtils.readIetfIpv4Address(input));
- caseBuilder.setSetNwDstAction(actionBuilder.build());
- builder.setActionChoice(caseBuilder.build());
- return builder.build();
+ SetNwDstCase createAction(final Ipv4Address ipAddress) {
+ return new SetNwDstCaseBuilder()
+ .setSetNwDstAction(new SetNwDstActionBuilder().setIpAddress(ipAddress).build())
+ .build();
}
}
*/
package org.opendaylight.openflowjava.protocol.impl.deserialization.action;
-import io.netty.buffer.ByteBuf;
-import org.opendaylight.openflowjava.util.ByteBufUtils;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetNwSrcCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetNwSrcCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.set.nw.src._case.SetNwSrcActionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
/**
* OF10SetNwSrcActionDeserializer.
*
* @author michal.polkorab
*/
-public class OF10SetNwSrcActionDeserializer extends AbstractActionDeserializer<SetNwSrcCase> {
+public final class OF10SetNwSrcActionDeserializer extends AbstractOF10SetNwActionDeserializer<SetNwSrcCase> {
public OF10SetNwSrcActionDeserializer() {
super(new SetNwSrcCaseBuilder().build());
}
@Override
- public Action deserialize(final ByteBuf input) {
- final ActionBuilder builder = new ActionBuilder();
- input.skipBytes(2 * Short.BYTES);
- SetNwSrcCaseBuilder caseBuilder = new SetNwSrcCaseBuilder();
- SetNwSrcActionBuilder actionBuilder = new SetNwSrcActionBuilder();
- actionBuilder.setIpAddress(ByteBufUtils.readIetfIpv4Address(input));
- caseBuilder.setSetNwSrcAction(actionBuilder.build());
- builder.setActionChoice(caseBuilder.build());
- return builder.build();
+ SetNwSrcCase createAction(final Ipv4Address ipAddress) {
+ return new SetNwSrcCaseBuilder()
+ .setSetNwSrcAction(new SetNwSrcActionBuilder().setIpAddress(ipAddress).build())
+ .build();
}
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetNwTosCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetNwTosCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.set.nw.tos._case.SetNwTosActionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
/**
* OF10SetNwTosActionDeserializer.
*
* @author michal.polkorab
*/
-public class OF10SetNwTosActionDeserializer extends AbstractActionDeserializer<SetNwTosCase> {
+public class OF10SetNwTosActionDeserializer extends AbstractActionCaseDeserializer<SetNwTosCase> {
public OF10SetNwTosActionDeserializer() {
super(new SetNwTosCaseBuilder().build());
}
@Override
- public Action deserialize(final ByteBuf input) {
- final ActionBuilder builder = new ActionBuilder();
+ protected SetNwTosCase deserializeAction(final ByteBuf input) {
input.skipBytes(2 * Short.BYTES);
- SetNwTosCaseBuilder caseBuilder = new SetNwTosCaseBuilder();
- SetNwTosActionBuilder tosBuilder = new SetNwTosActionBuilder();
- tosBuilder.setNwTos(readUint8(input));
- caseBuilder.setSetNwTosAction(tosBuilder.build());
- builder.setActionChoice(caseBuilder.build());
+ final var nwTos = readUint8(input);
input.skipBytes(ActionConstants.PADDING_IN_SET_NW_TOS_ACTION);
- return builder.build();
+
+ return new SetNwTosCaseBuilder().setSetNwTosAction(new SetNwTosActionBuilder().setNwTos(nwTos).build()).build();
}
}
*/
package org.opendaylight.openflowjava.protocol.impl.deserialization.action;
-import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint16;
-
-import io.netty.buffer.ByteBuf;
-import org.opendaylight.openflowjava.protocol.impl.util.ActionConstants;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetTpDstCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetTpDstCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.set.tp.dst._case.SetTpDstActionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber;
/**
*
* @author michal.polkorab
*/
-public class OF10SetTpDstActionDeserializer extends AbstractActionDeserializer<SetTpDstCase> {
+public final class OF10SetTpDstActionDeserializer extends AbstractOF10SetTpActionDeserializer<SetTpDstCase> {
public OF10SetTpDstActionDeserializer() {
super(new SetTpDstCaseBuilder().build());
}
@Override
- public Action deserialize(final ByteBuf input) {
- final ActionBuilder builder = new ActionBuilder();
- input.skipBytes(2 * Short.BYTES);
- SetTpDstCaseBuilder caseBuilder = new SetTpDstCaseBuilder();
- SetTpDstActionBuilder actionBuilder = new SetTpDstActionBuilder();
- actionBuilder.setPort(new PortNumber(readUint16(input).toUint32()));
- caseBuilder.setSetTpDstAction(actionBuilder.build());
- builder.setActionChoice(caseBuilder.build());
- input.skipBytes(ActionConstants.PADDING_IN_TP_PORT_ACTION);
- return builder.build();
+ SetTpDstCase createAction(final PortNumber port) {
+ return new SetTpDstCaseBuilder().setSetTpDstAction(new SetTpDstActionBuilder().setPort(port).build()).build();
}
}
*/
package org.opendaylight.openflowjava.protocol.impl.deserialization.action;
-import static org.opendaylight.yangtools.yang.common.netty.ByteBufUtils.readUint16;
-
-import io.netty.buffer.ByteBuf;
-import org.opendaylight.openflowjava.protocol.impl.util.ActionConstants;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetTpSrcCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetTpSrcCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.set.tp.src._case.SetTpSrcActionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber;
/**
*
* @author michal.polkorab
*/
-public class OF10SetTpSrcActionDeserializer extends AbstractActionDeserializer<SetTpSrcCase> {
+public final class OF10SetTpSrcActionDeserializer extends AbstractOF10SetTpActionDeserializer<SetTpSrcCase> {
public OF10SetTpSrcActionDeserializer() {
super(new SetTpSrcCaseBuilder().build());
}
@Override
- public Action deserialize(final ByteBuf input) {
- final ActionBuilder builder = new ActionBuilder();
- input.skipBytes(2 * Short.BYTES);
- SetTpSrcCaseBuilder caseBuilder = new SetTpSrcCaseBuilder();
- SetTpSrcActionBuilder actionBuilder = new SetTpSrcActionBuilder();
- actionBuilder.setPort(new PortNumber(readUint16(input).toUint32()));
- caseBuilder.setSetTpSrcAction(actionBuilder.build());
- builder.setActionChoice(caseBuilder.build());
- input.skipBytes(ActionConstants.PADDING_IN_TP_PORT_ACTION);
- return builder.build();
+ SetTpSrcCase createAction(final PortNumber port) {
+ return new SetTpSrcCaseBuilder().setSetTpSrcAction(new SetTpSrcActionBuilder().setPort(port).build()).build();
}
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetVlanPcpCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetVlanPcpCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.set.vlan.pcp._case.SetVlanPcpActionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
/**
* OF10SetVlanPcpActionDeserializer.
*
* @author michal.polkorab
*/
-public class OF10SetVlanPcpActionDeserializer extends AbstractActionDeserializer<SetVlanPcpCase> {
+public final class OF10SetVlanPcpActionDeserializer extends AbstractActionCaseDeserializer<SetVlanPcpCase> {
public OF10SetVlanPcpActionDeserializer() {
super(new SetVlanPcpCaseBuilder().build());
}
@Override
- public Action deserialize(final ByteBuf input) {
- final ActionBuilder builder = new ActionBuilder();
+ protected SetVlanPcpCase deserializeAction(final ByteBuf input) {
input.skipBytes(2 * Short.BYTES);
- SetVlanPcpCaseBuilder caseBuilder = new SetVlanPcpCaseBuilder();
- SetVlanPcpActionBuilder actionBuilder = new SetVlanPcpActionBuilder();
- actionBuilder.setVlanPcp(readUint8(input));
- caseBuilder.setSetVlanPcpAction(actionBuilder.build());
- builder.setActionChoice(caseBuilder.build());
+ final var vlanPcp = readUint8(input);
input.skipBytes(ActionConstants.PADDING_IN_SET_VLAN_PCP_ACTION);
- return builder.build();
+
+ return new SetVlanPcpCaseBuilder()
+ .setSetVlanPcpAction(new SetVlanPcpActionBuilder().setVlanPcp(vlanPcp).build())
+ .build();
}
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetVlanVidCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetVlanVidCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.set.vlan.vid._case.SetVlanVidActionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
/**
* OF10SetVlanVidActionDeserializer.
*
* @author michal.polkorab
*/
-public class OF10SetVlanVidActionDeserializer extends AbstractActionDeserializer<SetVlanVidCase> {
+public final class OF10SetVlanVidActionDeserializer extends AbstractActionCaseDeserializer<SetVlanVidCase> {
public OF10SetVlanVidActionDeserializer() {
super(new SetVlanVidCaseBuilder().build());
}
@Override
- public Action deserialize(final ByteBuf input) {
+ protected SetVlanVidCase deserializeAction(final ByteBuf input) {
input.skipBytes(2 * Short.BYTES);
- final ActionBuilder builder = new ActionBuilder()
- .setActionChoice(new SetVlanVidCaseBuilder()
- .setSetVlanVidAction(new SetVlanVidActionBuilder().setVlanVid(readUint16(input)).build())
- .build());
+ final var vlanVid = readUint16(input);
input.skipBytes(ActionConstants.PADDING_IN_SET_VLAN_VID_ACTION);
- return builder.build();
+
+ return new SetVlanVidCaseBuilder()
+ .setSetVlanVidAction(new SetVlanVidActionBuilder().setVlanVid(vlanVid).build())
+ .build();
}
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.GroupCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.GroupCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.group._case.GroupActionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
/**
* OF13GroupActionDeserializer.
*
* @author michal.polkorab
*/
-public class OF13GroupActionDeserializer extends AbstractActionDeserializer<GroupCase> {
+public class OF13GroupActionDeserializer extends AbstractActionCaseDeserializer<GroupCase> {
public OF13GroupActionDeserializer() {
super(new GroupCaseBuilder().build());
}
@Override
- public Action deserialize(final ByteBuf input) {
+ protected GroupCase deserializeAction(final ByteBuf input) {
input.skipBytes(2 * Short.BYTES);
- return new ActionBuilder()
- .setActionChoice(new GroupCaseBuilder()
- .setGroupAction(new GroupActionBuilder().setGroupId(readUint32(input)).build())
- .build())
- .build();
+ return new GroupCaseBuilder()
+ .setGroupAction(new GroupActionBuilder().setGroupId(readUint32(input)).build())
+ .build();
}
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.OutputActionCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.OutputActionCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.output.action._case.OutputActionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber;
/**
*
* @author michal.polkorab
*/
-public class OF13OutputActionDeserializer extends AbstractActionDeserializer<OutputActionCase> {
+public class OF13OutputActionDeserializer extends AbstractActionCaseDeserializer<OutputActionCase> {
public OF13OutputActionDeserializer() {
super(new OutputActionCaseBuilder().build());
}
@Override
- public Action deserialize(final ByteBuf input) {
+ protected OutputActionCase deserializeAction(final ByteBuf input) {
input.skipBytes(2 * Short.BYTES);
final var action = new OutputActionBuilder()
.setPort(new PortNumber(readUint32(input)))
.build();
input.skipBytes(ActionConstants.OUTPUT_PADDING);
- return new ActionBuilder()
- .setActionChoice(new OutputActionCaseBuilder().setOutputAction(action).build())
- .build();
+ return new OutputActionCaseBuilder().setOutputAction(action).build();
}
}
*/
package org.opendaylight.openflowjava.protocol.impl.deserialization.action;
-import io.netty.buffer.ByteBuf;
-import org.opendaylight.openflowjava.protocol.impl.util.ActionConstants;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.PopMplsCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.PopMplsCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.pop.mpls._case.PopMplsActionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.EtherType;
-import org.opendaylight.yangtools.yang.common.netty.ByteBufUtils;
/**
* OF13PopMplsActionDeserializer.
*
* @author michal.polkorab
*/
-public class OF13PopMplsActionDeserializer extends AbstractActionDeserializer<PopMplsCase> {
+public final class OF13PopMplsActionDeserializer extends AbstractEtherTypeActionDeserializer<PopMplsCase> {
public OF13PopMplsActionDeserializer() {
super(new PopMplsCaseBuilder().build());
}
@Override
- public Action deserialize(final ByteBuf input) {
- input.skipBytes(2 * Short.BYTES);
- final ActionBuilder builder = new ActionBuilder()
- .setActionChoice(new PopMplsCaseBuilder()
- .setPopMplsAction(new PopMplsActionBuilder()
- .setEthertype(new EtherType(ByteBufUtils.readUint16(input)))
- .build())
- .build());
- input.skipBytes(ActionConstants.ETHERTYPE_ACTION_PADDING);
- return builder.build();
+ PopMplsCase createAction(final EtherType etherType) {
+ return new PopMplsCaseBuilder()
+ .setPopMplsAction(new PopMplsActionBuilder().setEthertype(etherType).build())
+ .build();
}
}
*/
package org.opendaylight.openflowjava.protocol.impl.deserialization.action;
-import io.netty.buffer.ByteBuf;
-import org.opendaylight.openflowjava.protocol.impl.util.ActionConstants;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.PushMplsCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.PushMplsCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.push.mpls._case.PushMplsActionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.EtherType;
-import org.opendaylight.yangtools.yang.common.netty.ByteBufUtils;
/**
* OF13PushMplsActionDeserializer.
*
* @author michal.polkorab
*/
-public class OF13PushMplsActionDeserializer extends AbstractActionDeserializer<PushMplsCase> {
+public final class OF13PushMplsActionDeserializer extends AbstractEtherTypeActionDeserializer<PushMplsCase> {
public OF13PushMplsActionDeserializer() {
super(new PushMplsCaseBuilder().build());
}
@Override
- public Action deserialize(final ByteBuf input) {
- final ActionBuilder builder = new ActionBuilder();
- input.skipBytes(2 * Short.BYTES);
- PushMplsCaseBuilder caseBuilder = new PushMplsCaseBuilder();
- PushMplsActionBuilder mplsBuilder = new PushMplsActionBuilder();
- mplsBuilder.setEthertype(new EtherType(ByteBufUtils.readUint16(input)));
- caseBuilder.setPushMplsAction(mplsBuilder.build());
- builder.setActionChoice(caseBuilder.build());
- input.skipBytes(ActionConstants.ETHERTYPE_ACTION_PADDING);
- return builder.build();
+ PushMplsCase createAction(final EtherType etherType) {
+ return new PushMplsCaseBuilder()
+ .setPushMplsAction(new PushMplsActionBuilder().setEthertype(etherType).build())
+ .build();
}
}
*/
package org.opendaylight.openflowjava.protocol.impl.deserialization.action;
-import io.netty.buffer.ByteBuf;
-import org.opendaylight.openflowjava.protocol.impl.util.ActionConstants;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.PushPbbCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.PushPbbCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.push.pbb._case.PushPbbActionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.EtherType;
-import org.opendaylight.yangtools.yang.common.netty.ByteBufUtils;
/**
* OF13PushPbbActionDeserializer.
*
* @author michal.polkorab
*/
-public class OF13PushPbbActionDeserializer extends AbstractActionDeserializer<PushPbbCase> {
+public final class OF13PushPbbActionDeserializer extends AbstractEtherTypeActionDeserializer<PushPbbCase> {
public OF13PushPbbActionDeserializer() {
super(new PushPbbCaseBuilder().build());
}
@Override
- public Action deserialize(final ByteBuf input) {
- input.skipBytes(2 * Short.BYTES);
- final ActionBuilder builder = new ActionBuilder()
- .setActionChoice(new PushPbbCaseBuilder()
- .setPushPbbAction(new PushPbbActionBuilder()
- .setEthertype(new EtherType(ByteBufUtils.readUint16(input)))
- .build())
- .build());
- input.skipBytes(ActionConstants.ETHERTYPE_ACTION_PADDING);
- return builder.build();
+ PushPbbCase createAction(final EtherType etherType) {
+ return new PushPbbCaseBuilder()
+ .setPushPbbAction(new PushPbbActionBuilder().setEthertype(etherType).build())
+ .build();
}
}
*/
package org.opendaylight.openflowjava.protocol.impl.deserialization.action;
-import io.netty.buffer.ByteBuf;
-import org.opendaylight.openflowjava.protocol.impl.util.ActionConstants;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.PushVlanCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.PushVlanCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.push.vlan._case.PushVlanActionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.EtherType;
-import org.opendaylight.yangtools.yang.common.netty.ByteBufUtils;
/**
* OF13PushVlanActionDeserializer.
*
* @author michal.polkorab
*/
-public class OF13PushVlanActionDeserializer extends AbstractActionDeserializer<PushVlanCase> {
+public final class OF13PushVlanActionDeserializer extends AbstractEtherTypeActionDeserializer<PushVlanCase> {
public OF13PushVlanActionDeserializer() {
super(new PushVlanCaseBuilder().build());
}
@Override
- public Action deserialize(final ByteBuf input) {
- input.skipBytes(2 * Short.BYTES);
- final ActionBuilder builder = new ActionBuilder()
- .setActionChoice(new PushVlanCaseBuilder()
- .setPushVlanAction(new PushVlanActionBuilder()
- .setEthertype(new EtherType(ByteBufUtils.readUint16(input)))
- .build())
- .build());
- input.skipBytes(ActionConstants.ETHERTYPE_ACTION_PADDING);
- return builder.build();
+ PushVlanCase createAction(final EtherType etherType) {
+ return new PushVlanCaseBuilder()
+ .setPushVlanAction(new PushVlanActionBuilder().setEthertype(etherType).build())
+ .build();
}
}
import static java.util.Objects.requireNonNull;
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import io.netty.buffer.ByteBuf;
import java.util.List;
import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegistry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetFieldCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetFieldCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.set.field._case.SetFieldActionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
import org.opendaylight.yangtools.yang.common.Uint32;
*
* @author michal.polkorab
*/
-public class OF13SetFieldActionDeserializer extends AbstractActionDeserializer<SetFieldCase>
+public class OF13SetFieldActionDeserializer extends AbstractActionCaseDeserializer<SetFieldCase>
implements DeserializerRegistryInjector {
- private DeserializerRegistry registry;
+ private DeserializerRegistry registry = null;
public OF13SetFieldActionDeserializer() {
super(new SetFieldCaseBuilder().build());
}
@Override
- @SuppressFBWarnings("UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR") // FB doesn't recognize Objects.requireNonNull
- public Action deserialize(final ByteBuf input) {
+ public SetFieldCase deserializeAction(final ByteBuf input) {
final int startIndex = input.readerIndex();
input.skipBytes(2 * Short.BYTES);
input.skipBytes(EncodeConstants.PADDING - paddingRemainder);
}
- return new ActionBuilder()
- .setActionChoice(new SetFieldCaseBuilder()
- .setSetFieldAction(new SetFieldActionBuilder().setMatchEntry(List.of(entry)).build())
- .build())
+ return new SetFieldCaseBuilder()
+ .setSetFieldAction(new SetFieldActionBuilder().setMatchEntry(List.of(entry)).build())
.build();
}
@Override
public void injectDeserializerRegistry(final DeserializerRegistry deserializerRegistry) {
- this.registry = deserializerRegistry;
+ this.registry = requireNonNull(deserializerRegistry);
}
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetMplsTtlCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetMplsTtlCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.set.mpls.ttl._case.SetMplsTtlActionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
/**
* OF13SetMplsTtlActionDeserializer.
*
* @author michal.polkorab
*/
-public class OF13SetMplsTtlActionDeserializer extends AbstractActionDeserializer<SetMplsTtlCase> {
+public final class OF13SetMplsTtlActionDeserializer extends AbstractActionCaseDeserializer<SetMplsTtlCase> {
public OF13SetMplsTtlActionDeserializer() {
super(new SetMplsTtlCaseBuilder().build());
}
@Override
- public Action deserialize(final ByteBuf input) {
+ protected SetMplsTtlCase deserializeAction(final ByteBuf input) {
input.skipBytes(2 * Short.BYTES);
final var ttl = readUint8(input);
input.skipBytes(ActionConstants.SET_MPLS_TTL_PADDING);
- return new ActionBuilder()
- .setActionChoice(new SetMplsTtlCaseBuilder()
- .setSetMplsTtlAction(new SetMplsTtlActionBuilder().setMplsTtl(ttl).build())
- .build())
+ return new SetMplsTtlCaseBuilder()
+ .setSetMplsTtlAction(new SetMplsTtlActionBuilder().setMplsTtl(ttl).build())
.build();
}
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetNwTtlCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetNwTtlCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.set.nw.ttl._case.SetNwTtlActionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
/**
* OF13SetNwTtlActionDeserializer.
*
* @author michal.polkorab
*/
-public class OF13SetNwTtlActionDeserializer extends AbstractActionDeserializer<SetNwTtlCase> {
+public final class OF13SetNwTtlActionDeserializer extends AbstractActionCaseDeserializer<SetNwTtlCase> {
public OF13SetNwTtlActionDeserializer() {
super(new SetNwTtlCaseBuilder().build());
}
@Override
- public Action deserialize(final ByteBuf input) {
+ protected SetNwTtlCase deserializeAction(final ByteBuf input) {
input.skipBytes(2 * Short.BYTES);
final var ttl = readUint8(input);
input.skipBytes(ActionConstants.SET_NW_TTL_PADDING);
- return new ActionBuilder()
- .setActionChoice(new SetNwTtlCaseBuilder()
- .setSetNwTtlAction(new SetNwTtlActionBuilder().setNwTtl(ttl).build())
- .build())
- .build();
+ return new SetNwTtlCaseBuilder().setSetNwTtlAction(new SetNwTtlActionBuilder().setNwTtl(ttl).build()).build();
}
}
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetQueueCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetQueueCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.set.queue._case.SetQueueActionBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;
/**
* OF13SetQueueActionDeserializer.
*
* @author michal.polkorab
*/
-public class OF13SetQueueActionDeserializer extends AbstractActionDeserializer<SetQueueCase> {
+public final class OF13SetQueueActionDeserializer extends AbstractActionCaseDeserializer<SetQueueCase> {
public OF13SetQueueActionDeserializer() {
super(new SetQueueCaseBuilder().build());
}
@Override
- public Action deserialize(final ByteBuf input) {
+ protected SetQueueCase deserializeAction(final ByteBuf input) {
input.skipBytes(2 * Short.BYTES);
- return new ActionBuilder()
- .setActionChoice(new SetQueueCaseBuilder()
- .setSetQueueAction(new SetQueueActionBuilder().setQueueId(readUint32(input)).build())
- .build())
+ return new SetQueueCaseBuilder()
+ .setSetQueueAction(new SetQueueActionBuilder().setQueueId(readUint32(input)).build())
.build();
}
}