Fix sonar warnings in sal-distributed-datastore
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / persisted / ShardDataTreeSnapshotMetadata.java
index f883a8d358f091385b0096ee35b6ab5eabe44688..3ba5a91a9cd63e70333b7216966ab9e6a8fb2edb 100644 (file)
@@ -15,12 +15,15 @@ import javax.annotation.Nonnull;
 /**
  * Base class for various bits of metadata attached to a {@link MetadataShardDataTreeSnapshot}. This class is not
  * an interface because we want to make sure all subclasses implement the externalizable proxy pattern, for which
- * we need to force {@link #readResolve()} to be abstract.
- * <p/>
+ * we need to force {@link #writeReplace()} to be abstract. We do that by making it final and exposing a protected
+ * {@link #externalizableProxy()} method.
+ *
+ * <p>
  * All concrete subclasses of this class should be final so as to form a distinct set of possible metadata. Since
  * metadata is serialized along with {@link MetadataShardDataTreeSnapshot}, this set is part of the serialization format
  * guarded by {@link PayloadVersion}.
- * <p/>
+ *
+ * <p>
  * If a new metadata type is introduced or a type is removed, {@link PayloadVersion} needs to be bumped to ensure
  * compatibility.
  *
@@ -43,7 +46,8 @@ public abstract class ShardDataTreeSnapshotMetadata<T extends ShardDataTreeSnaps
      *
      * @return Externalizable proxy, may not be null
      */
-    protected abstract @Nonnull Externalizable externalizableProxy();
+    @Nonnull
+    protected abstract Externalizable externalizableProxy();
 
     public abstract Class<T> getType();
 }