X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Fstmt%2Frfc6020%2FExtensionStatementImpl.java;h=0dd010deba6de5ad3b9cb564d007b5d973d3876a;hb=d20d90de04fa676f96d117d827fe284370fdc3d9;hp=e3ff0d39fb7a3092fc9b6e062ac8c95252eb904c;hpb=3d283ec6184505ad5e7eefb173044ff383222e9f;p=yangtools.git diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ExtensionStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ExtensionStatementImpl.java index e3ff0d39fb..0dd010deba 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ExtensionStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/ExtensionStatementImpl.java @@ -7,23 +7,30 @@ */ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.ExtensionEffectiveStatementImpl; import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.model.api.stmt.ArgumentStatement; import org.opendaylight.yangtools.yang.model.api.Rfc6020Mapping; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; -import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.ArgumentStatement; import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceStatement; import org.opendaylight.yangtools.yang.model.api.stmt.StatusStatement; import org.opendaylight.yangtools.yang.parser.spi.ExtensionNamespace; +import org.opendaylight.yangtools.yang.parser.spi.SubstatementValidator; import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement; import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport; -import org.opendaylight.yangtools.yang.parser.spi.meta.InferenceException; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; +import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.ExtensionEffectiveStatementImpl; public class ExtensionStatementImpl extends AbstractDeclaredStatement implements ExtensionStatement { + private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(Rfc6020Mapping + .EXTENSION) + .add(Rfc6020Mapping.ARGUMENT, 0, 1) + .add(Rfc6020Mapping.DESCRIPTION, 0, 1) + .add(Rfc6020Mapping.REFERENCE, 0, 1) + .add(Rfc6020Mapping.STATUS, 0, 1) + .build(); protected ExtensionStatementImpl(StmtContext context) { super(context); @@ -51,9 +58,16 @@ public class ExtensionStatementImpl extends AbstractDeclaredStatement imp } @Override - public void onStatementDefinitionDeclared(final StmtContext.Mutable> stmt) throws InferenceException, SourceException { + public void onStatementDefinitionDeclared(final StmtContext.Mutable> stmt) throws SourceException { stmt.addContext(ExtensionNamespace.class, stmt.getStatementArgument(), stmt); } + + @Override + public void onFullDefinitionDeclared(StmtContext.Mutable> stmt) throws SourceException { + super.onFullDefinitionDeclared(stmt); + SUBSTATEMENT_VALIDATOR.validate(stmt); + } } @Override