X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=parser%2Fyang-parser-rfc7950%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Frfc7950%2Fstmt%2Faugment%2FAbstractAugmentStatementSupport.java;h=f771fc6c886baa6485b540f3c0f2c0a145622b72;hb=refs%2Fchanges%2F96%2F97896%2F6;hp=48b9fb40a0a95b0709420a5dec176ef061833629;hpb=da73a2179571830c2d9da75957fbb664accf26c6;p=yangtools.git diff --git a/parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/augment/AbstractAugmentStatementSupport.java b/parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/augment/AbstractAugmentStatementSupport.java index 48b9fb40a0..f771fc6c88 100644 --- a/parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/augment/AbstractAugmentStatementSupport.java +++ b/parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/augment/AbstractAugmentStatementSupport.java @@ -7,15 +7,11 @@ */ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.augment; -import static com.google.common.base.Verify.verify; - import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; import java.util.List; -import java.util.Objects; import java.util.regex.Pattern; import org.opendaylight.yangtools.yang.common.Empty; -import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode; import org.opendaylight.yangtools.yang.model.api.Status; import org.opendaylight.yangtools.yang.model.api.YangStmtMapping; import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference; @@ -38,6 +34,7 @@ import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.ArgumentUtils; import org.opendaylight.yangtools.yang.parser.spi.SchemaTreeNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport; +import org.opendaylight.yangtools.yang.parser.spi.meta.BoundStmtCtx; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; import org.opendaylight.yangtools.yang.parser.spi.meta.ModelActionBuilder; import org.opendaylight.yangtools.yang.parser.spi.meta.ModelActionBuilder.Prerequisite; @@ -47,7 +44,6 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.Mutable; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils; import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator; import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; -import org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase; abstract class AbstractAugmentStatementSupport extends AbstractStatementSupport { @@ -59,7 +55,6 @@ abstract class AbstractAugmentStatementSupport (copy, current, substatements) -> copy.getArgument().equals(current.getArgument()) && copy.moduleName().getModule().equals(current.moduleName().getModule()) - && Objects.equals(copy.original(), current.original()) ), config, validator); } @@ -93,7 +88,7 @@ abstract class AbstractAugmentStatementSupport final Mutable augmentNode) { if (!augmentNode.isSupportedByFeatures()) { // We need this augment node to be present, but it should not escape to effective world - augmentNode.setIsSupportedToBuildEffective(false); + augmentNode.setUnsupported(); } super.onFullDefinitionDeclared(augmentNode); @@ -111,8 +106,8 @@ abstract class AbstractAugmentStatementSupport } @Override - protected final AugmentStatement createDeclared(final StmtContext ctx, - final ImmutableList> substatements) { + protected final AugmentStatement createDeclared(final BoundStmtCtx ctx, + final ImmutableList> substatements) { return DeclaredStatements.createAugment(ctx.getRawArgument(), ctx.getArgument(), substatements); } @@ -128,12 +123,9 @@ abstract class AbstractAugmentStatementSupport final List> substatements) { // Pick up the marker left by onFullDefinitionDeclared() inference action. If it is present we need to pass our // children through target's implicit wrapping. - final StatementContextBase implicitDef = stmt.getFromNamespace(AugmentImplicitHandlingNamespace.class, - Empty.value()); - return implicitDef == null ? substatements : Lists.transform(substatements, subCtx -> { - verify(subCtx instanceof StatementContextBase); - return implicitDef.wrapWithImplicit((StatementContextBase) subCtx); - }); + final var implicitDef = stmt.getFromNamespace(AugmentImplicitHandlingNamespace.class, Empty.value()); + return implicitDef == null ? substatements + : Lists.transform(substatements, subCtx -> implicitDef.wrapWithImplicit(subCtx)); } @Override @@ -146,7 +138,7 @@ abstract class AbstractAugmentStatementSupport try { return EffectiveStatements.createAugment(stmt.declared(), stmt.getArgument(), flags, - stmt.moduleName().getModule(), substatements, stmt.original(AugmentationSchemaNode.class)); + stmt.moduleName().getModule(), substatements); } catch (SubstatementIndexingException e) { throw new SourceException(e.getMessage(), stmt, e); }