Bump version odlparent->6.0.0,mdsal->5.0.3
[genius.git] / mdsalutil / mdsalutil-api / src / main / java / org / opendaylight / genius / mdsalutil / actions / ActionLearn.java
index 395e543b4ddf694b902a6d0143b5b417b1fd168a..a39e72eab72ae98b36f2fa2b9593715342426a9c 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.genius.mdsalutil.actions;
 
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -29,29 +28,29 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.ni
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.learn.grouping.NxLearnBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.learn.grouping.nx.learn.FlowMods;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.learn.grouping.nx.learn.FlowModsBuilder;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 /**
  * Learn action.
  */
 public class ActionLearn extends ActionInfo {
-    private static final long serialVersionUID = 1L;
 
     private final int idleTimeout;
     private final int hardTimeout;
     private final int priority;
-    private final BigInteger cookie;
+    private final Uint64 cookie;
     private final int flags;
     private final short tableId;
     private final int finIdleTimeout;
     private final int finHardTimeout;
     private final List<FlowMod> flowMods = new ArrayList<>();
 
-    public ActionLearn(int idleTimeout, int hardTimeout, int priority, BigInteger cookie, int flags, short tableId,
+    public ActionLearn(int idleTimeout, int hardTimeout, int priority, Uint64 cookie, int flags, short tableId,
         int finIdleTimeout, int finHardTimeout, List<FlowMod> flowMods) {
         this(0, idleTimeout, hardTimeout, priority, cookie, flags, tableId, finIdleTimeout, finHardTimeout, flowMods);
     }
 
-    public ActionLearn(int actionKey, int idleTimeout, int hardTimeout, int priority, BigInteger cookie, int flags,
+    public ActionLearn(int actionKey, int idleTimeout, int hardTimeout, int priority, Uint64 cookie, int flags,
         short tableId, int finIdleTimeout, int finHardTimeout, List<FlowMod> flowMods) {
         super(actionKey);
         this.idleTimeout = idleTimeout;
@@ -86,7 +85,7 @@ public class ActionLearn extends ActionInfo {
         learnBuilder.setFlowMods(this.flowMods.stream().map(FlowMod::buildFlowMod).collect(Collectors.toList()));
 
         return new ActionBuilder()
-            .setKey(new ActionKey(newActionKey))
+            .withKey(new ActionKey(newActionKey))
             .setAction(new NxActionLearnNodesNodeTableFlowApplyActionsCaseBuilder()
                 .setNxLearn(learnBuilder.build()).build())
             .build();
@@ -104,7 +103,7 @@ public class ActionLearn extends ActionInfo {
         return priority;
     }
 
-    public BigInteger getCookie() {
+    public Uint64 getCookie() {
         return cookie;
     }
 
@@ -184,28 +183,64 @@ public class ActionLearn extends ActionInfo {
         return result;
     }
 
+    @Override
+    public String toString() {
+        return "ActionLearn [actionKey=" + getActionKey() + ", idleTimeout=" + idleTimeout + ", hardTimeout="
+                + hardTimeout + ", priority=" + priority + ", cookie=" + cookie + ", flags=" + flags + ", tableId="
+                + tableId + ", finIdleTimeout=" + finIdleTimeout + ", finHardTimeout=" + finHardTimeout + ", flowMods="
+                + flowMods + "]";
+    }
+
     public interface FlowMod {
         FlowMods buildFlowMod();
     }
 
     public static class MatchFromField implements FlowMod {
         private final long sourceField;
+        private final int srcOffset;
         private final long destField;
+        private final int dstOffset;
         private final int bits;
 
-        public MatchFromField(long sourceField, long destField, int bits) {
+        public MatchFromField(long sourceField, int srcOffset, long destField, int dstOffset, int bits) {
             this.sourceField = sourceField;
+            this.srcOffset = srcOffset;
             this.destField = destField;
+            this.dstOffset = dstOffset;
             this.bits = bits;
         }
 
+        public MatchFromField(long sourceField, long destField, int bits) {
+            this(sourceField, 0, destField, 0, bits);
+        }
+
+        public long getSourceField() {
+            return sourceField;
+        }
+
+        public long getDestField() {
+            return destField;
+        }
+
+        public int getBits() {
+            return bits;
+        }
+
+        public int getSrcOffset() {
+            return srcOffset;
+        }
+
+        public int getDstOffset() {
+            return dstOffset;
+        }
+
         @Override
         public FlowMods buildFlowMod() {
             FlowModAddMatchFromFieldBuilder builder = new FlowModAddMatchFromFieldBuilder();
             builder.setSrcField(sourceField);
-            builder.setSrcOfs(0);
+            builder.setSrcOfs(srcOffset);
             builder.setDstField(destField);
-            builder.setDstOfs(0);
+            builder.setDstOfs(dstOffset);
             builder.setFlowModNumBits(bits);
 
             FlowModsBuilder flowModsBuilder = new FlowModsBuilder();
@@ -232,6 +267,12 @@ public class ActionLearn extends ActionInfo {
             if (destField != that.destField) {
                 return false;
             }
+            if (srcOffset != that.srcOffset) {
+                return false;
+            }
+            if (dstOffset != that.dstOffset) {
+                return false;
+            }
             return bits == that.bits;
         }
 
@@ -239,28 +280,58 @@ public class ActionLearn extends ActionInfo {
         public int hashCode() {
             int result = (int) (sourceField ^ sourceField >>> 32);
             result = 31 * result + (int) (destField ^ destField >>> 32);
+            result = 31 * result + srcOffset;
+            result = 31 * result + dstOffset;
             result = 31 * result + bits;
             return result;
         }
+
+        @Override
+        public String toString() {
+            return "MatchFromField [sourceField=" + sourceField + ", srcOffset=" + srcOffset + ", destField="
+                    + destField + ", dstOffset=" + dstOffset + ", bits=" + bits + "]";
+        }
     }
 
     public static class MatchFromValue implements FlowMod {
         private final int value;
         private final long sourceField;
+        private final int srcOffset;
         private final int bits;
 
-        public MatchFromValue(int value, long sourceField, int bits) {
+        public MatchFromValue(int value, long sourceField, int srcOffset, int bits) {
             this.value = value;
             this.sourceField = sourceField;
+            this.srcOffset = srcOffset;
             this.bits = bits;
         }
 
+        public MatchFromValue(int value, long sourceField, int bits) {
+            this(value, sourceField, 0, bits);
+        }
+
+        public int getValue() {
+            return value;
+        }
+
+        public long getSourceField() {
+            return sourceField;
+        }
+
+        public int getBits() {
+            return bits;
+        }
+
+        public int getSrcOffset() {
+            return srcOffset;
+        }
+
         @Override
         public FlowMods buildFlowMod() {
             FlowModAddMatchFromValueBuilder builder = new FlowModAddMatchFromValueBuilder();
             builder.setValue(value);
             builder.setSrcField(sourceField);
-            builder.setSrcOfs(0);
+            builder.setSrcOfs(srcOffset);
             builder.setFlowModNumBits(bits);
 
             FlowModsBuilder flowModsBuilder = new FlowModsBuilder();
@@ -287,6 +358,9 @@ public class ActionLearn extends ActionInfo {
             if (sourceField != that.sourceField) {
                 return false;
             }
+            if (srcOffset != that.srcOffset) {
+                return false;
+            }
             return bits == that.bits;
         }
 
@@ -294,29 +368,64 @@ public class ActionLearn extends ActionInfo {
         public int hashCode() {
             int result = value;
             result = 31 * result + (int) (sourceField ^ sourceField >>> 32);
+            result = 31 * result + srcOffset;
             result = 31 * result + bits;
             return result;
         }
+
+        @Override
+        public String toString() {
+            return "MatchFromValue [value=" + value + ", sourceField=" + sourceField + ", srcOffset="
+                    + srcOffset + ", bits=" + bits + "]";
+        }
     }
 
     public static class CopyFromField implements FlowMod {
         private final long sourceField;
+        private final int srcOffset;
         private final long destField;
+        private final int dstOffset;
         private final int bits;
 
-        public CopyFromField(long sourceField, long destField, int bits) {
+        public CopyFromField(long sourceField, int srcOffset, long destField, int dstOffset, int bits) {
             this.sourceField = sourceField;
+            this.srcOffset = srcOffset;
             this.destField = destField;
+            this.dstOffset = dstOffset;
             this.bits = bits;
         }
 
+        public CopyFromField(long sourceField, long destField, int bits) {
+            this(sourceField, 0, destField, 0, bits);
+        }
+
+        public long getSourceField() {
+            return sourceField;
+        }
+
+        public long getDestField() {
+            return destField;
+        }
+
+        public int getBits() {
+            return bits;
+        }
+
+        public int getSrcOffset() {
+            return srcOffset;
+        }
+
+        public int getDstOffset() {
+            return dstOffset;
+        }
+
         @Override
         public FlowMods buildFlowMod() {
             FlowModCopyFieldIntoFieldBuilder builder = new FlowModCopyFieldIntoFieldBuilder();
             builder.setSrcField(sourceField);
-            builder.setSrcOfs(0);
+            builder.setSrcOfs(srcOffset);
             builder.setDstField(destField);
-            builder.setDstOfs(0);
+            builder.setDstOfs(dstOffset);
             builder.setFlowModNumBits(bits);
 
             FlowModsBuilder flowModsBuilder = new FlowModsBuilder();
@@ -343,6 +452,12 @@ public class ActionLearn extends ActionInfo {
             if (destField != that.destField) {
                 return false;
             }
+            if (srcOffset != that.srcOffset) {
+                return false;
+            }
+            if (dstOffset != that.dstOffset) {
+                return false;
+            }
             return bits == that.bits;
         }
 
@@ -350,28 +465,58 @@ public class ActionLearn extends ActionInfo {
         public int hashCode() {
             int result = (int) (sourceField ^ sourceField >>> 32);
             result = 31 * result + (int) (destField ^ destField >>> 32);
+            result = 31 * result + srcOffset;
+            result = 31 * result + dstOffset;
             result = 31 * result + bits;
             return result;
         }
+
+        @Override
+        public String toString() {
+            return "CopyFromField [sourceField=" + sourceField + ", srcOffset=" + srcOffset + ", destField="
+                    + destField + ", dstOffset=" + dstOffset + ", bits=" + bits + "]";
+        }
     }
 
     public static class CopyFromValue implements FlowMod {
         private final int value;
         private final long destField;
+        private final int dstOffset;
         private final int bits;
 
         public CopyFromValue(int value, long destField, int bits) {
+            this(value, destField, 0, bits);
+        }
+
+        public CopyFromValue(int value, long destField, int dstOffset, int bits) {
             this.value = value;
             this.destField = destField;
+            this.dstOffset = dstOffset;
             this.bits = bits;
         }
 
+        public int getValue() {
+            return value;
+        }
+
+        public long getDestField() {
+            return destField;
+        }
+
+        public int getBits() {
+            return bits;
+        }
+
+        public int getDstOffset() {
+            return dstOffset;
+        }
+
         @Override
         public FlowMods buildFlowMod() {
             FlowModCopyValueIntoFieldBuilder builder = new FlowModCopyValueIntoFieldBuilder();
             builder.setValue(value);
             builder.setDstField(destField);
-            builder.setDstOfs(0);
+            builder.setDstOfs(dstOffset);
             builder.setFlowModNumBits(bits);
 
             FlowModsBuilder flowModsBuilder = new FlowModsBuilder();
@@ -398,6 +543,9 @@ public class ActionLearn extends ActionInfo {
             if (destField != that.destField) {
                 return false;
             }
+            if (dstOffset != that.dstOffset) {
+                return false;
+            }
             return bits == that.bits;
         }
 
@@ -405,9 +553,16 @@ public class ActionLearn extends ActionInfo {
         public int hashCode() {
             int result = value;
             result = 31 * result + (int) (destField ^ destField >>> 32);
+            result = 31 * result +  dstOffset;
             result = 31 * result + bits;
             return result;
         }
+
+        @Override
+        public String toString() {
+            return "CopyFromValue [value=" + value + ", destField=" + destField + ", dstOffset=" + dstOffset
+                    + ", bits=" + bits + "]";
+        }
     }
 
     public static class OutputToPort implements FlowMod {
@@ -419,6 +574,14 @@ public class ActionLearn extends ActionInfo {
             this.bits = bits;
         }
 
+        public long getSourceField() {
+            return sourceField;
+        }
+
+        public int getBits() {
+            return bits;
+        }
+
         @Override
         public FlowMods buildFlowMod() {
             FlowModOutputToPortBuilder builder = new FlowModOutputToPortBuilder();
@@ -456,5 +619,10 @@ public class ActionLearn extends ActionInfo {
             result = 31 * result + bits;
             return result;
         }
+
+        @Override
+        public String toString() {
+            return "OutputToPort [sourceField=" + sourceField + ", bits=" + bits + "]";
+        }
     }
 }