From cd53876e4c8643e40245a29300284b0ca999fb1a Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Thu, 5 Oct 2023 17:04:54 +0200 Subject: [PATCH] Remove EffectiveAugmentationSchema This class is not needed anywhere and has been deprecated for removal. Remove it in this major iteration. Change-Id: Ibad4f6e66b559285e5fda61281e421c12da23838 Signed-off-by: Robert Varga --- .../util/EffectiveAugmentationSchema.java | 150 ------------------ .../yangtools/yang/model/util/YT1404Test.java | 9 +- 2 files changed, 2 insertions(+), 157 deletions(-) delete mode 100644 model/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/EffectiveAugmentationSchema.java diff --git a/model/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/EffectiveAugmentationSchema.java b/model/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/EffectiveAugmentationSchema.java deleted file mode 100644 index 8eeaced131..0000000000 --- a/model/yang-model-util/src/main/java/org/opendaylight/yangtools/yang/model/util/EffectiveAugmentationSchema.java +++ /dev/null @@ -1,150 +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.model.util; - -import static java.util.Objects.requireNonNull; - -import com.google.common.collect.ImmutableMap; -import java.util.Collection; -import java.util.Optional; -import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.model.api.ActionDefinition; -import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode; -import org.opendaylight.yangtools.yang.model.api.DataNodeContainer; -import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; -import org.opendaylight.yangtools.yang.model.api.GroupingDefinition; -import org.opendaylight.yangtools.yang.model.api.NotificationDefinition; -import org.opendaylight.yangtools.yang.model.api.Status; -import org.opendaylight.yangtools.yang.model.api.TypeDefinition; -import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; -import org.opendaylight.yangtools.yang.model.api.UsesNode; -import org.opendaylight.yangtools.yang.model.api.stmt.AugmentEffectiveStatement; -import org.opendaylight.yangtools.yang.xpath.api.YangXPathExpression.QualifiedBound; - -/** - * Proxy for AugmentationSchema. Child node schemas are replaced with actual schemas from parent. This is needed to - * correctly interpret constructs like this: - *
- *   
- *     container foo;
- *
- *     augment /foo {
- *       container bar;
- *     }
- *
- *     augment /foo/bar {
- *       container baz;
- *     }
- *   
- * 
- * The {@link AugmentationSchemaNode} returned for {@code augment /foo} contains bare {@code container bar}, e.g. it - * does not show {@code augment /foo/bar} as an available augmentation -- this is only visible in {@code foo}'s schema - * nodes. - * - *

- * Note this class only handles {@link DataSchemaNode}s, not all {@code schema tree} statements, as it strictly should. - * - * @deprecated This class should not be needed anymore. - */ -@Deprecated(since = "11.0.0", forRemoval = true) -public final class EffectiveAugmentationSchema implements AugmentationSchemaNode { - private final ImmutableMap children; - private final AugmentationSchemaNode delegate; - - public EffectiveAugmentationSchema(final AugmentationSchemaNode augment, final DataNodeContainer target) { - delegate = requireNonNull(augment); - - final var augmentChildren = augment.getChildNodes(); - final var builder = ImmutableMap.builderWithExpectedSize(augmentChildren.size()); - for (var augChild : augmentChildren) { - // parent may have the corresponding child removed via 'deviate unsupported', i.e. the child is effectively - // not present at the target site - final var qname = augChild.getQName(); - final var targetChild = target.dataChildByName(qname); - if (targetChild != null) { - builder.put(qname, targetChild); - } - } - children = builder.build(); - } - - @Override - public Optional getWhenCondition() { - return delegate.getWhenCondition(); - } - - @Override - public Optional getDescription() { - return delegate.getDescription(); - } - - @Override - public Optional getReference() { - return delegate.getReference(); - } - - @Override - public Status getStatus() { - return delegate.getStatus(); - } - - @Override - public Collection getUnknownSchemaNodes() { - return delegate.getUnknownSchemaNodes(); - } - - @Override - public Collection> getTypeDefinitions() { - return delegate.getTypeDefinitions(); - } - - @Override - public Collection getChildNodes() { - return children.values(); - } - - @Override - public Collection getGroupings() { - return delegate.getGroupings(); - } - - @Override - public DataSchemaNode dataChildByName(final QName name) { - return children.get(requireNonNull(name)); - } - - @Override - public Collection getUses() { - return delegate.getUses(); - } - - @Override - public Collection getActions() { - return delegate.getActions(); - } - - @Override - public Optional findAction(final QName qname) { - return delegate.findAction(qname); - } - - @Override - public Collection getNotifications() { - return delegate.getNotifications(); - } - - @Override - public Optional findNotification(final QName qname) { - return delegate.findNotification(qname); - } - - @Override - public AugmentEffectiveStatement asEffectiveStatement() { - return delegate.asEffectiveStatement(); - } -} diff --git a/model/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/YT1404Test.java b/model/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/YT1404Test.java index c65e676707..cd679f460b 100644 --- a/model/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/YT1404Test.java +++ b/model/yang-model-util/src/test/java/org/opendaylight/yangtools/yang/model/util/YT1404Test.java @@ -60,13 +60,8 @@ class YT1404Test { final var foo = assertInstanceOf(ContainerSchemaNode.class, module.getDataChildByName(FOO)); assertEquals(1, foo.getChildNodes().size()); - final var fooBar = assertInstanceOf(LeafSchemaNode.class, foo.dataChildByName(BAR)); + assertInstanceOf(LeafSchemaNode.class, foo.dataChildByName(BAR)); - final var fooAugment = Iterables.getOnlyElement(foo.getAvailableAugmentations()); - assertSame(augment, fooAugment); - - final var effectiveAug = new EffectiveAugmentationSchema(augment, foo); - assertEquals(1, effectiveAug.getChildNodes().size()); - assertSame(fooBar, effectiveAug.getDataChildByName(BAR)); + assertSame(augment, Iterables.getOnlyElement(foo.getAvailableAugmentations())); } } -- 2.36.6