belliottsmith commented on code in PR #3711:
URL: https://github.com/apache/cassandra/pull/3711#discussion_r1862435181


##########
src/java/org/apache/cassandra/service/accord/serializers/DepsSerializer.java:
##########
@@ -46,93 +46,133 @@
 
 public abstract class DepsSerializer<D extends Deps> extends 
IVersionedWithKeysSerializer.AbstractWithKeysSerializer implements 
IVersionedWithKeysSerializer<Unseekables<?>, D>
 {
-    public static final DepsSerializer<Deps> deps = new DepsSerializer<>()
+    private static DepsSerializers instance = new 
DepsSerializers((IVersionedSerializer<Range>) (IVersionedSerializer<?>) 
TokenRange.serializer);
+
+    private final IVersionedSerializer<Range> tokenRange;
+
+    protected DepsSerializer(IVersionedSerializer<Range> tokenRange)
     {
-        @Override
-        Deps deserialize(KeyDeps keyDeps, RangeDeps rangeDeps, KeyDeps 
directKeyDeps, DataInputPlus in, int version)
-        {
-            return new Deps(keyDeps, rangeDeps, directKeyDeps);
-        }
-    };
-    public static final IVersionedSerializer<Deps> nullableDeps = 
NullableSerializer.wrap(deps);
+        this.tokenRange = tokenRange;
+    }
 
-    public static final DepsSerializer<PartialDeps> partialDeps = new 
DepsSerializer<>()
+    public static class DepsSerializers
     {
-        @Override
-        PartialDeps deserialize(KeyDeps keyDeps, RangeDeps rangeDeps, KeyDeps 
directKeyDeps, DataInputPlus in, int version) throws IOException
+        public DepsSerializers(IVersionedSerializer<Range> tokenRange)
         {
-            Participants<?> covering = 
KeySerializers.participants.deserialize(in, version);
-            return new PartialDeps(covering, keyDeps, rangeDeps, 
directKeyDeps);
+            this.deps = new DepsSerializer<>(tokenRange)
+            {
+                @Override
+                Deps deserialize(KeyDeps keyDeps, RangeDeps rangeDeps, KeyDeps 
directKeyDeps, DataInputPlus in, int version)
+                {
+                    return new Deps(keyDeps, rangeDeps, directKeyDeps);
+                }
+            };
+            this.nullableDeps = NullableSerializer.wrap(deps);
+            this.partialDeps = new DepsSerializer<>(tokenRange)
+            {
+                @Override
+                PartialDeps deserialize(KeyDeps keyDeps, RangeDeps rangeDeps, 
KeyDeps directKeyDeps, DataInputPlus in, int version) throws IOException
+                {
+                    Participants<?> covering = 
KeySerializers.participants().deserialize(in, version);
+                    return new PartialDeps(covering, keyDeps, rangeDeps, 
directKeyDeps);
+                }
+
+                @Override
+                public void serialize(PartialDeps partialDeps, DataOutputPlus 
out, int version) throws IOException
+                {
+                    super.serialize(partialDeps, out, version);
+                    
KeySerializers.participants().serialize(partialDeps.covering, out, version);
+                }
+
+                @Override
+                public void serialize(Unseekables<?> superset, PartialDeps 
partialDeps, DataOutputPlus out, int version) throws IOException
+                {
+                    super.serialize(superset, partialDeps, out, version);
+                    
KeySerializers.participants().serialize(partialDeps.covering, out, version);
+                }
+
+                @Override
+                public long serializedSize(PartialDeps partialDeps, int 
version)
+                {
+                    return super.serializedSize(partialDeps, version)
+                           + 
KeySerializers.participants().serializedSize(partialDeps.covering, version);
+                }
+
+                @Override
+                public long serializedSize(Unseekables<?> keys, PartialDeps 
partialDeps, int version)
+                {
+                    return super.serializedSize(keys, partialDeps, version)
+                           + 
KeySerializers.participants().serializedSize(partialDeps.covering, version);
+                }
+            };
+
+            this.nullablePartialDeps = NullableSerializer.wrap(partialDeps);
         }
 
-        @Override
-        public void serialize(PartialDeps partialDeps, DataOutputPlus out, int 
version) throws IOException
-        {
-            super.serialize(partialDeps, out, version);
-            KeySerializers.participants.serialize(partialDeps.covering, out, 
version);
-        }
+        private final DepsSerializer<Deps> deps;
+        private final IVersionedSerializer<Deps> nullableDeps;
+        private final DepsSerializer<PartialDeps> partialDeps;
+        private final IVersionedSerializer<PartialDeps> nullablePartialDeps;
+    }
 
