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%2FInputStatementImpl.java;h=bb8ca59626a3bf2ae1a0197cdc31c9d656b15091;hb=0c39d30a237a61b7a7eb0fecb066004ff561e1a9;hp=e0b7189a3fc1c0c6d9a535063b1bf4f6155af321;hpb=6af38a495f688cbfa0ff2c09db7e62e4d530bb3a;p=yangtools.git diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/InputStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/InputStatementImpl.java index e0b7189a3f..bb8ca59626 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/InputStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/InputStatementImpl.java @@ -1,4 +1,4 @@ -/** +/* * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the @@ -7,25 +7,40 @@ */ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.InputEffectiveStatementImpl; - -import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; import java.util.Collection; +import javax.annotation.Nonnull; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.YangStmtMapping; +import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.DataDefinitionStatement; import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement; -import org.opendaylight.yangtools.yang.model.api.stmt.TypedefStatement; import org.opendaylight.yangtools.yang.model.api.stmt.InputStatement; -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.MustStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.TypedefStatement; 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.StmtContext; +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.stmt.rfc6020.effective.InputEffectiveStatementImpl; public class InputStatementImpl extends AbstractDeclaredStatement implements InputStatement { + private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(YangStmtMapping + .INPUT) + .addAny(YangStmtMapping.ANYXML) + .addAny(YangStmtMapping.CHOICE) + .addAny(YangStmtMapping.CONTAINER) + .addAny(YangStmtMapping.GROUPING) + .addAny(YangStmtMapping.LEAF) + .addAny(YangStmtMapping.LEAF_LIST) + .addAny(YangStmtMapping.LIST) + .addAny(YangStmtMapping.TYPEDEF) + .addAny(YangStmtMapping.USES) + .build(); - protected InputStatementImpl(StmtContext context) { + protected InputStatementImpl(final StmtContext context) { super(context); } @@ -34,42 +49,58 @@ public class InputStatementImpl extends AbstractDeclaredStatement AbstractStatementSupport> { public Definition() { - super(Rfc6020Mapping.INPUT); + super(YangStmtMapping.INPUT); } @Override - public QName parseArgumentValue(StmtContext ctx, String value) - throws SourceException { - value = "input"; - return Utils.qNameFromArgument(ctx, value); + public QName parseArgumentValue(final StmtContext ctx, final String value) { + return StmtContextUtils.qnameFromArgument(ctx, "input"); + } + + @Override + public void onStatementAdded(final Mutable> stmt) { + stmt.getParentContext().addToNs(ChildSchemaNodes.class, stmt.getStatementArgument(), stmt); } @Override public InputStatement createDeclared( - StmtContext ctx) { + final StmtContext ctx) { return new InputStatementImpl(ctx); } @Override public EffectiveStatement createEffective( - StmtContext> ctx) { + final StmtContext> ctx) { return new InputEffectiveStatementImpl(ctx); } + @Override + protected SubstatementValidator getSubstatementValidator() { + return SUBSTATEMENT_VALIDATOR; + } } + @Nonnull @Override public Collection getTypedefs() { return allDeclared(TypedefStatement.class); } + @Nonnull @Override public Collection getGroupings() { return allDeclared(GroupingStatement.class); } + @Nonnull @Override public Collection getDataDefinitions() { return allDeclared(DataDefinitionStatement.class); } + + @Nonnull + @Override + public Collection getMusts() { + return allDeclared(MustStatement.class); + } }