Refactor AbstractIdentifiable
[yangtools.git] / yang / rfc7952-data-util / src / main / java / org / opendaylight / yangtools / rfc7952 / data / util / ImmutableNormalizedMetadata.java
index cfadc61f7cd55a3d19ea0ffe38ef3aaea6893167..4d5b0491adc29f0a1a41a964fd9f917530948890 100644 (file)
@@ -16,6 +16,7 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.concepts.AbstractSimpleIdentifiable;
 import org.opendaylight.yangtools.rfc7952.data.api.NormalizedMetadata;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
@@ -24,9 +25,10 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgum
  * Immutable implementation of {@link NormalizedMetadata}.
  */
 @Beta
-public class ImmutableNormalizedMetadata implements NormalizedMetadata {
+public class ImmutableNormalizedMetadata extends AbstractSimpleIdentifiable<PathArgument>
+        implements NormalizedMetadata {
     private static final class Container extends ImmutableNormalizedMetadata {
-        private final ImmutableMap<PathArgument, NormalizedMetadata> children;
+        private final @NonNull ImmutableMap<PathArgument, NormalizedMetadata> children;
 
         Container(final PathArgument identifier, final Map<QName, Object> annotations,
                 final Map<PathArgument, ImmutableNormalizedMetadata> children) {
@@ -40,11 +42,10 @@ public class ImmutableNormalizedMetadata implements NormalizedMetadata {
         }
     }
 
-    private final @NonNull PathArgument identifier;
     private final @NonNull ImmutableMap<QName, Object> annotations;
 
-    ImmutableNormalizedMetadata(final PathArgument identifier, final Map<QName, Object> annotations) {
-        this.identifier = requireNonNull(identifier);
+    ImmutableNormalizedMetadata(final @NonNull PathArgument identifier, final Map<QName, Object> annotations) {
+        super(identifier);
         this.annotations = ImmutableMap.copyOf(annotations);
     }
 
@@ -57,11 +58,6 @@ public class ImmutableNormalizedMetadata implements NormalizedMetadata {
         return new Builder();
     }
 
-    @Override
-    public final PathArgument getIdentifier() {
-        return identifier;
-    }
-
     @Override
     public final ImmutableMap<QName, Object> getAnnotations() {
         return annotations;