Consolidate UnionTypeEffectiveStatementImpl
[yangtools.git] / yang / yang-parser-rfc7950 / src / main / java / org / opendaylight / yangtools / yang / parser / rfc7950 / stmt / type / AbstractTypeStatementSupport.java
index ff7821dcd947c56c2e2aa5a92de156564936c2f6..dbad0d5e8191cd3f4b316f64c2894c868a44accb 100644 (file)
@@ -260,7 +260,7 @@ abstract class AbstractTypeStatementSupport
             return new IntegralTypeEffectiveStatementImpl<>(ctx,
                     RestrictedTypes.newUint64Builder((Uint64TypeDefinition) baseType, typeEffectiveSchemaPath(ctx)));
         } else if (baseType instanceof UnionTypeDefinition) {
-            return new UnionTypeEffectiveStatementImpl(ctx, (UnionTypeDefinition) baseType);
+            return createUnion(ctx, (UnionTypeDefinition) baseType, declared, substatements);
         } else {
             throw new IllegalStateException("Unhandled base type " + baseType);
         }
@@ -374,4 +374,10 @@ abstract class AbstractTypeStatementSupport
             typeEffectiveSchemaPath(ctx)));
     }
 
+    private static @NonNull TypeEffectiveStatement<TypeStatement> createUnion(final StmtContext<?, ?, ?> ctx,
+            final UnionTypeDefinition baseType, final TypeStatement declared,
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+        return new TypeEffectiveStatementImpl<>(declared, substatements, RestrictedTypes.newUnionBuilder(baseType,
+            typeEffectiveSchemaPath(ctx)));
+    }
 }
\ No newline at end of file