Fix checkstyle violations in openflowplugin - part 3 24/67824/5
authorTom Pantelis <tompantelis@gmail.com>
Thu, 1 Feb 2018 03:03:02 +0000 (22:03 -0500)
committerTom Pantelis <tompantelis@gmail.com>
Wed, 28 Feb 2018 16:43:37 +0000 (11:43 -0500)
Change-Id: I0d8d7f5cc6c12299d67fbdacc13aafea7c086226
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
29 files changed:
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/data/PacketOutConvertorData.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/data/VersionConvertorData.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/data/VersionDatapathIdConvertorData.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/flow/FlowConvertor.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/flow/FlowConvertorUtil.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/flow/FlowFlagsConvertor.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/flow/FlowFlagsInjector.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/flow/FlowFlagsV10Convertor.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/flow/FlowInstructionResponseConvertor.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/flow/FlowStatsResponseConvertor.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/flow/cases/ApplyActionsCase.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/flow/cases/ClearActionsCase.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/flow/cases/GoToTableCase.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/flow/cases/MeterCase.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/flow/cases/WriteActionsCase.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/flow/cases/WriteMetadataCase.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/match/MatchConvertor.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/match/MatchConvertorUtil.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/match/MatchInjector.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/match/MatchResponseConvertor.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/match/MatchV10Convertor.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/match/MatchV10ResponseConvertor.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/match/data/MatchResponseConvertorData.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/session/ExtensionSessionManagerImpl.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/session/OFSessionUtil.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/util/ActionUtil.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/util/ByteUtil.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/util/InventoryDataServiceUtil.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/util/OpenflowPortsUtil.java

