Consolidate IdentityrefTypeEffectiveStatementImpl 86/90886/4
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 2 Jul 2020 17:49:30 +0000 (19:49 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 2 Jul 2020 22:31:55 +0000 (00:31 +0200)
TypeEffectiveStatementImpl can easily support the case of an identityref
type, migrate it.

JIRA: YANGTOOLS-1065
Change-Id: Ibc13fff074cf7c4f597686f75ba55f65f6870ba1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/AbstractTypeStatementSupport.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/IdentityrefTypeEffectiveStatementImpl.java [deleted file]

index e783ad1132679cffedd518af19848a490d8194e5..ff7821dcd947c56c2e2aa5a92de156564936c2f6 100644 (file)
@@ -227,7 +227,7 @@ abstract class AbstractTypeStatementSupport
         } else if (baseType instanceof EnumTypeDefinition) {
             return new EnumTypeEffectiveStatementImpl(ctx, (EnumTypeDefinition) baseType);
         } else if (baseType instanceof IdentityrefTypeDefinition) {
-            return new IdentityrefTypeEffectiveStatementImpl(ctx, (IdentityrefTypeDefinition) baseType);
+            return createIdentityref(ctx, (IdentityrefTypeDefinition) baseType, declared, substatements);
         } else if (baseType instanceof InstanceIdentifierTypeDefinition) {
             return new InstanceIdentifierTypeEffectiveStatementImpl(ctx,
                 (InstanceIdentifierTypeDefinition) baseType);
@@ -366,4 +366,12 @@ abstract class AbstractTypeStatementSupport
         return new TypeEffectiveStatementImpl<>(declared, substatements, RestrictedTypes.newEmptyBuilder(baseType,
             typeEffectiveSchemaPath(ctx)));
     }
+
+    private static @NonNull TypeEffectiveStatement<TypeStatement> createIdentityref(final StmtContext<?, ?, ?> ctx,
+            final IdentityrefTypeDefinition baseType, final TypeStatement declared,
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+        return new TypeEffectiveStatementImpl<>(declared, substatements, RestrictedTypes.newIdentityrefBuilder(baseType,
+            typeEffectiveSchemaPath(ctx)));
+    }
+
 }
\ No newline at end of file
diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/IdentityrefTypeEffectiveStatementImpl.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/IdentityrefTypeEffectiveStatementImpl.java
deleted file mode 100644 (file)
index 5101590..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (c) 2015 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.type;
-
-import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement;
-import org.opendaylight.yangtools.yang.model.api.type.IdentityrefTypeDefinition;
-import org.opendaylight.yangtools.yang.model.util.type.RestrictedTypes;
-import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
-
-final class IdentityrefTypeEffectiveStatementImpl extends AbstractTypeEffectiveStatement<IdentityrefTypeDefinition> {
-    IdentityrefTypeEffectiveStatementImpl(
-            final StmtContext<String, TypeStatement, EffectiveStatement<String, TypeStatement>> ctx,
-            final IdentityrefTypeDefinition baseType) {
-        super(ctx, RestrictedTypes.newIdentityrefBuilder(baseType,
-            AbstractTypeStatementSupport.typeEffectiveSchemaPath(ctx)));
-    }
-}