ifesdjeen commented on code in PR #3711:
URL: https://github.com/apache/cassandra/pull/3711#discussion_r1863376200
##########
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:
this was auto-formatting. Fixed to 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]