index 1ae204a8ff423d9b1b674cb1b4ab10dd5cec54fb..6614cae700e52c8a452e581c287b47f0497b7a02 100644 (file)
@@ -10,7 +10,7 @@ package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data;
 
 /**
  * Convertor data used in {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.PacketOutConvertor}
- * containing Openflow version and XID
+ * containing Openflow version and XID.
  */
 public class PacketOutConvertorData extends VersionDatapathIdConvertorData {
     private Long xid;
@@ -41,4 +41,4 @@ public class PacketOutConvertorData extends VersionDatapathIdConvertorData {
     public void setXid(Long xid) {
         this.xid = xid;
     }
-}
\ No newline at end of file
+}
index af5f39b1afbff4f6c3aca67cde91c7d276b3383f..207a16378970aecd60e8f94888a1981a8a437df1 100644 (file)
@@ -11,7 +11,7 @@ package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data;
 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.common.ConvertorData;
 
 /**
- * Convertor data implementation containing only Openflow version
+ * Convertor data implementation containing only Openflow version.
  */
 public class VersionConvertorData extends ConvertorData {
     /**
@@ -22,4 +22,4 @@ public class VersionConvertorData extends ConvertorData {
     public VersionConvertorData(short version) {
         super(version);
     }
-}
\ No newline at end of file
+}
index d44545113494e4821c6ac350ab0a9e6a4ec6f02f..54eb06a22905f057e5fa222be02bab7e8936bba7 100644 (file)
@@ -11,7 +11,7 @@ package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data;
 import java.math.BigInteger;
 
 /**
- * Convertor data implementation containing Openflow version and datapath ID
+ * Convertor data implementation containing Openflow version and datapath ID.
  */
 public class VersionDatapathIdConvertorData extends VersionConvertorData {
     private BigInteger datapathId;
index 049eba6c8a65d099123af2a13cb32e7693215840..ad37b2fb625516529af55dc046e34fb30ce398f2 100644 (file)
@@ -69,6 +69,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
  * Converts the SAL Flow to OF Flow. It checks if there is a set-vlan-id (1.0) action made on OF1.3.
  * If yes its handled separately.
  *
+ * <p>
  * Example usage:
  * <pre>
  * {@code
@@ -80,47 +81,57 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
  */
 public class FlowConvertor extends Convertor<Flow, List<FlowModInputBuilder>, VersionDatapathIdConvertorData> {
     /**
-     * Default idle timeout
+     * Default idle timeout.
      */
     public static final Integer DEFAULT_IDLE_TIMEOUT = 0;
+
     /**
-     * Default hard timeout
+     * Default hard timeout.
      */
     public static final Integer DEFAULT_HARD_TIMEOUT = 0;
+
     /**
-     * Default priority
+     * Default priority.
      */
     public static final Integer DEFAULT_PRIORITY = Integer.parseInt("8000", 16);
+
     /**
-     * flow flag: remove
+     * flow flag: remove.
      */
     public static final boolean DEFAULT_OFPFF_FLOW_REM = false;
+
     /**
-     * flow flag: check overlap
+     * flow flag: check overlap.
      */
     public static final boolean DEFAULT_OFPFF_CHECK_OVERLAP = false;
+
     /**
-     * flow flag: reset counts
+     * flow flag: reset counts.
      */
     public static final boolean DEFAULT_OFPFF_RESET_COUNTS = false;
+
     /**
-     * flow flag: don't keep track of packet counts
+     * flow flag: don't keep track of packet counts.
      */
     public static final boolean DEFAULT_OFPFF_NO_PKT_COUNTS = false;
+
     /**
-     * flow flag: don't keep track of byte counts
+     * flow flag: don't keep track of byte counts.
      */
     public static final boolean DEFAULT_OFPFF_NO_BYT_COUNTS = false;
+
     /**
-     * flow flag: emergency [OFP-1.0]
+     * flow flag: emergency [OFP-1.0].
      */
     public static final boolean DEFAULT_OFPFF_EMERGENCY = false;
+
     /**
-     * OxmMatch type
+     * OxmMatch type.
      */
     public static final Class<? extends MatchTypeBase> DEFAULT_MATCH_TYPE = OxmMatchType.class;
+
     /**
-     * default match entries - empty
+     * default match entries - empty.
      */
     public static final List<MatchEntry> DEFAULT_MATCH_ENTRIES = new ArrayList<>();
 
@@ -132,17 +143,23 @@ public class FlowConvertor extends Convertor<Flow, List<FlowModInputBuilder>, Ve
     private static final Long OFPG_ANY = Long.parseLong("ffffffff", 16);
     private static final Long DEFAULT_OUT_GROUP = OFPG_ANY;
     private static final Integer PUSH_VLAN = 0x8100;
-    private static final Ordering<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction> INSTRUCTION_ORDERING = Ordering.from(OrderComparator.build());
+    private static final Ordering<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction
+        .list.Instruction> INSTRUCTION_ORDERING = Ordering.from(OrderComparator.build());
     private static final VlanMatch VLAN_MATCH_FALSE;
     private static final VlanMatch VLAN_MATCH_TRUE;
-    private static final ConvertorProcessor<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.Instruction, Instruction, ActionConvertorData> PROCESSOR = new ConvertorProcessor<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.Instruction, Instruction, ActionConvertorData>()
+    private static final ConvertorProcessor<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026
+        .instruction.Instruction, Instruction, ActionConvertorData> PROCESSOR =
+            new ConvertorProcessor<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026
+                .instruction.Instruction, Instruction, ActionConvertorData>()
             .addCase(new ApplyActionsCase())
             .addCase(new ClearActionsCase())
             .addCase(new GoToTableCase())
             .addCase(new MeterCase())
             .addCase(new WriteActionsCase())
             .addCase(new WriteMetadataCase());
-    private static final List<Class<?>> TYPES = Arrays.asList(Flow.class, AddFlowInput.class, RemoveFlowInput.class, UpdatedFlow.class);
+
+    private static final List<Class<?>> TYPES = Arrays.asList(Flow.class, AddFlowInput.class,
+            RemoveFlowInput.class, UpdatedFlow.class);
 
     static {
         final VlanId zeroVlan = new VlanId(0);
@@ -186,11 +203,14 @@ public class FlowConvertor extends Convertor<Flow, List<FlowModInputBuilder>, Ve
         MatchInjector.inject(conversionMatch, flowMod, versionConverterData.getVersion());
 
         if (flow.getInstructions() != null) {
-            flowMod.setInstruction(toInstructions(flow, versionConverterData.getVersion(), versionConverterData.getDatapathId()));
-            flowMod.setAction(getActions(versionConverterData.getVersion(), versionConverterData.getDatapathId(), flow));
+            flowMod.setInstruction(toInstructions(flow, versionConverterData.getVersion(),
+                    versionConverterData.getDatapathId()));
+            flowMod.setAction(getActions(versionConverterData.getVersion(),
+                    versionConverterData.getDatapathId(), flow));
         }
 
-        flowMod.setVersion(versionConverterData.getVersion());        return flowMod;
+        flowMod.setVersion(versionConverterData.getVersion());
+        return flowMod;
     }
 
     private static void salToOFFlowOutGroup(Flow flow, FlowModInputBuilder flowMod) {
@@ -285,10 +305,10 @@ public class FlowConvertor extends Convertor<Flow, List<FlowModInputBuilder>, Ve
 
         Instructions instructions = flow.getInstructions();
 
-        for (org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction instruction : instructions
-                .getInstruction()) {
-            org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.Instruction curInstruction = instruction
-                    .getInstruction();
+        for (org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction
+                instruction : instructions.getInstruction()) {
+            org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.Instruction
+                curInstruction = instruction.getInstruction();
 
             Optional<Instruction> result = PROCESSOR.process(curInstruction, data, getConvertorExecutor());
 
@@ -302,15 +322,19 @@ public class FlowConvertor extends Convertor<Flow, List<FlowModInputBuilder>, Ve
 
     private List<Action> getActions(short version, BigInteger datapathid, Flow flow) {
         Instructions instructions = flow.getInstructions();
-        List<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction> sortedInstructions =
-                INSTRUCTION_ORDERING.sortedCopy(instructions.getInstruction());
-
-        for (org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction instruction : sortedInstructions) {
-            org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.Instruction curInstruction = instruction
-                    .getInstruction();
-
-            if (curInstruction instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.ApplyActionsCase) {
-                org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.ApplyActionsCase applyActionscase = (org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.ApplyActionsCase) curInstruction;
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction>
+            sortedInstructions = INSTRUCTION_ORDERING.sortedCopy(instructions.getInstruction());
+
+        for (org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction
+                instruction : sortedInstructions) {
+            org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.Instruction
+                curInstruction = instruction.getInstruction();
+
+            if (curInstruction instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026
+                    .instruction.instruction.ApplyActionsCase) {
+                org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction
+                    .ApplyActionsCase applyActionscase = (org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types
+                            .rev131026.instruction.instruction.ApplyActionsCase) curInstruction;
                 ApplyActions applyActions = applyActionscase.getApplyActions();
 
                 final ActionConvertorData data = new ActionConvertorData(version);
@@ -329,16 +353,19 @@ public class FlowConvertor extends Convertor<Flow, List<FlowModInputBuilder>, Ve
         // we are trying to find if there is a set-vlan-id action (OF1.0) action present in the flow.
         // If yes,then we would need to two flows
         if (flow.getInstructions() != null && flow.getInstructions().getInstruction() != null) {
-            for (org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction instruction :
-                    flow.getInstructions().getInstruction()) {
-                org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.Instruction curInstruction =
-                        instruction.getInstruction();
-
-                if (curInstruction instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.ApplyActionsCase) {
-                    org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.ApplyActionsCase applyActionscase = (org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.ApplyActionsCase) curInstruction;
+            for (org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction
+                    instruction : flow.getInstructions().getInstruction()) {
+                org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.Instruction
+                    curInstruction = instruction.getInstruction();
+
+                if (curInstruction instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026
+                        .instruction.instruction.ApplyActionsCase) {
+                    org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction
+                        .ApplyActionsCase applyActionscase = (org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types
+                                .rev131026.instruction.instruction.ApplyActionsCase) curInstruction;
                     ApplyActions applyActions = applyActionscase.getApplyActions();
-                    for (org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action action :
-                            applyActions.getAction()) {
+                    for (org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action
+                            action : applyActions.getAction()) {
                         if (action.getAction() instanceof SetVlanIdActionCase) {
                             return true;
                         }
@@ -352,14 +379,15 @@ public class FlowConvertor extends Convertor<Flow, List<FlowModInputBuilder>, Ve
 
     /**
      * A) If user provided flow's match includes vlan match Â and action has set_vlan_field
-     * Install following rules
+     * Install following rules.
      * Â  Â 1) match on (OFPVID_PRESENT |value) without mask + action [set_field]
      * <p/>
      * B) if user provided flow's match doesn't include vlan match but action has set_vlan field
      * Â  Â  1) Match on (OFPVID_NONE ) without mask + action [push vlan tag + set_field]
      * Â  Â  2) Match on (OFPVID_PRESENT) with mask (OFPVID_PRESENT ) + action [ set_field]
      */
-    private List<FlowModInputBuilder> handleSetVlanIdForOF13(Flow srcFlow, VersionDatapathIdConvertorData versionDatapathIdConverterData) {
+    private List<FlowModInputBuilder> handleSetVlanIdForOF13(Flow srcFlow,
+            VersionDatapathIdConvertorData versionDatapathIdConverterData) {
         List<FlowModInputBuilder> list = new ArrayList<>(2);
 
         final Match srcMatch = Preconditions.checkNotNull(srcFlow.getMatch());
@@ -415,7 +443,7 @@ public class FlowConvertor extends Convertor<Flow, List<FlowModInputBuilder>, Ve
 
     private static Optional<? extends Flow> injectMatchAndAction(Flow sourceFlow, Match match) {
 
-        Instructions instructions = (new InstructionsBuilder())
+        Instructions instructions = new InstructionsBuilder()
                 .setInstruction(injectPushActionToInstruction(sourceFlow))
                 .build();
 
@@ -434,28 +462,37 @@ public class FlowConvertor extends Convertor<Flow, List<FlowModInputBuilder>, Ve
     }
 
     private static List<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction>
-    injectPushActionToInstruction(final Flow sourceFlow) {
-
-        List<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction> srcInstructionList =
-                sourceFlow.getInstructions().getInstruction();
-
-        List<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction> targetInstructionList = new ArrayList<>(srcInstructionList.size());
-        List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action> targetActionList = new ArrayList<>();
-
-        org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.InstructionBuilder instructionBuilder =
-                new org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.InstructionBuilder();
-
-        for (org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction srcInstruction : srcInstructionList) {
-            org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.Instruction curSrcInstruction =
-                    srcInstruction.getInstruction();
-
-            if (curSrcInstruction instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.ApplyActionsCase) {
-                org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.ApplyActionsCase applyActionscase = (org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.ApplyActionsCase) curSrcInstruction;
+            injectPushActionToInstruction(final Flow sourceFlow) {
+
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction>
+            srcInstructionList = sourceFlow.getInstructions().getInstruction();
+
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction>
+            targetInstructionList = new ArrayList<>(srcInstructionList.size());
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action>
+            targetActionList = new ArrayList<>();
+
+        org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.InstructionBuilder
+            instructionBuilder = new org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction
+                .list.InstructionBuilder();
+
+        for (org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction
+                srcInstruction : srcInstructionList) {
+            org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.Instruction
+                curSrcInstruction = srcInstruction.getInstruction();
+
+            if (curSrcInstruction instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026
+                    .instruction.instruction.ApplyActionsCase) {
+                org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction
+                    .ApplyActionsCase applyActionscase = (org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types
+                            .rev131026.instruction.instruction.ApplyActionsCase) curSrcInstruction;
                 ApplyActions applyActions = applyActionscase.getApplyActions();
-                List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action> srcActionList = applyActions.getAction();
+                List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action>
+                     srcActionList = applyActions.getAction();
 
                 int offset = 0;
-                for (org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action actionItem : srcActionList) {
+                for (org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action
+                        actionItem : srcActionList) {
                     // check if its a set-vlan-action. If yes, then add the injected-action
 
                     if (actionItem.getAction() instanceof SetVlanIdActionCase) {
index ac765e115841a02afbc79aefc31304097d2903cb..58c1627a23c2bfbc34fea4f32da9d04f7d7576d3 100644 (file)
@@ -16,19 +16,23 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.acti
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.Flow;
 
 /**
- * Flow related utils
+ * Flow related utils.
  */
-public abstract class FlowConvertorUtil {
+public final class FlowConvertorUtil {
+    private FlowConvertorUtil() {
+    }
 
     /**
-     * Method wrapping all the actions org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action
-     * in org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action, to set appropriate keys
-     * for actions.
+     * Method wrapping all the actions
+     * org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action
+     * in org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action, to set
+     * appropriate keys for actions.
      *
      * @param actionList the action list
      * @return the list
      */
-    public static List<Action> wrapActionList(List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action> actionList) {
+    public static List<Action> wrapActionList(List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types
+            .rev131112.action.Action> actionList) {
         List<Action> actions = new ArrayList<>();
 
         int actionKey = 0;
index 00e3f7a3fd30a9249e567236cf0e387991daa2df..3046d791d6f2fc5d2b055a733d2fdc769d74090e 100644 (file)
@@ -43,10 +43,11 @@ public class FlowFlagsConvertor extends Convertor<
     }
 
     @Override
-    public FlowModFlags convert(final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.FlowModFlags source,
-                                final VersionConvertorData data) {
+    public FlowModFlags convert(
+            final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.FlowModFlags source,
+            final VersionConvertorData data) {
         return new FlowModFlags(
                 source.isCHECKOVERLAP(), source.isNOBYTCOUNTS(), source.isNOPKTCOUNTS(),
                 source.isRESETCOUNTS(), source.isSENDFLOWREM());
     }
-}
\ No newline at end of file
+}
index b33b3d2c5345de08821c8897105ef771d9b3bc5b..168931d11189f45d5fca1057ca07ff3541521a86 100644 (file)
@@ -19,22 +19,25 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev13
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.FlowModFlagsV10;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.FlowModInputBuilder;
 
-public class FlowFlagsInjector {
+public final class FlowFlagsInjector {
+    private FlowFlagsInjector() {
+    }
+
     @SuppressWarnings("unchecked")
-    public static <FROM, TO> void inject(Optional<FROM> source, TO target, short version) {
-        FROM sourceResult;
+    public static <F, T> void inject(Optional<F> source, T target, short version) {
+        F sourceResult;
         if (source.isPresent()) {
             sourceResult = source.get();
         } else if (version == EncodeConstants.OF10_VERSION_ID) {
-            sourceResult = (FROM) FlowFlagsV10Convertor.defaultResult();
+            sourceResult = (F) FlowFlagsV10Convertor.defaultResult();
         } else {
-            sourceResult = (FROM) FlowFlagsConvertor.defaultResult();
+            sourceResult = (F) FlowFlagsConvertor.defaultResult();
         }
 
         final Map<ConvertorKey, ResultInjector<?, ?>> injectorMap = new HashMap<>();
         addInjectors(injectorMap);
 
-        final ResultInjector<FROM, TO> injection = (ResultInjector<FROM, TO>) injectorMap
+        final ResultInjector<F, T> injection = (ResultInjector<F, T>) injectorMap
                 .get(new ConvertorKey(version, target.getClass()));
 
         injection.inject(sourceResult, target);
@@ -43,22 +46,10 @@ public class FlowFlagsInjector {
     private static void addInjectors(final Map<ConvertorKey, ResultInjector<?, ?>> injectionMapping) {
         // OF-1.3|FlowModFlags --> FlowModInputBuilder
         injectionMapping.put(new ConvertorKey(OFConstants.OFP_VERSION_1_3, FlowModInputBuilder.class),
-                new ResultInjector<FlowModFlags, FlowModInputBuilder>() {
-                    @Override
-                    public void inject(final FlowModFlags value,
-                                       final FlowModInputBuilder target) {
-                        target.setFlags(value);
-                    }
-                });
+            (ResultInjector<FlowModFlags, FlowModInputBuilder>)(value, target) -> target.setFlags(value));
 
         // OF-1.3|FlowModFlagsV10 --> FlowModInputBuilder
         injectionMapping.put(new ConvertorKey(OFConstants.OFP_VERSION_1_0, FlowModInputBuilder.class),
-                new ResultInjector<FlowModFlagsV10, FlowModInputBuilder>() {
-                    @Override
-                    public void inject(final FlowModFlagsV10 value,
-                                       final FlowModInputBuilder target) {
-                        target.setFlagsV10(value);
-                    }
-                });
+            (ResultInjector<FlowModFlagsV10, FlowModInputBuilder>)(value, target) -> target.setFlagsV10(value));
     }
-}
\ No newline at end of file
+}
index 38fca813b7f753ec675703d25c6c49b387e0f5b6..f1acaa2a09b1a589c93025541bfd3a5bee645d45 100644 (file)
@@ -19,6 +19,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev13
 public class FlowFlagsV10Convertor extends Convertor<FlowModFlags, FlowModFlagsV10, VersionConvertorData> {
     private static final List<Class<?>> TYPES = Collections.singletonList(
             org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.FlowModFlags.class);
+
     /**
      * Create default empty flow flags
      * Use this method, if result from converter is empty.
@@ -40,4 +41,4 @@ public class FlowFlagsV10Convertor extends Convertor<FlowModFlags, FlowModFlagsV
         return new FlowModFlagsV10(
                 source.isCHECKOVERLAP(), FlowConvertor.DEFAULT_OFPFF_EMERGENCY, source.isSENDFLOWREM());
     }
-}
\ No newline at end of file
+}
index f7dd39d9afa6ccd4d21f3514d247595ecd305b56..0d06b0183d124ab9336d35b3b40992f13af4f093 100644 (file)
@@ -44,8 +44,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.WriteActionsCase;
 
 /**
- * Converts Openflow 1.3+ specific instructions to MD-SAL format flow instruction
+ * Converts Openflow 1.3+ specific instructions to MD-SAL format flow instruction.
  *
+ * <p>
  * Example usage:
  * <pre>
  * {@code
@@ -55,11 +56,13 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction
  * </pre>
  */
 public final class FlowInstructionResponseConvertor extends Convertor<
-        List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction>,
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions
+            .grouping.Instruction>,
         Instructions,
         VersionConvertorData> {
 
-    private static final Set<Class<?>> TYPES = Collections.singleton(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction.class);
+    private static final Set<Class<?>> TYPES = Collections.singleton(org.opendaylight.yang.gen.v1.urn.opendaylight
+            .openflow.common.instruction.rev130731.instructions.grouping.Instruction.class);
 
     @Override
     public Collection<Class<?>> getTypes() {
@@ -67,30 +70,34 @@ public final class FlowInstructionResponseConvertor extends Convertor<
     }
 
     @Override
-    public Instructions convert(List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction> source, VersionConvertorData data) {
+    public Instructions convert(List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction
+            .rev130731.instructions.grouping.Instruction> source, VersionConvertorData data) {
         InstructionsBuilder instructionsBuilder = new InstructionsBuilder();
 
         List<Instruction> salInstructionList = new ArrayList<>();
         int instructionTreeNodekey = 0;
         org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.Instruction salInstruction;
 
-        for (org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.
-                Instruction switchInst : source) {
+        for (org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping
+                .Instruction switchInst : source) {
             if (switchInst.getInstructionChoice() instanceof ApplyActionsCase) {
                 ApplyActionsCase actionsInstruction = (ApplyActionsCase) switchInst.getInstructionChoice();
                 ApplyActionsCaseBuilder applyActionsCaseBuilder = new ApplyActionsCaseBuilder();
                 ApplyActionsBuilder applyActionsBuilder = new ApplyActionsBuilder();
 
-                final ActionResponseConvertorData actionResponseConvertorData = new ActionResponseConvertorData(data.getVersion());
+                final ActionResponseConvertorData actionResponseConvertorData =
+                        new ActionResponseConvertorData(data.getVersion());
                 actionResponseConvertorData.setActionPath(ActionPath.FLOWS_STATISTICS_UPDATE_APPLY_ACTIONS);
 
                 final Optional<List<Action>> actions = getConvertorExecutor().convert(
                         actionsInstruction.getApplyActions().getAction(), actionResponseConvertorData);
 
-                applyActionsBuilder.setAction(FlowConvertorUtil.wrapActionList(actions.orElse(Collections.emptyList())));
+                applyActionsBuilder.setAction(FlowConvertorUtil.wrapActionList(
+                        actions.orElse(Collections.emptyList())));
                 applyActionsCaseBuilder.setApplyActions(applyActionsBuilder.build());
                 salInstruction = applyActionsCaseBuilder.build();
-            } else if (switchInst.getInstructionChoice() instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.ClearActionsCase) {
+            } else if (switchInst.getInstructionChoice() instanceof org.opendaylight.yang.gen.v1.urn.opendaylight
+                    .openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.ClearActionsCase) {
                 ClearActionsCaseBuilder clearActionsCaseBuilder = new ClearActionsCaseBuilder();
                 salInstruction = clearActionsCaseBuilder.build();
             } else if (switchInst.getInstructionChoice() instanceof GotoTableCase) {
@@ -116,22 +123,30 @@ public final class FlowInstructionResponseConvertor extends Convertor<
                 WriteActionsCaseBuilder writeActionsCaseBuilder = new WriteActionsCaseBuilder();
                 WriteActionsBuilder writeActionsBuilder = new WriteActionsBuilder();
 
-                final ActionResponseConvertorData actionResponseConvertorData = new ActionResponseConvertorData(data.getVersion());
+                final ActionResponseConvertorData actionResponseConvertorData =
+                        new ActionResponseConvertorData(data.getVersion());
                 actionResponseConvertorData.setActionPath(ActionPath.FLOWS_STATISTICS_UPDATE_WRITE_ACTIONS);
 
                 final Optional<List<Action>> actions = getConvertorExecutor().convert(
                         writeActionsCase.getWriteActions().getAction(), actionResponseConvertorData);
 
-                writeActionsBuilder.setAction(FlowConvertorUtil.wrapActionList(actions.orElse(Collections.emptyList())));
+                writeActionsBuilder.setAction(FlowConvertorUtil.wrapActionList(
+                        actions.orElse(Collections.emptyList())));
                 writeActionsCaseBuilder.setWriteActions(writeActionsBuilder.build());
                 salInstruction = writeActionsCaseBuilder.build();
-            } else if (switchInst.getInstructionChoice() instanceof org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.WriteMetadataCase) {
-                org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.WriteMetadataCase writeMetadataCase =
-                        (org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.WriteMetadataCase) switchInst.getInstructionChoice();
+            } else if (switchInst.getInstructionChoice() instanceof org.opendaylight.yang.gen.v1.urn.opendaylight
+                    .openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.WriteMetadataCase) {
+                org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction
+                    .grouping.instruction.choice.WriteMetadataCase writeMetadataCase =
+                        (org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731
+                            .instruction.grouping.instruction.choice.WriteMetadataCase) switchInst
+                                .getInstructionChoice();
                 WriteMetadataCaseBuilder writeMetadataCaseBuilder = new WriteMetadataCaseBuilder();
                 WriteMetadataBuilder writeMetadataBuilder = new WriteMetadataBuilder();
-                writeMetadataBuilder.setMetadata(new BigInteger(OFConstants.SIGNUM_UNSIGNED, writeMetadataCase.getWriteMetadata().getMetadata()));
-                writeMetadataBuilder.setMetadataMask(new BigInteger(OFConstants.SIGNUM_UNSIGNED, writeMetadataCase.getWriteMetadata().getMetadataMask()));
+                writeMetadataBuilder.setMetadata(new BigInteger(OFConstants.SIGNUM_UNSIGNED,
+                        writeMetadataCase.getWriteMetadata().getMetadata()));
+                writeMetadataBuilder.setMetadataMask(new BigInteger(OFConstants.SIGNUM_UNSIGNED,
+                        writeMetadataCase.getWriteMetadata().getMetadataMask()));
                 writeMetadataCaseBuilder.setWriteMetadata(writeMetadataBuilder.build());
                 salInstruction = writeMetadataCaseBuilder.build();
             } else {
index 868ad08b54623d6bbd236cb2d502d5b92784b36e..951614ccf7024d85e15459ccc880d7309b450485 100644 (file)
@@ -44,6 +44,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 /**
  * Converts flow related statistics messages coming from openflow switch to MD-SAL messages.
  *
+ * <p>
  * Example usage:
  * <pre>
  * {@code
@@ -53,32 +54,31 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
  * }
  * </pre>
  */
-public class FlowStatsResponseConvertor extends Convertor<List<FlowStats>, List<FlowAndStatisticsMapList>, FlowStatsResponseConvertorData> {
+public class FlowStatsResponseConvertor extends Convertor<List<FlowStats>, List<FlowAndStatisticsMapList>,
+        FlowStatsResponseConvertorData> {
 
     private static final Set<Class<?>> TYPES = Collections.singleton(FlowStats.class);
 
     /**
-     * Method wraps openflow 1.0 actions list to Apply Action Instructions
+     * Method wraps openflow 1.0 actions list to Apply Action Instructions.
      *
      * @param actionsList list of action
      * @param ipProtocol ip protocol
      * @return OF10 actions as an instructions
      */
-    private Instructions wrapOF10ActionsToInstruction(List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action> actionsList,
-                                                      final short version,
-                                                      final Short ipProtocol) {
+    private Instructions wrapOF10ActionsToInstruction(
+            List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions
+                .grouping.Action> actionsList,
+            final short version, final Short ipProtocol) {
         ActionResponseConvertorData actionResponseConvertorData = new ActionResponseConvertorData(version);
         actionResponseConvertorData.setActionPath(ActionPath.FLOWS_STATISTICS_UPDATE_WRITE_ACTIONS);
         actionResponseConvertorData.setIpProtocol(ipProtocol);
 
-        InstructionsBuilder instructionsBuilder = new InstructionsBuilder();
-        List<Instruction> salInstructionList = new ArrayList<>();
-
         ApplyActionsCaseBuilder applyActionsCaseBuilder = new ApplyActionsCaseBuilder();
         ApplyActionsBuilder applyActionsBuilder = new ApplyActionsBuilder();
 
-        final Optional<List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action>> actions = getConvertorExecutor().convert(
-                actionsList, actionResponseConvertorData);
+        final Optional<List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action>>
+            actions = getConvertorExecutor().convert(actionsList, actionResponseConvertorData);
 
         applyActionsBuilder.setAction(FlowConvertorUtil.wrapActionList(actions.orElse(Collections.emptyList())));
         applyActionsCaseBuilder.setApplyActions(applyActionsBuilder.build());
@@ -87,8 +87,10 @@ public class FlowStatsResponseConvertor extends Convertor<List<FlowStats>, List<
         instBuilder.setInstruction(applyActionsCaseBuilder.build());
         instBuilder.setKey(new InstructionKey(0));
         instBuilder.setOrder(0);
+        List<Instruction> salInstructionList = new ArrayList<>();
         salInstructionList.add(instBuilder.build());
 
+        InstructionsBuilder instructionsBuilder = new InstructionsBuilder();
         instructionsBuilder.setInstruction(salInstructionList);
         return instructionsBuilder.build();
     }
@@ -125,7 +127,8 @@ public class FlowStatsResponseConvertor extends Convertor<List<FlowStats>, List<
             Short ipProtocol = null;
 
             if (flowStats.getMatchV10() != null) {
-                final Optional<MatchBuilder> matchBuilderOptional = getConvertorExecutor().convert(flowStats.getMatchV10(), data);
+                final Optional<MatchBuilder> matchBuilderOptional = getConvertorExecutor().convert(
+                        flowStats.getMatchV10(), data);
 
                 if (matchBuilderOptional.isPresent()) {
                     if (Objects.nonNull(matchBuilderOptional.get().getIpMatch())) {
@@ -136,12 +139,14 @@ public class FlowStatsResponseConvertor extends Convertor<List<FlowStats>, List<
                 }
 
                 if (flowStats.getAction() != null && flowStats.getAction().size() != 0) {
-                    salFlowStatsBuilder.setInstructions(wrapOF10ActionsToInstruction(flowStats.getAction(), data.getVersion(), ipProtocol));
+                    salFlowStatsBuilder.setInstructions(wrapOF10ActionsToInstruction(flowStats.getAction(),
+                            data.getVersion(), ipProtocol));
                 }
             }
 
             if (flowStats.getMatch() != null) {
-                final Optional<MatchBuilder> matchBuilderOptional = getConvertorExecutor().convert(flowStats.getMatch(), data);
+                final Optional<MatchBuilder> matchBuilderOptional = getConvertorExecutor().convert(
+                        flowStats.getMatch(), data);
 
                 if (matchBuilderOptional.isPresent()) {
                     final MatchBuilder matchBuilder = matchBuilderOptional.get();
@@ -153,7 +158,8 @@ public class FlowStatsResponseConvertor extends Convertor<List<FlowStats>, List<
                                     data.getMatchPath());
 
                     if (matchExtensionWrap != null) {
-                        matchBuilder.addAugmentation(matchExtensionWrap.getAugmentationClass(), matchExtensionWrap.getAugmentationObject());
+                        matchBuilder.addAugmentation(matchExtensionWrap.getAugmentationClass(),
+                                matchExtensionWrap.getAugmentationObject());
                     }
 
                     salFlowStatsBuilder.setMatch(matchBuilder.build());
index 139cd8cc47291a4d3137289f1f077be2ee7dc54f..ccb543957efcee825ba4d8f394d90cc7544b7bb0 100644 (file)
@@ -23,13 +23,17 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction
 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.instruction.rev130731.instructions.grouping.InstructionBuilder;
 
-public class ApplyActionsCase extends ConvertorCase<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.ApplyActionsCase, Instruction, ActionConvertorData> {
+public class ApplyActionsCase extends ConvertorCase<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types
+        .rev131026.instruction.instruction.ApplyActionsCase, Instruction, ActionConvertorData> {
     public ApplyActionsCase() {
-        super(org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.ApplyActionsCase.class, true, OFConstants.OFP_VERSION_1_0, OFConstants.OFP_VERSION_1_3);
+        super(org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction
+                .ApplyActionsCase.class, true, OFConstants.OFP_VERSION_1_0, OFConstants.OFP_VERSION_1_3);
     }
 
     @Override
-    public Optional<Instruction> process(final @Nonnull org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.ApplyActionsCase source, final ActionConvertorData data, ConvertorExecutor convertorExecutor) {
+    public Optional<Instruction> process(final @Nonnull org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types
+            .rev131026.instruction.instruction.ApplyActionsCase source, final ActionConvertorData data,
+            ConvertorExecutor convertorExecutor) {
         ApplyActions applyActions = source.getApplyActions();
         ApplyActionsCaseBuilder applyActionsCaseBuilder = new ApplyActionsCaseBuilder();
         ApplyActionsBuilder applyActionsBuilder = new ApplyActionsBuilder();
index c167ceffaa76369886041bbc0060a6ce0188d3c5..ffd81debe2198485b969b6ba80a3c1e08fecb297 100644 (file)
@@ -18,13 +18,17 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction
 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.instruction.rev130731.instructions.grouping.InstructionBuilder;
 
-public class ClearActionsCase extends ConvertorCase<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.ClearActionsCase, Instruction, ActionConvertorData> {
+public class ClearActionsCase extends ConvertorCase<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026
+        .instruction.instruction.ClearActionsCase, Instruction, ActionConvertorData> {
     public ClearActionsCase() {
-        super(org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.ClearActionsCase.class, true, OFConstants.OFP_VERSION_1_0, OFConstants.OFP_VERSION_1_3);
+        super(org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction
+                .ClearActionsCase.class, true, OFConstants.OFP_VERSION_1_0, OFConstants.OFP_VERSION_1_3);
     }
 
     @Override
-    public Optional<Instruction> process(final @Nonnull org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.ClearActionsCase source, final ActionConvertorData data, ConvertorExecutor convertorExecutor) {
+    public Optional<Instruction> process(final @Nonnull org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types
+            .rev131026.instruction.instruction.ClearActionsCase source, final ActionConvertorData data,
+            ConvertorExecutor convertorExecutor) {
         ClearActionsCaseBuilder clearActionsCaseBuilder = new ClearActionsCaseBuilder();
         InstructionBuilder instructionBuilder = new InstructionBuilder();
         instructionBuilder.setInstructionChoice(clearActionsCaseBuilder.build());
index 997f6b6f15eb3be8308ea006b7627e8b13dee04e..a84b2c4cb3b59a995c514da5f1f6d166b43116bb 100644 (file)
@@ -20,13 +20,17 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction
 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.instruction.rev130731.instructions.grouping.InstructionBuilder;
 
-public class GoToTableCase extends ConvertorCase<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.GoToTableCase, Instruction, ActionConvertorData> {
+public class GoToTableCase extends ConvertorCase<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026
+        .instruction.instruction.GoToTableCase, Instruction, ActionConvertorData> {
     public GoToTableCase() {
-        super(org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.GoToTableCase.class, true, OFConstants.OFP_VERSION_1_0, OFConstants.OFP_VERSION_1_3);
+        super(org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction
+                .GoToTableCase.class, true, OFConstants.OFP_VERSION_1_0, OFConstants.OFP_VERSION_1_3);
     }
 
     @Override
-    public Optional<Instruction> process(final @Nonnull org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.GoToTableCase source, final ActionConvertorData data, ConvertorExecutor convertorExecutor) {
+    public Optional<Instruction> process(final @Nonnull org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types
+            .rev131026.instruction.instruction.GoToTableCase source, final ActionConvertorData data,
+            ConvertorExecutor convertorExecutor) {
         GoToTable goToTable = source.getGoToTable();
         GotoTableCaseBuilder gotoTableCaseBuilder = new GotoTableCaseBuilder();
         GotoTableBuilder gotoTableBuilder = new GotoTableBuilder();
index 293fd39ebfc6d7d138dcc41611b6be7f2907cb64..583b5a35c1a9c1ac087bd0f94eed426f5e77bb58 100644 (file)
@@ -20,13 +20,17 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction
 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.instruction.rev130731.instructions.grouping.InstructionBuilder;
 
-public class MeterCase extends ConvertorCase<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.MeterCase, Instruction, ActionConvertorData> {
+public class MeterCase extends ConvertorCase<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026
+        .instruction.instruction.MeterCase, Instruction, ActionConvertorData> {
     public MeterCase() {
-        super(org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.MeterCase.class, true, OFConstants.OFP_VERSION_1_0, OFConstants.OFP_VERSION_1_3);
+        super(org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction
+                .MeterCase.class, true, OFConstants.OFP_VERSION_1_0, OFConstants.OFP_VERSION_1_3);
     }
 
     @Override
-    public Optional<Instruction> process(final @Nonnull org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.MeterCase source, final ActionConvertorData data, ConvertorExecutor convertorExecutor) {
+    public Optional<Instruction> process(final @Nonnull org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types
+            .rev131026.instruction.instruction.MeterCase source, final ActionConvertorData data,
+            ConvertorExecutor convertorExecutor) {
         Meter meter = source.getMeter();
         MeterCaseBuilder meterCaseBuilder = new MeterCaseBuilder();
         MeterBuilder meterBuilder = new MeterBuilder();
index 198bbd1ca365a25a0824f3e3d0cc6fac50f94bf0..78da0a16d88c454b40def5b33e88e7699a94b3c9 100644 (file)
@@ -23,13 +23,17 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction
 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.instruction.rev130731.instructions.grouping.InstructionBuilder;
 
-public class WriteActionsCase extends ConvertorCase<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.WriteActionsCase, Instruction, ActionConvertorData> {
+public class WriteActionsCase extends ConvertorCase<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026
+        .instruction.instruction.WriteActionsCase, Instruction, ActionConvertorData> {
     public WriteActionsCase() {
-        super(org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.WriteActionsCase.class, true, OFConstants.OFP_VERSION_1_0, OFConstants.OFP_VERSION_1_3);
+        super(org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction
+                .WriteActionsCase.class, true, OFConstants.OFP_VERSION_1_0, OFConstants.OFP_VERSION_1_3);
     }
 
     @Override
-    public Optional<Instruction> process(final @Nonnull org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.WriteActionsCase source, final ActionConvertorData data, ConvertorExecutor convertorExecutor) {
+    public Optional<Instruction> process(final @Nonnull org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types
+            .rev131026.instruction.instruction.WriteActionsCase source, final ActionConvertorData data,
+            ConvertorExecutor convertorExecutor) {
         WriteActions writeActions = source.getWriteActions();
         WriteActionsCaseBuilder writeActionsCaseBuilder = new WriteActionsCaseBuilder();
         WriteActionsBuilder writeActionsBuilder = new WriteActionsBuilder();
index 20938e845a318f22b742681f27ed6e154397f3a7..1553efce685ec906064ac8393db190917cb8da30 100644 (file)
@@ -21,18 +21,24 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction
 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.instruction.rev130731.instructions.grouping.InstructionBuilder;
 
-public class WriteMetadataCase extends ConvertorCase<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.WriteMetadataCase, Instruction, ActionConvertorData> {
+public class WriteMetadataCase extends ConvertorCase<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types
+        .rev131026.instruction.instruction.WriteMetadataCase, Instruction, ActionConvertorData> {
     public WriteMetadataCase() {
-        super(org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.WriteMetadataCase.class, true, OFConstants.OFP_VERSION_1_0, OFConstants.OFP_VERSION_1_3);
+        super(org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction
+                .WriteMetadataCase.class, true, OFConstants.OFP_VERSION_1_0, OFConstants.OFP_VERSION_1_3);
     }
 
     @Override
-    public Optional<Instruction> process(final @Nonnull org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.WriteMetadataCase source, final ActionConvertorData data, ConvertorExecutor convertorExecutor) {
+    public Optional<Instruction> process(final @Nonnull org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types
+            .rev131026.instruction.instruction.WriteMetadataCase source, final ActionConvertorData data,
+            ConvertorExecutor convertorExecutor) {
         WriteMetadata writeMetadata = source.getWriteMetadata();
         WriteMetadataCaseBuilder writeMetadataCaseBuilder = new WriteMetadataCaseBuilder();
         WriteMetadataBuilder writeMetadataBuilder = new WriteMetadataBuilder();
-        writeMetadataBuilder.setMetadata(ByteUtil.convertBigIntegerToNBytes(writeMetadata.getMetadata(), OFConstants.SIZE_OF_LONG_IN_BYTES));
-        writeMetadataBuilder.setMetadataMask(ByteUtil.convertBigIntegerToNBytes(writeMetadata.getMetadataMask(), OFConstants.SIZE_OF_LONG_IN_BYTES));
+        writeMetadataBuilder.setMetadata(ByteUtil.convertBigIntegerToNBytes(writeMetadata.getMetadata(),
+                OFConstants.SIZE_OF_LONG_IN_BYTES));
+        writeMetadataBuilder.setMetadataMask(ByteUtil.convertBigIntegerToNBytes(writeMetadata.getMetadataMask(),
+                OFConstants.SIZE_OF_LONG_IN_BYTES));
         writeMetadataCaseBuilder.setWriteMetadata(writeMetadataBuilder.build());
         InstructionBuilder instructionBuilder = new InstructionBuilder();
         instructionBuilder.setInstructionChoice(writeMetadataCaseBuilder.build());
index 48ed63281e23ba473707ab75e66ff27723936fb4..1c4ad55427236f5f6fbcd99a5d92678595c017c8 100644 (file)
@@ -127,7 +127,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.ge
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.general.extension.list.grouping.ExtensionList;
 
 /**
- * Utility class for converting a MD-SAL Flow into the OF flow mod
+ * Utility class for converting a MD-SAL Flow into the OF flow mod.
  */
 public class MatchConvertor extends Convertor<Match, List<MatchEntry>, VersionConvertorData> {
     private static final List<Class<?>> TYPES = Arrays.asList(
@@ -136,10 +136,12 @@ public class MatchConvertor extends Convertor<Match, List<MatchEntry>, VersionCo
             org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.mod.removed.Match.class,
             org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.packet.received.Match.class,
             org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.packet.in.message.Match.class,
-            org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.Match.class,
+            org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature
+                .prop.type.Match.class,
             SetField.class);
 
-    private static final ConvertorProcessor<Layer3Match, List<MatchEntry>, VersionConvertorData> LAYER3_PROCESSOR = new ConvertorProcessor<Layer3Match, List<MatchEntry>, VersionConvertorData>()
+    private static final ConvertorProcessor<Layer3Match, List<MatchEntry>, VersionConvertorData> LAYER3_PROCESSOR =
+        new ConvertorProcessor<Layer3Match, List<MatchEntry>, VersionConvertorData>()
             .addCase(new SalToOfIpv4MatchArbitraryBitMaskCase())
             .addCase(new SalToOfIpv4MatchCase())
             .addCase(new SalToOfTunnelIpv4MatchCase())
@@ -147,7 +149,8 @@ public class MatchConvertor extends Convertor<Match, List<MatchEntry>, VersionCo
             .addCase(new SalToOfIpv6MatchArbitraryBitMaskCase())
             .addCase(new SalToOfIpv6MatchCase());
 
-    private static final ConvertorProcessor<Layer4Match, List<MatchEntry>, VersionConvertorData> LAYER4_PROCESSOR = new ConvertorProcessor<Layer4Match, List<MatchEntry>, VersionConvertorData>()
+    private static final ConvertorProcessor<Layer4Match, List<MatchEntry>, VersionConvertorData> LAYER4_PROCESSOR =
+        new ConvertorProcessor<Layer4Match, List<MatchEntry>, VersionConvertorData>()
             .addCase(new SalToOfTcpMatchCase())
             .addCase(new SalToOfUdpMatchCase())
             .addCase(new SalToOfSctpMatchCase());
@@ -166,7 +169,7 @@ public class MatchConvertor extends Convertor<Match, List<MatchEntry>, VersionCo
     }
 
     private static void layer4Match(final List<MatchEntry> matchEntryList, final Layer4Match layer4Match,
-                                    ConvertorExecutor converterExecutor, final ExtensionConverterProvider extensionConvertorProvider) {
+            ConvertorExecutor converterExecutor, final ExtensionConverterProvider extensionConvertorProvider) {
         java.util.Optional<List<MatchEntry>> result = LAYER4_PROCESSOR.process(layer4Match, converterExecutor
         );
 
@@ -214,21 +217,25 @@ public class MatchConvertor extends Convertor<Match, List<MatchEntry>, VersionCo
     }
 
     private static void metadataMatch(final List<MatchEntry> matchEntryList,
-                                      final org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.Metadata metadata) {
+            final org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.Metadata metadata) {
         if (metadata == null) {
             return;
         }
 
         MatchEntryBuilder matchEntryBuilder = new MatchEntryBuilder();
-        boolean hasmask = metadata.getMetadataMask() != null;
+        final boolean hasmask = metadata.getMetadataMask() != null;
         matchEntryBuilder.setOxmClass(OpenflowBasicClass.class);
         matchEntryBuilder.setOxmMatchField(Metadata.class);
         MetadataCaseBuilder metadataCaseBuilder = new MetadataCaseBuilder();
-        org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.metadata._case.MetadataBuilder metadataBuilder = new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.metadata._case.MetadataBuilder();
-        metadataBuilder.setMetadata(ByteUtil.convertBigIntegerToNBytes(metadata.getMetadata(), OFConstants.SIZE_OF_LONG_IN_BYTES));
+        org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry
+            .value.metadata._case.MetadataBuilder metadataBuilder = new org.opendaylight.yang.gen.v1.urn.opendaylight
+                .openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.metadata._case.MetadataBuilder();
+        metadataBuilder.setMetadata(ByteUtil.convertBigIntegerToNBytes(metadata.getMetadata(),
+                OFConstants.SIZE_OF_LONG_IN_BYTES));
 
         if (hasmask) {
-            metadataBuilder.setMask(ByteUtil.convertBigIntegerToNBytes(metadata.getMetadataMask(), OFConstants.SIZE_OF_LONG_IN_BYTES));
+            metadataBuilder.setMask(ByteUtil.convertBigIntegerToNBytes(metadata.getMetadataMask(),
+                    OFConstants.SIZE_OF_LONG_IN_BYTES));
         }
 
         metadataCaseBuilder.setMetadata(metadataBuilder.build());
@@ -238,22 +245,25 @@ public class MatchConvertor extends Convertor<Match, List<MatchEntry>, VersionCo
     }
 
     private static void tunnelMatch(final List<MatchEntry> matchEntryList,
-                                    final org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.Tunnel tunnel) {
+            final org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.Tunnel tunnel) {
         if (tunnel == null) {
             return;
         }
 
-        MatchEntryBuilder matchEntryBuilder = new MatchEntryBuilder();
         TunnelIdCaseBuilder tunnelIdCaseBuilder = new TunnelIdCaseBuilder();
         TunnelIdBuilder tunnelIdBuilder = new TunnelIdBuilder();
         boolean hasMask = tunnel.getTunnelMask() != null;
 
         if (hasMask) {
-            tunnelIdBuilder.setMask(ByteUtil.convertBigIntegerToNBytes(tunnel.getTunnelMask(), OFConstants.SIZE_OF_LONG_IN_BYTES));
+            tunnelIdBuilder.setMask(ByteUtil.convertBigIntegerToNBytes(tunnel.getTunnelMask(),
+                    OFConstants.SIZE_OF_LONG_IN_BYTES));
         }
 
-        tunnelIdBuilder.setTunnelId(ByteUtil.convertBigIntegerToNBytes(tunnel.getTunnelId(), OFConstants.SIZE_OF_LONG_IN_BYTES));
+        tunnelIdBuilder.setTunnelId(ByteUtil.convertBigIntegerToNBytes(tunnel.getTunnelId(),
+                OFConstants.SIZE_OF_LONG_IN_BYTES));
         tunnelIdCaseBuilder.setTunnelId(tunnelIdBuilder.build());
+
+        MatchEntryBuilder matchEntryBuilder = new MatchEntryBuilder();
         matchEntryBuilder.setMatchEntryValue(tunnelIdCaseBuilder.build());
         matchEntryBuilder.setHasMask(hasMask);
         matchEntryBuilder.setOxmMatchField(TunnelId.class);
@@ -340,7 +350,6 @@ public class MatchConvertor extends Convertor<Match, List<MatchEntry>, VersionCo
             MatchEntryBuilder matchEntryBuilder = new MatchEntryBuilder();
             matchEntryBuilder.setOxmClass(OpenflowBasicClass.class);
             matchEntryBuilder.setOxmMatchField(VlanVid.class);
-            VlanVidCaseBuilder vlanVidCaseBuilder = new VlanVidCaseBuilder();
             VlanVidBuilder vlanVidBuilder = new VlanVidBuilder();
             boolean setCfiBit = false;
             Integer vidEntryValue = 0;
@@ -360,6 +369,7 @@ public class MatchConvertor extends Convertor<Match, List<MatchEntry>, VersionCo
 
             vlanVidBuilder.setCfiBit(setCfiBit);
             vlanVidBuilder.setVlanVid(vidEntryValue);
+            VlanVidCaseBuilder vlanVidCaseBuilder = new VlanVidCaseBuilder();
             vlanVidCaseBuilder.setVlanVid(vlanVidBuilder.build());
             matchEntryBuilder.setMatchEntryValue(vlanVidCaseBuilder.build());
             matchEntryBuilder.setHasMask(hasmask);
@@ -432,7 +442,7 @@ public class MatchConvertor extends Convertor<Match, List<MatchEntry>, VersionCo
             TcpFlagsContainerBuilder tcpFlagsContainerBuilder = new TcpFlagsContainerBuilder();
             TcpFlagsBuilder tcpFlagsBuilder = new TcpFlagsBuilder();
             tcpFlagsBuilder.setFlags(tcpFlagsMatch.getTcpFlags());
-            if(tcpFlagsMatch.getTcpFlagsMask() != null) {
+            if (tcpFlagsMatch.getTcpFlagsMask() != null) {
                 matchEntryBuilder.setHasMask(true);
                 tcpFlagsBuilder.setMask(ByteUtil.unsignedShortToBytes(tcpFlagsMatch.getTcpFlagsMask()));
             }
@@ -451,7 +461,7 @@ public class MatchConvertor extends Convertor<Match, List<MatchEntry>, VersionCo
 
     private static MatchEntry toOfMplsPbb(final Pbb pbb) {
         MatchEntryBuilder matchEntryBuilder = new MatchEntryBuilder();
-        boolean hasmask = pbb.getPbbMask() != null;
+        final boolean hasmask = pbb.getPbbMask() != null;
         matchEntryBuilder.setOxmClass(OpenflowBasicClass.class);
         matchEntryBuilder.setOxmMatchField(PbbIsid.class);
         PbbIsidCaseBuilder pbbIsidCaseBuilder = new PbbIsidCaseBuilder();
@@ -636,16 +646,18 @@ public class MatchConvertor extends Convertor<Match, List<MatchEntry>, VersionCo
         tunnelMatch(result, source.getTunnel());
         tcpFlagsMatch(result, source.getTcpFlagsMatch());
 
-        /**
+        /*
          * TODO: EXTENSION PROPOSAL (source, MD-SAL to OFJava)
          * - we might need version for conversion and for key
          */
-        Optional<GeneralExtensionListGrouping> extensionListOpt = ExtensionResolvers.getMatchExtensionResolver().getExtension(source);
+        Optional<GeneralExtensionListGrouping> extensionListOpt =
+                ExtensionResolvers.getMatchExtensionResolver().getExtension(source);
         if (extensionListOpt.isPresent()) {
             List<ExtensionList> extensionListList = extensionListOpt.get().getExtensionList();
             for (ExtensionList extensionItem : extensionListList) {
                 // TODO: get real version
-                ConverterExtensionKey<? extends ExtensionKey> key = new ConverterExtensionKey<>(extensionItem.getExtensionKey(), OFConstants.OFP_VERSION_1_3);
+                ConverterExtensionKey<? extends ExtensionKey> key =
+                        new ConverterExtensionKey<>(extensionItem.getExtensionKey(), OFConstants.OFP_VERSION_1_3);
                 ConvertorToOFJava<MatchEntry> convertor = extensionConvertorProvider.getConverter(key);
                 if (convertor == null) {
                     throw new IllegalStateException("No converter found for key: " + key.toString());
index df2ff96270ae4dbabb22899db9a08e5d65a13d6a..78d3fa3b0214250bf901eecb1a1c7b8cb4b62e23 100644 (file)
@@ -22,9 +22,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.vlan.pcp._case.VlanPcpBuilder;
 
 /**
- * match related tools
+ * Match related tools.
  */
-public abstract class MatchConvertorUtil {
+public final class MatchConvertorUtil {
     // Pre-calculated masks for the 33 possible values. Do not give them out, but clone() them as they may
     // end up being leaked and vulnerable.
     private static final byte[][] IPV4_MASKS;
@@ -32,30 +32,33 @@ public abstract class MatchConvertorUtil {
     static {
         final byte[][] tmp = new byte[33][];
         for (int i = 0; i <= 32; ++i) {
-            final int mask = 0xffffffff << (32 - i);
+            final int mask = 0xffffffff << 32 - i;
             tmp[i] = new byte[]{(byte) (mask >>> 24), (byte) (mask >>> 16), (byte) (mask >>> 8), (byte) mask};
         }
 
         IPV4_MASKS = tmp;
     }
 
+    private MatchConvertorUtil() {
+    }
+
     /**
      * Ipv 6 exthdr flags to int integer.
      *
-     * @param pField ipv6 external header flag
+     * @param flags ipv6 external header flag
      * @return integer containing lower 9 bits filled with corresponding flags
      */
-    public static Integer ipv6ExthdrFlagsToInt(final Ipv6ExthdrFlags pField) {
+    public static Integer ipv6ExthdrFlagsToInt(final Ipv6ExthdrFlags flags) {
         Integer bitmap = 0;
-        bitmap |= pField.isNonext() ? 1 : 0;
-        bitmap |= pField.isEsp() ? (1 << 1) : 0;
-        bitmap |= pField.isAuth() ? (1 << 2) : 0;
-        bitmap |= pField.isDest() ? (1 << 3) : 0;
-        bitmap |= pField.isFrag() ? (1 << 4) : 0;
-        bitmap |= pField.isRouter() ? (1 << 5) : 0;
-        bitmap |= pField.isHop() ? (1 << 6) : 0;
-        bitmap |= pField.isUnrep() ? (1 << 7) : 0;
-        bitmap |= pField.isUnseq() ? (1 << 8) : 0;
+        bitmap |= flags.isNonext() ? 1 : 0;
+        bitmap |= flags.isEsp() ? 1 << 1 : 0;
+        bitmap |= flags.isAuth() ? 1 << 2 : 0;
+        bitmap |= flags.isDest() ? 1 << 3 : 0;
+        bitmap |= flags.isFrag() ? 1 << 4 : 0;
+        bitmap |= flags.isRouter() ? 1 << 5 : 0;
+        bitmap |= flags.isHop() ? 1 << 6 : 0;
+        bitmap |= flags.isUnrep() ? 1 << 7 : 0;
+        bitmap |= flags.isUnseq() ? 1 << 8 : 0;
         return bitmap;
     }
 
index 0a461a6c5dc792aa94b52d52cb28b5a3123d2194..d4b00dd16cb6d42dfd8d0da6f95d466bb37f7104 100644 (file)
@@ -25,22 +25,25 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.aggregate._case.MultipartRequestAggregateBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.flow._case.MultipartRequestFlowBuilder;
 
-public class MatchInjector {
+public final class MatchInjector {
+    private MatchInjector() {
+    }
+
     @SuppressWarnings("unchecked")
-    public static <FROM, TO> void inject(Optional<FROM> source, TO target, short version) {
-        FROM sourceResult;
+    public static <F, T> void inject(Optional<F> source, T target, short version) {
+        F sourceResult;
         if (source.isPresent()) {
             sourceResult = source.get();
         } else if (version == EncodeConstants.OF10_VERSION_ID) {
-            sourceResult = (FROM) MatchV10Convertor.defaultResult();
+            sourceResult = (F) MatchV10Convertor.defaultResult();
         } else {
-            sourceResult = (FROM) MatchConvertor.defaultResult();
+            sourceResult = (F) MatchConvertor.defaultResult();
         }
 
         final Map<ConvertorKey, ResultInjector<?, ?>> injectorMap = new HashMap<>();
         addInjectors(injectorMap);
 
-        final ResultInjector<FROM, TO> injection = (ResultInjector<FROM, TO>) injectorMap
+        final ResultInjector<F, T> injection = (ResultInjector<F, T>) injectorMap
                 .get(new ConvertorKey(version, target.getClass()));
 
         injection.inject(sourceResult, target);
@@ -49,73 +52,34 @@ public class MatchInjector {
     private static void addInjectors(final Map<ConvertorKey, ResultInjector<?, ?>> injectionMapping) {
         // OF-1.3|List<MatchEntries> --> FlowModInputBuilder
         injectionMapping.put(new ConvertorKey(OFConstants.OFP_VERSION_1_3, FlowModInputBuilder.class),
-                new ResultInjector<List<MatchEntry>, FlowModInputBuilder>() {
-                    @Override
-                    public void inject(final List<MatchEntry> value,
-                                       final FlowModInputBuilder target) {
-                        target.setMatch(wrapMatchV13(value).build());
-                    }
-                });
+            (ResultInjector<List<MatchEntry>, FlowModInputBuilder>)(value, target)
+                -> target.setMatch(wrapMatchV13(value).build()));
 
         // OF-1.3|List<MatchEntries> --> OxmFieldsActionBuilder
         injectionMapping.put(new ConvertorKey(OFConstants.OFP_VERSION_1_3, SetFieldActionBuilder.class),
-                new ResultInjector<List<MatchEntry>, SetFieldActionBuilder>() {
-                    @Override
-                    public void inject(final List<MatchEntry> value,
-                                       final SetFieldActionBuilder target) {
-                        target.setMatchEntry(value);
-                    }
-                });
+            (ResultInjector<List<MatchEntry>, SetFieldActionBuilder>)(value, target) -> target.setMatchEntry(value));
 
         // OF-1.0|MatchV10Builder --> FlowModInputBuilder
         injectionMapping.put(new ConvertorKey(OFConstants.OFP_VERSION_1_0, FlowModInputBuilder.class),
-                new ResultInjector<MatchV10, FlowModInputBuilder>() {
-                    @Override
-                    public void inject(final MatchV10 value,
-                                       final FlowModInputBuilder target) {
-                        target.setMatchV10(value);
-                    }
-                });
+            (ResultInjector<MatchV10, FlowModInputBuilder>)(value, target) -> target.setMatchV10(value));
 
         // OF-1.3|List<MatchEntries> --> MultipartRequestFlowBuilder
         injectionMapping.put(new ConvertorKey(OFConstants.OFP_VERSION_1_3, MultipartRequestFlowBuilder.class),
-                new ResultInjector<List<MatchEntry>, MultipartRequestFlowBuilder>() {
-                    @Override
-                    public void inject(final List<MatchEntry> value,
-                                       final MultipartRequestFlowBuilder target) {
-                        target.setMatch(wrapMatchV13(value).build());
-                    }
-                });
+            (ResultInjector<List<MatchEntry>, MultipartRequestFlowBuilder>)(value, target)
+                -> target.setMatch(wrapMatchV13(value).build()));
 
         // OF-1.0|List<MatchEntries> --> MultipartRequestFlowBuilder
         injectionMapping.put(new ConvertorKey(OFConstants.OFP_VERSION_1_0, MultipartRequestFlowBuilder.class),
-                new ResultInjector<MatchV10, MultipartRequestFlowBuilder>() {
-                    @Override
-                    public void inject(final MatchV10 value,
-                                       final MultipartRequestFlowBuilder target) {
-                        target.setMatchV10(value);
-                    }
-                });
+            (ResultInjector<MatchV10, MultipartRequestFlowBuilder>)(value, target) -> target.setMatchV10(value));
 
         // OF-1.3|List<MatchEntries> --> MultipartRequestAggregateBuilder
         injectionMapping.put(new ConvertorKey(OFConstants.OFP_VERSION_1_3, MultipartRequestAggregateBuilder.class),
-                new ResultInjector<List<MatchEntry>, MultipartRequestAggregateBuilder>() {
-                    @Override
-                    public void inject(final List<MatchEntry> value,
-                                       final MultipartRequestAggregateBuilder target) {
-                        target.setMatch(wrapMatchV13(value).build());
-                    }
-                });
+            (ResultInjector<List<MatchEntry>, MultipartRequestAggregateBuilder>)(value, target)
+                -> target.setMatch(wrapMatchV13(value).build()));
 
         // OF-1.0|List<MatchEntries> --> MultipartRequestAggregateBuilder
         injectionMapping.put(new ConvertorKey(OFConstants.OFP_VERSION_1_0, MultipartRequestAggregateBuilder.class),
-                new ResultInjector<MatchV10, MultipartRequestAggregateBuilder>() {
-                    @Override
-                    public void inject(final MatchV10 value,
-                                       final MultipartRequestAggregateBuilder target) {
-                        target.setMatchV10(value);
-                    }
-                });
+            (ResultInjector<MatchV10, MultipartRequestAggregateBuilder>)(value, target) -> target.setMatchV10(value));
     }
 
     private static MatchBuilder wrapMatchV13(final List<MatchEntry> value) {
index 0c156e26bc8abff44b19b1d488c32eaaf378d4f5..164503da693b96a8440eca621539b40985e380b6 100644 (file)
@@ -21,6 +21,7 @@ import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.case
 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.cases.OfToSalEthDstCase;
 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.cases.OfToSalEthSrcCase;
 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.cases.OfToSalEthTypeCase;
+import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.cases.OfToSalExperimenterIdCase;
 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.cases.OfToSalIcmpv4CodeCase;
 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.cases.OfToSalIcmpv4TypeCase;
 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.cases.OfToSalIcmpv6CodeCase;
@@ -47,7 +48,6 @@ import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.case
 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.cases.OfToSalSctpDstCase;
 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.cases.OfToSalSctpSrcCase;
 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.cases.OfToSalTcpDstCase;
-import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.cases.OfToSalExperimenterIdCase;
 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.cases.OfToSalTcpSrcCase;
 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.cases.OfToSalTunnelIdCase;
 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.cases.OfToSalTunnelIpv4DstCase;
@@ -74,19 +74,18 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.SctpMatchBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.TcpMatchBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.UdpMatchBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.set.field._case.SetFieldAction;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchEntriesGrouping;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.MatchEntryValue;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.grouping.Match;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.TunnelIpv4Dst;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.TunnelIpv4Src;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.set.field._case.SetFieldAction;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.grouping.Match;
-import org.opendaylight.yangtools.yang.binding.DataContainer;
 
 /**
- * Converts Openflow 1.3+ specific flow match to MD-SAL format flow
- * match
+ * Converts Openflow 1.3+ specific flow match to MD-SAL format flow match.
  *
+ * <p>
  * Example usage:
  * <pre>
  * {@code
@@ -96,8 +95,10 @@ import org.opendaylight.yangtools.yang.binding.DataContainer;
  * }
  * </pre>
  */
-public class MatchResponseConvertor extends Convertor<MatchEntriesGrouping, MatchBuilder, VersionDatapathIdConvertorData> {
-    private static final ConvertorProcessor<MatchEntryValue, MatchBuilder, MatchResponseConvertorData> OF_TO_SAL_PROCESSOR = new ConvertorProcessor<MatchEntryValue, MatchBuilder, MatchResponseConvertorData>()
+public class MatchResponseConvertor extends Convertor<MatchEntriesGrouping, MatchBuilder,
+        VersionDatapathIdConvertorData> {
+    private static final ConvertorProcessor<MatchEntryValue, MatchBuilder, MatchResponseConvertorData>
+        OF_TO_SAL_PROCESSOR = new ConvertorProcessor<MatchEntryValue, MatchBuilder, MatchResponseConvertorData>()
             .addCase(new OfToSalInPortCase())
             .addCase(new OfToSalInPhyPortCase())
             .addCase(new OfToSalMetadataCase())
@@ -140,7 +141,8 @@ public class MatchResponseConvertor extends Convertor<MatchEntriesGrouping, Matc
             .addCase(new OfToSalTunnelIdCase())
             .addCase(new OfToSalExperimenterIdCase());
 
-    private static final ConvertorProcessor<MatchEntryValue, MatchBuilder, MatchResponseConvertorData> OF_TO_SAL_TUNNEL_PROCESSOR = new ConvertorProcessor<MatchEntryValue, MatchBuilder, MatchResponseConvertorData>()
+    private static final ConvertorProcessor<MatchEntryValue, MatchBuilder, MatchResponseConvertorData>
+        OF_TO_SAL_TUNNEL_PROCESSOR = new ConvertorProcessor<MatchEntryValue, MatchBuilder, MatchResponseConvertorData>()
             .addCase(new OfToSalTunnelIpv4SrcCase())
             .addCase(new OfToSalTunnelIpv4DstCase());
     private static final java.util.List<Class<?>> TYPES = Arrays.asList(Match.class, SetFieldAction.class);
@@ -175,15 +177,16 @@ public class MatchResponseConvertor extends Convertor<MatchEntriesGrouping, Matc
         data.setTcpFlagsMatchBuilder(new TcpFlagsMatchBuilder());
 
         for (MatchEntry ofMatch : source.getMatchEntry()) {
-            if (TunnelIpv4Dst.class.isAssignableFrom(ofMatch.getOxmMatchField()) ||
-                    TunnelIpv4Src.class.isAssignableFrom(ofMatch.getOxmMatchField())) {
-                /**
+            if (TunnelIpv4Dst.class.isAssignableFrom(ofMatch.getOxmMatchField())
+                    || TunnelIpv4Src.class.isAssignableFrom(ofMatch.getOxmMatchField())) {
+                /*
                  * TODO: Fix TunnelIpv4Src and Ipv4Dst, because current implementation do not work
                  * TunnelIpv4Src and TunnelIpv4Dst are not compatible with
                  * org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField
                  * and so you cannot even set them to OxmMatchField.
                  * Creation of TunnelIpv4SrcCase and TunnelIpv4DstCase in
-                 * org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value
+                 * org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value
+                 *     .grouping.match.entry.value
                  * and proper use of it can fix this bug.
                  */
                 OF_TO_SAL_TUNNEL_PROCESSOR.process(ofMatch.getMatchEntryValue(), data, getConvertorExecutor());
index c6ed7abe1222fbad82ed43bf073801f1fa14f708..185cdc2d9b3ff8e9b987e4c0fd638a7bd41446cd 100644 (file)
@@ -47,17 +47,19 @@ public class MatchV10Convertor extends Convertor<Match, MatchV10, VersionConvert
             org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.mod.removed.Match.class,
             org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.packet.received.Match.class,
             org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.packet.in.message.Match.class,
-            org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.Match.class,
+            org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature
+                .prop.type.Match.class,
             SetField.class);
 
     /**
-     * default MAC
+     * default MAC.
      */
-    private static final MacAddress zeroMac = new MacAddress("00:00:00:00:00:00");
+    private static final MacAddress ZERO_MAC = new MacAddress("00:00:00:00:00:00");
+
     /**
-     * default IPv4
+     * default IPv4.
      */
-    private static final Ipv4Address zeroIPv4 = new Ipv4Address("0.0.0.0");
+    private static final Ipv4Address ZERO_IPV4 = new Ipv4Address("0.0.0.0");
 
     /*
      * The value 0xffff (OFP_VLAN_NONE) is used to indicate
@@ -128,7 +130,8 @@ public class MatchV10Convertor extends Convertor<Match, MatchV10, VersionConvert
     private static void convertL3Ipv4DstMatch(final MatchV10Builder matchBuilder,
                                               final Ipv4Match ipv4) {
         if (ipv4.getIpv4Destination() != null) {
-            Iterator<String> addressParts = IpConversionUtil.PREFIX_SPLITTER.split(ipv4.getIpv4Destination().getValue()).iterator();
+            Iterator<String> addressParts = IpConversionUtil.PREFIX_SPLITTER.split(
+                    ipv4.getIpv4Destination().getValue()).iterator();
             Ipv4Address ipv4Address = new Ipv4Address(addressParts.next());
             Integer prefix = buildPrefix(addressParts);
             matchBuilder.setNwDst(ipv4Address);
@@ -146,7 +149,8 @@ public class MatchV10Convertor extends Convertor<Match, MatchV10, VersionConvert
     private static void convertL3Ipv4SrcMatch(final MatchV10Builder matchBuilder,
                                               final Ipv4Match ipv4) {
         if (ipv4.getIpv4Source() != null) {
-            Iterator<String> addressParts = IpConversionUtil.PREFIX_SPLITTER.split(ipv4.getIpv4Source().getValue()).iterator();
+            Iterator<String> addressParts = IpConversionUtil.PREFIX_SPLITTER.split(
+                    ipv4.getIpv4Source().getValue()).iterator();
             Ipv4Address ipv4Address = new Ipv4Address(addressParts.next());
             int prefix = buildPrefix(addressParts);
 
@@ -175,7 +179,7 @@ public class MatchV10Convertor extends Convertor<Match, MatchV10, VersionConvert
     private static boolean convertDlVlan(final MatchV10Builder matchBuilder, final VlanMatch vlanMatch) {
         if (vlanMatch.getVlanId() != null) {
             int vlanId = vlanMatch.getVlanId().getVlanId().getValue();
-            matchBuilder.setDlVlan((vlanId == 0 ? OFP_VLAN_NONE : vlanId));
+            matchBuilder.setDlVlan(vlanId == 0 ? OFP_VLAN_NONE : vlanId);
             return false;
         }
         return true;
@@ -210,7 +214,8 @@ public class MatchV10Convertor extends Convertor<Match, MatchV10, VersionConvert
 
     private static boolean convertInPortMatch(final MatchV10Builder matchBuilder, final NodeConnectorId inPort) {
         if (inPort != null) {
-            matchBuilder.setInPort(InventoryDataServiceUtil.portNumberfromNodeConnectorId(OpenflowVersion.OF10, inPort).intValue());
+            matchBuilder.setInPort(InventoryDataServiceUtil.portNumberfromNodeConnectorId(OpenflowVersion.OF10,
+                    inPort).intValue());
             return false;
         }
         return true;
@@ -232,26 +237,26 @@ public class MatchV10Convertor extends Convertor<Match, MatchV10, VersionConvert
     @Override
     public MatchV10 convert(final Match source, final VersionConvertorData data) {
         MatchV10Builder matchBuilder = new MatchV10Builder();
-        boolean _dLDST = true;
-        boolean _dLSRC = true;
-        boolean _dLTYPE = true;
-        boolean _dLVLAN = true;
-        boolean _dLVLANPCP = true;
-        boolean _iNPORT = true;
-        boolean _nWPROTO = true;
-        boolean _nWTOS = true;
-        boolean _tPDST = true;
-        boolean _tPSRC = true;
+        boolean dlDst = true;
+        boolean dlSsc = true;
+        boolean dlType = true;
+        boolean dlVlan = true;
+        boolean dlVlanPcp = true;
+        boolean ipPort = true;
+        boolean nwProto = true;
+        boolean nwTos = true;
+        boolean tpDst = true;
+        boolean tpSrc = true;
 
         matchBuilder.setInPort(0);
-        matchBuilder.setDlDst(zeroMac);
-        matchBuilder.setDlSrc(zeroMac);
+        matchBuilder.setDlDst(ZERO_MAC);
+        matchBuilder.setDlSrc(ZERO_MAC);
         matchBuilder.setDlType(0);
         matchBuilder.setDlVlan(OFP_VLAN_NONE);
         matchBuilder.setDlVlanPcp((short) 0);
-        matchBuilder.setNwDst(zeroIPv4);
+        matchBuilder.setNwDst(ZERO_IPV4);
         matchBuilder.setNwDstMask((short) 0);
-        matchBuilder.setNwSrc(zeroIPv4);
+        matchBuilder.setNwSrc(ZERO_IPV4);
         matchBuilder.setNwSrcMask((short) 0);
         matchBuilder.setNwProto((short) 0);
         matchBuilder.setNwTos((short) 0);
@@ -261,18 +266,18 @@ public class MatchV10Convertor extends Convertor<Match, MatchV10, VersionConvert
         if (source != null) {
             EthernetMatch ethernetMatch = source.getEthernetMatch();
             if (ethernetMatch != null) {
-                _dLDST = convertEthernetDlDst(matchBuilder, ethernetMatch);
-                _dLSRC = convertEthernetDlSrc(matchBuilder, ethernetMatch);
-                _dLTYPE = convertEthernetDlType(matchBuilder, ethernetMatch);
+                dlDst = convertEthernetDlDst(matchBuilder, ethernetMatch);
+                dlSsc = convertEthernetDlSrc(matchBuilder, ethernetMatch);
+                dlType = convertEthernetDlType(matchBuilder, ethernetMatch);
             }
             VlanMatch vlanMatch = source.getVlanMatch();
             if (vlanMatch != null) {
-                _dLVLAN = convertDlVlan(matchBuilder, vlanMatch);
-                _dLVLANPCP = convertDlVlanPcp(matchBuilder, vlanMatch);
+                dlVlan = convertDlVlan(matchBuilder, vlanMatch);
+                dlVlanPcp = convertDlVlanPcp(matchBuilder, vlanMatch);
             }
             NodeConnectorId inPort = source.getInPort();
             if (inPort != null) {
-                _iNPORT = convertInPortMatch(matchBuilder, inPort);
+                ipPort = convertInPortMatch(matchBuilder, inPort);
             }
             Layer3Match l3Match = source.getLayer3Match();
             if (l3Match != null) {
@@ -284,19 +289,19 @@ public class MatchV10Convertor extends Convertor<Match, MatchV10, VersionConvert
             }
             IpMatch ipMatch = source.getIpMatch();
             if (ipMatch != null) {
-                _nWPROTO = convertNwProto(matchBuilder, ipMatch);
-                _nWTOS = convertNwTos(matchBuilder, ipMatch);
+                nwProto = convertNwProto(matchBuilder, ipMatch);
+                nwTos = convertNwTos(matchBuilder, ipMatch);
             }
             Layer4Match layer4Match = source.getLayer4Match();
             if (layer4Match != null) {
                 if (layer4Match instanceof TcpMatch) {
                     TcpMatch tcpMatch = (TcpMatch) layer4Match;
-                    _tPSRC = convertL4TpSrcMatch(matchBuilder, tcpMatch);
-                    _tPDST = convertL4TpDstMatch(matchBuilder, tcpMatch);
+                    tpSrc = convertL4TpSrcMatch(matchBuilder, tcpMatch);
+                    tpDst = convertL4TpDstMatch(matchBuilder, tcpMatch);
                 } else if (layer4Match instanceof UdpMatch) {
                     UdpMatch udpMatch = (UdpMatch) layer4Match;
-                    _tPSRC = convertL4UdpSrcMatch(matchBuilder, udpMatch);
-                    _tPDST = convertL4UdpDstMatch(matchBuilder, udpMatch);
+                    tpSrc = convertL4UdpSrcMatch(matchBuilder, udpMatch);
+                    tpDst = convertL4UdpDstMatch(matchBuilder, udpMatch);
                 }
             } else {
                 Icmpv4Match icmpv4Match = source.getIcmpv4Match();
@@ -304,22 +309,22 @@ public class MatchV10Convertor extends Convertor<Match, MatchV10, VersionConvert
                     Short type = icmpv4Match.getIcmpv4Type();
                     if (type != null) {
                         matchBuilder.setTpSrc(type.intValue());
-                        _tPSRC = false;
+                        tpSrc = false;
                     }
                     Short code = icmpv4Match.getIcmpv4Code();
                     if (code != null) {
                         matchBuilder.setTpDst(code.intValue());
-                        _tPDST = false;
+                        tpDst = false;
                     }
                 }
             }
         }
 
         FlowWildcardsV10 wildCards = new FlowWildcardsV10(
-                _dLDST, _dLSRC, _dLTYPE, _dLVLAN,
-                _dLVLANPCP, _iNPORT, _nWPROTO, _nWTOS, _tPDST, _tPSRC);
+                dlDst, dlSsc, dlType, dlVlan,
+                dlVlanPcp, ipPort, nwProto, nwTos, tpDst, tpSrc);
         matchBuilder.setWildcards(wildCards);
 
         return matchBuilder.build();
     }
-}
\ No newline at end of file
+}
index 790e4791dd2ab213d92d44ece3d85e67f12da975..317f8fbcf8b42d18eca9b0cb9ef4bbd9a0ef1cb4 100644 (file)
@@ -33,12 +33,11 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.UdpMatchBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.vlan.match.fields.VlanIdBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.v10.grouping.MatchV10;
-import org.opendaylight.yangtools.yang.binding.DataContainer;
 
 /**
- * Converts Openflow 1.0 specific flow match to MD-SAL format flow
- * match
+ * Converts Openflow 1.0 specific flow match to MD-SAL format flow match.
  *
+ * <p>
  * Example usage:
  * <pre>
  * {@code
@@ -96,8 +95,9 @@ public class MatchV10ResponseConvertor extends Convertor<MatchV10, MatchBuilder,
         }
         if (!source.getWildcards().isDLVLAN() && source.getDlVlan() != null) {
             VlanIdBuilder vlanIdBuilder = new VlanIdBuilder();
-            int vlanId = (source.getDlVlan() == (0xffff)) ? 0 : source.getDlVlan();
-            vlanIdBuilder.setVlanId(new org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.VlanId(vlanId));
+            int vlanId = source.getDlVlan() == 0xffff ? 0 : source.getDlVlan();
+            vlanIdBuilder.setVlanId(
+                    new org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.VlanId(vlanId));
             vlanIdBuilder.setVlanIdPresent(vlanId != 0);
             vlanMatchBuilder.setVlanId(vlanIdBuilder.build());
             matchBuilder.setVlanMatch(vlanMatchBuilder.build());
@@ -149,15 +149,13 @@ public class MatchV10ResponseConvertor extends Convertor<MatchV10, MatchBuilder,
                 TcpMatchBuilder tcpMatchBuilder = new TcpMatchBuilder();
                 boolean hasTcp = false;
                 if (!source.getWildcards().isTPSRC() && source.getTpSrc() != null) {
-                    tcpMatchBuilder
-                            .setTcpSourcePort(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber(
-                                    source.getTpSrc()));
+                    tcpMatchBuilder.setTcpSourcePort(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf
+                            .inet.types.rev130715.PortNumber(source.getTpSrc()));
                     hasTcp = true;
                 }
                 if (!source.getWildcards().isTPDST() && source.getTpDst() != null) {
-                    tcpMatchBuilder
-                            .setTcpDestinationPort(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber(
-                                    source.getTpDst()));
+                    tcpMatchBuilder.setTcpDestinationPort(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
+                            .ietf.inet.types.rev130715.PortNumber(source.getTpDst()));
                     hasTcp = true;
                 }
 
@@ -168,15 +166,13 @@ public class MatchV10ResponseConvertor extends Convertor<MatchV10, MatchBuilder,
                 UdpMatchBuilder udpMatchBuilder = new UdpMatchBuilder();
                 boolean hasUdp = false;
                 if (!source.getWildcards().isTPSRC() && source.getTpSrc() != null) {
-                    udpMatchBuilder
-                            .setUdpSourcePort(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber(
-                                    source.getTpSrc()));
+                    udpMatchBuilder.setUdpSourcePort(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf
+                            .inet.types.rev130715.PortNumber(source.getTpSrc()));
                     hasUdp = true;
                 }
                 if (!source.getWildcards().isTPDST() && source.getTpDst() != null) {
-                    udpMatchBuilder
-                            .setUdpDestinationPort(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber(
-                                    source.getTpDst()));
+                    udpMatchBuilder.setUdpDestinationPort(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
+                            .ietf.inet.types.rev130715.PortNumber(source.getTpDst()));
                     hasUdp = true;
                 }
 
index 2cf350ecbc5dc84956ef8386510523509b90f120..5d79e52f6f415964b8b2effa6c045d363ab0a516 100644 (file)
@@ -29,9 +29,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchField;
 
 /**
- * Convertor data used in {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchResponseConvertor}
+ * Convertor data used in
+ * {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchResponseConvertor}
  * containing Openflow version, datapath ID and various builders, because match response convertor cases depends
- * on each other and requires shared builders
+ * on each other and requires shared builders.
  */
 public class MatchResponseConvertorData extends VersionDatapathIdConvertorData {
     private MatchBuilder matchBuilder;
index 5a0b62f8b4c2ba533c58bdccf4ccd2eb6eb2adcc..b36bec666aca1c09df08fcb029045908a27caec2 100644 (file)
@@ -13,15 +13,14 @@ import org.opendaylight.openflowplugin.extension.api.core.session.ExtensionSessi
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class ExtensionSessionManagerImpl implements ExtensionSessionManager {
+public final class ExtensionSessionManagerImpl implements ExtensionSessionManager {
 
     protected static final Logger LOG = LoggerFactory.getLogger(ExtensionSessionManagerImpl.class);
     private static ExtensionSessionManagerImpl INSTANCE;
     private ExtensionConverterProvider extensionConverterProvider;
 
-
     /**
-     * @return singleton instance
+     * Returns singleton instance.
      */
     public static ExtensionSessionManager getInstance() {
         if (INSTANCE == null) {
@@ -44,4 +43,4 @@ public class ExtensionSessionManagerImpl implements ExtensionSessionManager {
     public ExtensionConverterProvider getExtensionConverterProvider() {
         return extensionConverterProvider;
     }
-}
\ No newline at end of file
+}
index 85ad97f3346fba8d0bf7322270c604cb44d3b652..7f485da47211cf0936e5cb8da9a578ce057610a5 100644 (file)
@@ -11,17 +11,19 @@ package org.opendaylight.openflowplugin.openflow.md.core.session;
 import org.opendaylight.openflowplugin.extension.api.core.extension.ExtensionConverterProvider;
 import org.opendaylight.openflowplugin.extension.api.core.session.ExtensionSessionManager;
 
-public abstract class OFSessionUtil {
+public final class OFSessionUtil {
+    private OFSessionUtil() {
+    }
 
     /**
-     * @return session manager singleton instance
+     * Returns the session manager singleton instance.
      */
     public static ExtensionSessionManager getSessionManager() {
         return ExtensionSessionManagerImpl.getInstance();
     }
 
     /**
-     * @return extension converters provider
+     * Returns the extension converters provider.
      */
     public static ExtensionConverterProvider getExtensionConvertorProvider() {
         return getSessionManager().getExtensionConverterProvider();
index 393af06e641995224a0fb12865bc105ea3074a51..76e0b3ab432507e561df5b88ed15c8dea0c9f14b 100644 (file)
@@ -10,11 +10,11 @@ package org.opendaylight.openflowplugin.openflow.md.util;
 
 
 /**
- * OF-action related utilities
+ * OF-action related utilities.
  */
 public final class ActionUtil {
 
-    /** http://en.wikipedia.org/wiki/IPv4#Packet_structure (end of octet number 1, bit 14.+15.) */
+    /** http://en.wikipedia.org/wiki/IPv4#Packet_structure (end of octet number 1, bit 14.+15.). */
     public static final int ENC_FIELD_BIT_SIZE = 2;
 
     private ActionUtil() {
@@ -22,6 +22,8 @@ public final class ActionUtil {
     }
 
     /**
+     * Converts TOS to DSCP value.
+     *
      * @param tosValue TypeOfService value
      * @return DSCP value
      */
@@ -30,12 +32,12 @@ public final class ActionUtil {
     }
 
     /**
+     * Converts DSCP to TOS value.
+     *
      * @param dscpValue TypeOfService value
      * @return TOS value
      */
     public static Short dscpToTos(short dscpValue) {
         return (short) (dscpValue << ActionUtil.ENC_FIELD_BIT_SIZE);
     }
-
-
 }
index 115c146f29fccd5f7396ab54f0216c9782b96e12..2b97dcdac968f4d468810b0e990a800f445e0e79 100644 (file)
@@ -7,22 +7,27 @@
  */
 package org.opendaylight.openflowplugin.openflow.md.util;
 
-import java.math.BigInteger;
-import java.util.Arrays;
-
 import com.google.common.base.Preconditions;
 import com.google.common.io.BaseEncoding;
+import java.math.BigInteger;
+import java.util.Arrays;
 
-public abstract class ByteUtil {
+public final class ByteUtil {
+    private ByteUtil() {
+    }
 
-    /** default hex string separator */
+    /** default hex string separator. */
     private static final String DEFAULT_HEX_SEPARATOR = ":";
-    /** basic hex string encoding */
+
+    /** basic hex string encoding. */
     private static final BaseEncoding PLAIN_HEX_16_ENCODING = BaseEncoding.base16().lowerCase();
-    /** hex string encoding involving {@link #DEFAULT_HEX_SEPARATOR} as searator */
+
+    /** hex string encoding involving {@link #DEFAULT_HEX_SEPARATOR} as separator. */
     private static final BaseEncoding HEX_16_ENCODING = PLAIN_HEX_16_ENCODING.withSeparator(DEFAULT_HEX_SEPARATOR, 2);
 
     /**
+     * Converts bytes to a hex string.
+     *
      * @param bytes bytes that needs to be converted to hex
      * @param delimiter string delimiter
      * @return hexString containing bytes, separated with delimiter
@@ -36,7 +41,7 @@ public abstract class ByteUtil {
     }
 
     /**
-     * Utility method to convert BigInteger to n element byte array
+     * Utility method to convert BigInteger to n element byte array.
      *
      * @param bigInteger big integer value that needs to be converted to byte
      * @param numBytes convert to number of bytes
@@ -62,12 +67,12 @@ public abstract class ByteUtil {
     }
 
     /**
-     * Converts a 4 byte array of unsigned bytes to unsigned int
+     * Converts a 4 byte array of unsigned bytes to unsigned int.
      *
      * @param bytes an array of 4 unsigned bytes
      * @return a long representing the unsigned int
      */
-    public static final long bytesToUnsignedInt(final byte[] bytes) {
+    public static long bytesToUnsignedInt(final byte[] bytes) {
         Preconditions.checkArgument(bytes.length == 4, "Input byte array must be exactly four bytes long.");
         long unsignedInt = 0;
         unsignedInt |= bytes[0] & 0xFF;
@@ -81,12 +86,12 @@ public abstract class ByteUtil {
     }
 
     /**
-     * Converts a 3 byte array of unsigned bytes to unsigned int
+     * Converts a 3 byte array of unsigned bytes to unsigned int.
      *
      * @param bytes an array of 4 unsigned bytes
      * @return a long representing the unsigned int
      */
-    public static final long bytesToUnsignedMedium(final byte[] bytes) {
+    public static long bytesToUnsignedMedium(final byte[] bytes) {
         Preconditions.checkArgument(bytes.length == 3, "Input byte array must be exactly three bytes long.");
         long unsignedMedium = 0;
         unsignedMedium |= bytes[0] & 0xFF;
@@ -98,12 +103,12 @@ public abstract class ByteUtil {
     }
 
     /**
-     * Converts a 2 byte array of unsigned bytes to unsigned short
+     * Converts a 2 byte array of unsigned bytes to unsigned short.
      *
      * @param bytes an array of 2 unsigned bytes
      * @return an int representing the unsigned short
      */
-    public static final int bytesToUnsignedShort(final byte[] bytes) {
+    public static int bytesToUnsignedShort(final byte[] bytes) {
         Preconditions.checkArgument(bytes.length == 2, "Input byte array must be exactly two bytes long.");
         int unsignedShort = 0;
         unsignedShort |= bytes[0] & 0xFF;
@@ -113,7 +118,7 @@ public abstract class ByteUtil {
     }
 
     /**
-     * Converts unsigned integer to a 4 byte array of unsigned bytes
+     * Converts unsigned integer to a 4 byte array of unsigned bytes.
      *
      * @param unsignedInt representing the unsigned integer
      * @return bytes an array of 4 unsigned bytes
@@ -121,14 +126,14 @@ public abstract class ByteUtil {
     public static byte[] unsignedIntToBytes(final Long unsignedInt) {
         byte[] bytes = new byte[4];
         bytes[3] = (byte) (unsignedInt & 0xFF);
-        bytes[2] = (byte) ((unsignedInt >> 8) & 0xFF);
-        bytes[1] = (byte) ((unsignedInt >> 16) & 0xFF);
-        bytes[0] = (byte) ((unsignedInt >> 24) & 0xFF);
+        bytes[2] = (byte) (unsignedInt >> 8 & 0xFF);
+        bytes[1] = (byte) (unsignedInt >> 16 & 0xFF);
+        bytes[0] = (byte) (unsignedInt >> 24 & 0xFF);
         return bytes;
     }
 
     /**
-     * Converts unsigned integer to a 3 byte array of unsigned bytes
+     * Converts unsigned integer to a 3 byte array of unsigned bytes.
      *
      * @param unsignedInt representing the unsigned integer
      * @return bytes an array of 3 unsigned bytes
@@ -136,13 +141,13 @@ public abstract class ByteUtil {
     public static byte[] unsignedMediumToBytes(final Long unsignedInt) {
         byte[] bytes = new byte[3];
         bytes[2] = (byte) (unsignedInt & 0xFF);
-        bytes[1] = (byte) ((unsignedInt >> 8) & 0xFF);
-        bytes[0] = (byte) ((unsignedInt >> 16) & 0xFF);
+        bytes[1] = (byte) (unsignedInt >> 8 & 0xFF);
+        bytes[0] = (byte) (unsignedInt >> 16 & 0xFF);
         return bytes;
     }
 
     /**
-     * Converts unsigned short to a 2 byte array of unsigned bytes
+     * Converts unsigned short to a 2 byte array of unsigned bytes.
      *
      * @param unsignedShort representing the unsigned short
      * @return bytes an array of 2 unsigned bytes
@@ -150,7 +155,7 @@ public abstract class ByteUtil {
     public static byte[] unsignedShortToBytes(final Integer unsignedShort) {
         byte[] bytes = new byte[2];
         bytes[1] = (byte) (unsignedShort & 0xFF);
-        bytes[0] = (byte) ((unsignedShort >> 8) & 0xFF);
+        bytes[0] = (byte) (unsignedShort >> 8 & 0xFF);
         return bytes;
     }
 }
index 3d2d92dd3c82197667c074bf5aa5416b80330d87..e14c0e590aa840c322e86360861d4740c3a4f97d 100644 (file)
@@ -87,7 +87,8 @@ public abstract class InventoryDataServiceUtil {
     public static NodeConnectorId nodeConnectorIdfromDatapathPortNo(final BigInteger datapathid, final Long portNo,
                                                                     final OpenflowVersion ofVersion) {
         String logicalName = OpenflowPortsUtil.getPortLogicalName(ofVersion, portNo);
-        return new NodeConnectorId(OFConstants.OF_URI_PREFIX + datapathid + ":" + (logicalName == null ? portNo : logicalName));
+        return new NodeConnectorId(OFConstants.OF_URI_PREFIX + datapathid + ":" + (logicalName == null
+                ? portNo : logicalName));
     }
 
     @Nullable
@@ -95,6 +96,12 @@ public abstract class InventoryDataServiceUtil {
         return portNumberfromNodeConnectorId(ofVersion, ncId.getValue());
     }
 
+    @Nullable
+    public static Long portNumberfromNodeConnectorId(final OpenflowVersion ofVersion, @Nonnull final String ncId) {
+        String portNoString = portNoStringfromNodeConnectorID(ncId);
+        return OpenflowPortsUtil.getPortFromLogicalName(ofVersion, portNoString);
+    }
+
     public static String portNoStringfromNodeConnectorID(final String ncID) {
 
         List<String> splitStringList = COLON_SPLITTER.splitToList(ncID);
@@ -103,24 +110,19 @@ public abstract class InventoryDataServiceUtil {
         // If the length is just one then this cannot be the new MD-SAL style node connector Id which
         // is of the form openflow:1:3.
 
-        return splitStringList.get(splitStringList.size()-1);
-    }
-
-    @Nullable
-    public static Long portNumberfromNodeConnectorId(final OpenflowVersion ofVersion, @Nonnull final String ncId) {
-        String portNoString = portNoStringfromNodeConnectorID(ncId);
-        return OpenflowPortsUtil.getPortFromLogicalName(ofVersion, portNoString);
+        return splitStringList.get(splitStringList.size() - 1);
     }
 
 
-    public static NodeConnectorRef nodeConnectorRefFromDatapathIdPortno(final BigInteger datapathId, final Long portNo, final OpenflowVersion ofVersion) {
+    public static NodeConnectorRef nodeConnectorRefFromDatapathIdPortno(final BigInteger datapathId, final Long portNo,
+            final OpenflowVersion ofVersion) {
         return new NodeConnectorRef(nodeConnectorInstanceIdentifierFromDatapathIdPortno(datapathId, portNo, ofVersion));
     }
 
     public static NodeConnectorRef nodeConnectorRefFromDatapathIdPortno(final BigInteger datapathId, final Long portNo,
-                                                                        final OpenflowVersion ofVersion,
-                                                                        final KeyedInstanceIdentifier<Node, NodeKey> nodePath) {
-        return new NodeConnectorRef(nodeConnectorInstanceIdentifierFromDatapathIdPortno(datapathId, portNo, ofVersion, nodePath));
+            final OpenflowVersion ofVersion, final KeyedInstanceIdentifier<Node, NodeKey> nodePath) {
+        return new NodeConnectorRef(
+                nodeConnectorInstanceIdentifierFromDatapathIdPortno(datapathId, portNo, ofVersion, nodePath));
     }
 
     public static InstanceIdentifier<NodeConnector> nodeConnectorInstanceIdentifierFromDatapathIdPortno(
@@ -131,27 +133,31 @@ public abstract class InventoryDataServiceUtil {
     }
 
     public static InstanceIdentifier<NodeConnector> nodeConnectorInstanceIdentifierFromDatapathIdPortno(
-            final BigInteger datapathId, final Long portNo, final OpenflowVersion ofVersion, final KeyedInstanceIdentifier<Node, NodeKey> nodePath) {
+            final BigInteger datapathId, final Long portNo, final OpenflowVersion ofVersion,
+            final KeyedInstanceIdentifier<Node, NodeKey> nodePath) {
         NodeConnectorId nodeConnectorId = nodeConnectorIdfromDatapathPortNo(datapathId, portNo, ofVersion);
         return nodePath.child(NodeConnector.class, new NodeConnectorKey(nodeConnectorId));
     }
 
-    public static NodeConnectorUpdatedBuilder nodeConnectorUpdatedBuilderFromDatapathIdPortNo(final BigInteger datapathId,
-                                                                                              final Long portNo, final OpenflowVersion ofVersion) {
+    public static NodeConnectorUpdatedBuilder nodeConnectorUpdatedBuilderFromDatapathIdPortNo(
+            final BigInteger datapathId, final Long portNo, final OpenflowVersion ofVersion) {
         NodeConnectorUpdatedBuilder builder = new NodeConnectorUpdatedBuilder();
         builder.setId(InventoryDataServiceUtil.nodeConnectorIdfromDatapathPortNo(datapathId, portNo, ofVersion));
-        builder.setNodeConnectorRef(InventoryDataServiceUtil.nodeConnectorRefFromDatapathIdPortno(datapathId, portNo, ofVersion));
+        builder.setNodeConnectorRef(InventoryDataServiceUtil.nodeConnectorRefFromDatapathIdPortno(
+                datapathId, portNo, ofVersion));
         return builder;
     }
 
     public static NodeConnectorBuilder nodeConnectorBuilderFromDatapathIdPortNo(final BigInteger datapathId,
-                                                                                final Long portNo, final OpenflowVersion ofVersion) {
+            final Long portNo, final OpenflowVersion ofVersion) {
         NodeConnectorBuilder builder = new NodeConnectorBuilder();
         builder.setId(InventoryDataServiceUtil.nodeConnectorIdfromDatapathPortNo(datapathId, portNo, ofVersion));
         return builder;
     }
 
     /**
+     * Converts a BigInteger to a padded hex value.
+     *
      * @param dataPathId datapath id in big interger value
      * @return string of size 16, padded with '0'
      */
@@ -159,8 +165,10 @@ public abstract class InventoryDataServiceUtil {
         return StringUtils.leftPad(dataPathId.toString(16), 16, "0");
     }
 
-    //TODO : create new module openflowplugin-util, move there this method along with TestProviderTransactionUtil#getDataObject
-    private static <T extends DataObject> T getDataObject(final ReadTransaction readOnlyTransaction, final InstanceIdentifier<T> identifier) {
+    // TODO : create new module openflowplugin-util, move there this method along with
+    // TestProviderTransactionUtil#getDataObject
+    private static <T extends DataObject> T getDataObject(final ReadTransaction readOnlyTransaction,
+            final InstanceIdentifier<T> identifier) {
         Optional<T> optionalData = null;
         try {
             optionalData = readOnlyTransaction.read(LogicalDatastoreType.OPERATIONAL, identifier).get();
@@ -172,5 +180,4 @@ public abstract class InventoryDataServiceUtil {
         }
         return null;
     }
-
-}
\ No newline at end of file
+}
index 1e207cc3de95aa8bbd48f956d41fce8f3cc2a3ed..e5ca4f77c581c95f2971b672ae33e89f542a08fd 100644 (file)
@@ -27,11 +27,13 @@ import org.slf4j.LoggerFactory;
  * This class is responsible for converting MDSAL given logical names to port numbers and back.
  * Any newer version of openflow can have a similar mapping or can/should be extended.
  */
-public class OpenflowPortsUtil {
+public final class OpenflowPortsUtil {
+    private OpenflowPortsUtil() {
+    }
 
     private static final Logger LOG = LoggerFactory.getLogger(OpenflowPortsUtil.class);
-    private static final ImmutableBiMap<Short, ImmutableBiMap<String, Long>> versionPortMap;
-    private static final ImmutableBiMap<Short, ImmutableBiMap<Long, String>> versionInversePortMap;
+    private static final ImmutableBiMap<Short, ImmutableBiMap<String, Long>> VERSION_PORT_MAP;
+    private static final ImmutableBiMap<Short, ImmutableBiMap<Long, String>> VERSION_INVERSE_PORT_MAP;
 
     private static boolean inportWarnignAlreadyFired = false;
 
@@ -44,39 +46,50 @@ public class OpenflowPortsUtil {
                 .put(OutputPortValues.NORMAL.getName(), (long) PortNumberValuesV10.NORMAL.getIntValue()) //0xfffa
                 .put(OutputPortValues.FLOOD.getName(), (long) PortNumberValuesV10.FLOOD.getIntValue()) //0xfffb
                 .put(OutputPortValues.ALL.getName(), (long) PortNumberValuesV10.ALL.getIntValue()) //0xfffc
-                .put(OutputPortValues.CONTROLLER.getName(), (long) PortNumberValuesV10.CONTROLLER.getIntValue()) //0xfffd
+                .put(OutputPortValues.CONTROLLER.getName(),
+                        (long) PortNumberValuesV10.CONTROLLER.getIntValue()) //0xfffd
                 .put(OutputPortValues.LOCAL.getName(), (long) PortNumberValuesV10.LOCAL.getIntValue()) //0xfffe
                 .put(OutputPortValues.NONE.getName(), (long) PortNumberValuesV10.NONE.getIntValue()) //0xffff
                 .build();
 
         // openflow 1.3 reserved ports.
-        // PortNumberValues are defined in OFJava yang. And yang maps an int to all enums. Hence we need to create longs from (-ve) ints
+        // PortNumberValues are defined in OFJava yang. And yang maps an int to all enums. Hence we need to create
+        // longs from (-ve) ints
         // TODO: do we need to define these ports in yang?
         final ImmutableBiMap<String, Long> ofv13ports = new ImmutableBiMap.Builder<String, Long>()
-                .put(OutputPortValues.MAX.getName(), BinContent.intToUnsignedLong(PortNumberValues.MAX.getIntValue())) //0xffffff00
-                .put(OutputPortValues.INPORT.getName(), BinContent.intToUnsignedLong(PortNumberValues.INPORT.getIntValue())) //0xfffffff8
-                .put(OutputPortValues.TABLE.getName(), BinContent.intToUnsignedLong(PortNumberValues.TABLE.getIntValue())) //0xfffffff9
-                .put(OutputPortValues.NORMAL.getName(), BinContent.intToUnsignedLong(PortNumberValues.NORMAL.getIntValue())) //0xfffffffa
-                .put(OutputPortValues.FLOOD.getName(), BinContent.intToUnsignedLong(PortNumberValues.FLOOD.getIntValue())) //0xfffffffb
-                .put(OutputPortValues.ALL.getName(), BinContent.intToUnsignedLong(PortNumberValues.ALL.getIntValue())) //0xfffffffc
-                .put(OutputPortValues.CONTROLLER.getName(), BinContent.intToUnsignedLong(PortNumberValues.CONTROLLER.getIntValue())) //0xfffffffd
-                .put(OutputPortValues.LOCAL.getName(), BinContent.intToUnsignedLong(PortNumberValues.LOCAL.getIntValue())) //0xfffffffe
-                .put(OutputPortValues.ANY.getName(), BinContent.intToUnsignedLong(PortNumberValues.ANY.getIntValue())) //0xffffffff
+                .put(OutputPortValues.MAX.getName(),
+                        BinContent.intToUnsignedLong(PortNumberValues.MAX.getIntValue())) // 0xffffff00
+                .put(OutputPortValues.INPORT.getName(),
+                        BinContent.intToUnsignedLong(PortNumberValues.INPORT.getIntValue())) // 0xfffffff8
+                .put(OutputPortValues.TABLE.getName(),
+                        BinContent.intToUnsignedLong(PortNumberValues.TABLE.getIntValue())) // 0xfffffff9
+                .put(OutputPortValues.NORMAL.getName(),
+                        BinContent.intToUnsignedLong(PortNumberValues.NORMAL.getIntValue())) // 0xfffffffa
+                .put(OutputPortValues.FLOOD.getName(),
+                        BinContent.intToUnsignedLong(PortNumberValues.FLOOD.getIntValue())) // 0xfffffffb
+                .put(OutputPortValues.ALL.getName(),
+                        BinContent.intToUnsignedLong(PortNumberValues.ALL.getIntValue())) // 0xfffffffc
+                .put(OutputPortValues.CONTROLLER.getName(),
+                        BinContent.intToUnsignedLong(PortNumberValues.CONTROLLER.getIntValue())) // 0xfffffffd
+                .put(OutputPortValues.LOCAL.getName(),
+                        BinContent.intToUnsignedLong(PortNumberValues.LOCAL.getIntValue())) // 0xfffffffe
+                .put(OutputPortValues.ANY.getName(),
+                        BinContent.intToUnsignedLong(PortNumberValues.ANY.getIntValue())) // 0xffffffff
                 .build();
 
-        versionPortMap = new ImmutableBiMap.Builder<Short, ImmutableBiMap<String, Long>>()
+        VERSION_PORT_MAP = new ImmutableBiMap.Builder<Short, ImmutableBiMap<String, Long>>()
                 .put(OFConstants.OFP_VERSION_1_0, ofv10ports)
                 .put(OFConstants.OFP_VERSION_1_3, ofv13ports)
                 .build();
 
-        versionInversePortMap = new ImmutableBiMap.Builder<Short, ImmutableBiMap<Long, String>>()
+        VERSION_INVERSE_PORT_MAP = new ImmutableBiMap.Builder<Short, ImmutableBiMap<Long, String>>()
                 .put(OFConstants.OFP_VERSION_1_0, ofv10ports.inverse())
                 .put(OFConstants.OFP_VERSION_1_3, ofv13ports.inverse())
                 .build();
     }
 
     public static String getPortLogicalName(final short ofVersion, final Long portNumber) {
-        return versionInversePortMap.get(ofVersion).get(portNumber);
+        return VERSION_INVERSE_PORT_MAP.get(ofVersion).get(portNumber);
     }
 
     public static String getPortLogicalName(final OpenflowVersion ofVersion, final Long portNumber) {
@@ -97,9 +110,9 @@ public class OpenflowPortsUtil {
                 LOG.warn("Using '{}' in port field is not recommended use 'IN_PORT' instead", logicalNameOrPort);
                 inportWarnignAlreadyFired = true;
             }
-            port = versionPortMap.get(ofVersion.getVersion()).get(OutputPortValues.INPORT.getName());
+            port = VERSION_PORT_MAP.get(ofVersion.getVersion()).get(OutputPortValues.INPORT.getName());
         } else {
-            port = versionPortMap.get(ofVersion.getVersion()).get(logicalNameOrPort);
+            port = VERSION_PORT_MAP.get(ofVersion.getVersion()).get(logicalNameOrPort);
         }
         if (port == null) {
             try {
@@ -126,7 +139,7 @@ public class OpenflowPortsUtil {
         final String portLogicalName = port.getString();
 
         return portLogicalName != null
-                ? versionPortMap.get(ofVersion.getVersion()).get(portLogicalName)
+                ? VERSION_PORT_MAP.get(ofVersion.getVersion()).get(portLogicalName)
                 : port.getUint32();
     }
 
@@ -135,10 +148,12 @@ public class OpenflowPortsUtil {
     }
 
     public static boolean isPortReserved(final OpenflowVersion ofVersion, final Long portNumber) {
-        return versionInversePortMap.get(ofVersion.getVersion()).containsKey(portNumber);
+        return VERSION_INVERSE_PORT_MAP.get(ofVersion.getVersion()).containsKey(portNumber);
     }
 
     /**
+     * Checks port validity.
+     *
      * @param ofVersion OpenFlow version of the switch
      * @param portNumber port number
      * @return true if port number is valid for given protocol version
@@ -158,6 +173,8 @@ public class OpenflowPortsUtil {
     }
 
     /**
+     * Converts a port number to a string.
+     *
      * @param portNumber port number
      * @return string containing number or logical name
      */
@@ -172,7 +189,8 @@ public class OpenflowPortsUtil {
     }
 
     /**
-     * Converts port number to Uri
+     * Converts port number to Uri.
+     *
      * @param version openflow version
      * @param portNumber port number
      * @return port number uri
@@ -180,5 +198,4 @@ public class OpenflowPortsUtil {
     public static Uri getProtocolAgnosticPortUri(final short version, final long portNumber) {
         return new Uri(portNumberToString(getProtocolAgnosticPort(OpenflowVersion.get(version), portNumber)));
     }
-
 }