-        @Override
-        public void serialize(Unseekables<?> superset, PartialDeps 
partialDeps, DataOutputPlus out, int version) throws IOException
-        {
-            super.serialize(superset, partialDeps, out, version);
-            KeySerializers.participants.serialize(partialDeps.covering, out, 
version);
-        }
+    public static DepsSerializer<Deps> deps()
+    {
+        return instance.deps;
+    }
 
-        @Override
-        public long serializedSize(PartialDeps partialDeps, int version)
-        {
-            return super.serializedSize(partialDeps, version)
-                 + 
KeySerializers.participants.serializedSize(partialDeps.covering, version);
-        }
+    public static IVersionedSerializer<Deps> nullableDeps()
+    {
+        return instance.deps;
+    }
 
-        @Override
-        public long serializedSize(Unseekables<?> keys, PartialDeps 
partialDeps, int version)
-        {
-            return super.serializedSize(keys, partialDeps, version)
-                 + 
KeySerializers.participants.serializedSize(partialDeps.covering, version);
-        }
-    };
+    public static DepsSerializer<PartialDeps> partialDeps()
+    {
+        return instance.partialDeps;
+    }
 
-    public static final IVersionedSerializer<PartialDeps> nullablePartialDeps 
= NullableSerializer.wrap(partialDeps);
+    public static IVersionedSerializer<PartialDeps> nullablePartialDeps()
+    {
+        return instance.nullablePartialDeps;
+    }
 
     abstract D deserialize(KeyDeps keyDeps, RangeDeps rangeDeps, KeyDeps 
directKeyDeps, DataInputPlus in, int version) throws IOException;
 
     @Override
     public void serialize(D deps, DataOutputPlus out, int version) throws 
IOException
     {
-        KeySerializers.routingKeys.serialize(deps.keyDeps.keys(), out, 
version);
+        KeySerializers.routingKeys().serialize(deps.keyDeps.keys(), out, 
version);
         serializeWithoutKeys(deps, out, version);
     }
 
     @Override
     public void serialize(Unseekables<?> superset, D deps, DataOutputPlus out, 
int version) throws IOException
     {
         if (superset.domain() == Key) serializeSubset(deps.keyDeps.keys(), 
superset, out);
-        else KeySerializers.routingKeys.serialize(deps.keyDeps.keys(), out, 
version);
+        else KeySerializers.routingKeys().serialize(deps.keyDeps.keys(), out, 
version);
         serializeWithoutKeys(deps, out, version);
     }
 
     @Override
     public D deserialize(DataInputPlus in, int version) throws IOException
     {
-        RoutingKeys keys = KeySerializers.routingKeys.deserialize(in, version);
+        RoutingKeys keys = KeySerializers.routingKeys().deserialize(in, 
version);
         return deserializeWithoutKeys(keys, in, version);
     }
 
     @Override
     public D deserialize(Unseekables<?> superset, DataInputPlus in, int 
version) throws IOException
     {
         RoutingKeys keys;
-        if (superset.domain() == Key) keys = 
((AbstractUnseekableKeys)deserializeSubset(superset, in)).toParticipants();
-        else keys = KeySerializers.routingKeys.deserialize(in, version);
+        if (superset.domain() == Key)
+            keys = ((AbstractUnseekableKeys) deserializeSubset(superset, 
in)).toParticipants();

Review Comment:
   either new line and indent both or neither



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to