Seal IdentifiableItemCodec 60/106460/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 13 Jun 2023 10:48:19 +0000 (12:48 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 13 Jun 2023 10:48:19 +0000 (12:48 +0200)
We have only two concrete subclasses, make sure the JVM knows that.

Change-Id: Ic9121d08ce6ca6140918bac001132ba68681b32e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/IdentifiableItemCodec.java

index 54d244760ab779452a7084049c4b2c5505c593ec..008bb31807e97a5015aa54fa408d1f818b0fc4fd 100644 (file)
@@ -36,8 +36,7 @@ import org.slf4j.LoggerFactory;
 /**
  * Codec support for extracting the {@link Identifiable#key()} method return from a MapEntryNode.
  */
-// FIXME: sealed class when we have JDK17+
-abstract class IdentifiableItemCodec {
+abstract sealed class IdentifiableItemCodec {
     private static final class SingleKey extends IdentifiableItemCodec {
         private static final MethodType CTOR_TYPE = MethodType.methodType(Identifier.class, Object.class);
 
@@ -126,7 +125,7 @@ abstract class IdentifiableItemCodec {
     private final Class<?> identifiable;
     private final QName qname;
 
-    IdentifiableItemCodec(final ListEffectiveStatement schema, final Class<? extends Identifier<?>> keyClass,
+    private IdentifiableItemCodec(final ListEffectiveStatement schema, final Class<? extends Identifier<?>> keyClass,
             final Class<?> identifiable) {
         this.identifiable = requireNonNull(identifiable);
         qname = schema.argument();