Use a switch expression for Payload parsing
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / persisted / PayloadVersion.java
index eb94a70bf54ea7330aff5e3242ff20089eb3c766..0cd939a36bae9279f22aa7a118f6691906a4b1f3 100644 (file)
@@ -50,30 +50,8 @@ public enum PayloadVersion implements WritableObject {
     },
 
     /**
-     * Initial ABI version, as shipped with Boron Simultaneous release.
-     */
-    // We seed the initial version to be the same as DataStoreVersions.BORON_VERSION for compatibility reasons.
-    BORON(5) {
-        @Override
-        public NormalizedNodeStreamVersion getStreamVersion() {
-            return NormalizedNodeStreamVersion.LITHIUM;
-        }
-    },
-
-    /**
-     * Revised payload version. Payloads remain the same as {@link #BORON}, but messages bearing QNames in any shape
-     * are using {@link NormalizedNodeStreamVersion#NEON_SR2}, which improves encoding.
-     */
-    NEON_SR2(6) {
-        @Override
-        public NormalizedNodeStreamVersion getStreamVersion() {
-            return NormalizedNodeStreamVersion.NEON_SR2;
-        }
-    },
-
-    /**
-     * Revised payload version. Payloads remain the same as {@link #NEON_SR2}, but messages bearing QNames in any shape
-     * are using {@link NormalizedNodeStreamVersion#SODIUM_SR1}, which improves encoding.
+     * ABI version as shipped in Sodium SR1 Simultaneous Release. QName-bearing messages are using
+     * {@link NormalizedNodeStreamVersion#SODIUM_SR1}, which improves encoding.
      */
     SODIUM_SR1(7) {
         @Override
@@ -148,24 +126,12 @@ public enum PayloadVersion implements WritableObject {
      */
     public static @NonNull PayloadVersion valueOf(final short version)
             throws FutureVersionException, PastVersionException {
-        switch (Short.toUnsignedInt(version)) {
-            case 0:
-            case 1:
-            case 2:
-            case 3:
-            case 4:
-                throw new PastVersionException(version, BORON);
-            case 5:
-                return BORON;
-            case 6:
-                return NEON_SR2;
-            case 7:
-                return SODIUM_SR1;
-            case 8:
-                return MAGNESIUM;
-            default:
-                throw new FutureVersionException(version, MAGNESIUM);
-        }
+        return switch (Short.toUnsignedInt(version)) {
+            case 0, 1, 2, 3, 4, 5, 6 -> throw new PastVersionException(version, SODIUM_SR1);
+            case 7 -> SODIUM_SR1;
+            case 8 -> MAGNESIUM;
+            default -> throw new FutureVersionException(version, MAGNESIUM);
+        };
     }
 
     @Override
@@ -186,7 +152,7 @@ public enum PayloadVersion implements WritableObject {
         try {
             return valueOf(s);
         } catch (FutureVersionException | PastVersionException e) {
-            throw new IOException("Unsupported version", e);
+            throw new IOException(e);
         }
     }
 }