import org.opendaylight.yangtools.concepts.SemVer;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.UnknownStatement;
+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.SemanticVersionNamespace;
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.source.SourceException;
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.SemanticVersionEffectiveStatementImpl;
@Beta
public final class SemanticVersionStatementImpl extends AbstractDeclaredStatement<SemVer> implements
UnknownStatement<SemVer> {
+ private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(
+ SupportedExtensionsMapping.SEMANTIC_VERSION).build();
SemanticVersionStatementImpl(
- StmtContext<SemVer, UnknownStatement<SemVer>, ?> context) {
+ final StmtContext<SemVer, UnknownStatement<SemVer>, ?> context) {
super(context);
}
}
@Override
- public SemVer parseArgumentValue(StmtContext<?, ?, ?> ctx, String value) {
+ public SemVer parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
return SemVer.valueOf(value) ;
}
@Override
- public void onLinkageDeclared(StmtContext.Mutable<SemVer,UnknownStatement<SemVer>,EffectiveStatement<SemVer,UnknownStatement<SemVer>>> stmt) {
+ public void onLinkageDeclared(final StmtContext.Mutable<SemVer,UnknownStatement<SemVer>,EffectiveStatement<SemVer,UnknownStatement<SemVer>>> stmt) {
stmt.addToNs(SemanticVersionNamespace.class, stmt.getParentContext(), stmt.getStatementArgument());
}
+ @Override
+ public void onFullDefinitionDeclared(
+ final Mutable<SemVer, UnknownStatement<SemVer>, EffectiveStatement<SemVer, UnknownStatement<SemVer>>> stmt)
+ throws SourceException {
+ getSubstatementValidator().validate(stmt);
+ }
+
@Override
public UnknownStatement<SemVer> createDeclared(
- StmtContext<SemVer, UnknownStatement<SemVer>, ?> ctx) {
+ final StmtContext<SemVer, UnknownStatement<SemVer>, ?> ctx) {
return new SemanticVersionStatementImpl(ctx);
}
final StmtContext<SemVer, UnknownStatement<SemVer>, EffectiveStatement<SemVer, UnknownStatement<SemVer>>> ctx) {
return new SemanticVersionEffectiveStatementImpl(ctx);
}
+
+ @Override
+ protected SubstatementValidator getSubstatementValidator() {
+ return SUBSTATEMENT_VALIDATOR;
+ }
}
@Override