Consolidate EmptyTypeEffectiveStatementImpl 85/90885/4
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 2 Jul 2020 17:46:43 +0000 (19:46 +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 empty
type, migrate it.

JIRA: YANGTOOLS-1065
Change-Id: I9b77ce4b609f1624a18de97e3f3c6272ea22003b
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/EmptyTypeEffectiveStatementImpl.java [deleted file]

index bf17401ba6a1ec17eaee6182edcd816b6eb79887..e783ad1132679cffedd518af19848a490d8194e5 100644 (file)
@@ -223,7 +223,7 @@ abstract class AbstractTypeStatementSupport
         } else if (baseType instanceof DecimalTypeDefinition) {
             return new DecimalTypeEffectiveStatementImpl(ctx, (DecimalTypeDefinition) baseType);
         } else if (baseType instanceof EmptyTypeDefinition) {
-            return new EmptyTypeEffectiveStatementImpl(ctx, (EmptyTypeDefinition) baseType);
+            return createEmpty(ctx, (EmptyTypeDefinition) baseType, declared, substatements);
         } else if (baseType instanceof EnumTypeDefinition) {
             return new EnumTypeEffectiveStatementImpl(ctx, (EnumTypeDefinition) baseType);
         } else if (baseType instanceof IdentityrefTypeDefinition) {
@@ -359,4 +359,11 @@ abstract class AbstractTypeStatementSupport
         return new TypeEffectiveStatementImpl<>(declared, substatements, RestrictedTypes.newBooleanBuilder(baseType,
             typeEffectiveSchemaPath(ctx)));
     }
+
+    private static @NonNull TypeEffectiveStatement<TypeStatement> createEmpty(final StmtContext<?, ?, ?> ctx,
+            final EmptyTypeDefinition baseType, final TypeStatement declared,
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+        return new TypeEffectiveStatementImpl<>(declared, substatements, RestrictedTypes.newEmptyBuilder(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/EmptyTypeEffectiveStatementImpl.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/EmptyTypeEffectiveStatementImpl.java
deleted file mode 100644 (file)
index 488b9dc..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.EmptyTypeDefinition;
-import org.opendaylight.yangtools.yang.model.util.type.RestrictedTypes;
-import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
-
-final class EmptyTypeEffectiveStatementImpl extends AbstractTypeEffectiveStatement<EmptyTypeDefinition> {
-    EmptyTypeEffectiveStatementImpl(
-            final StmtContext<String, TypeStatement, EffectiveStatement<String, TypeStatement>> ctx,
-            final EmptyTypeDefinition baseType) {
-        super(ctx, RestrictedTypes.newEmptyBuilder(baseType,
-            AbstractTypeStatementSupport.typeEffectiveSchemaPath(ctx)));
-    }
-}