* 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.parser.openconfig.stmt;
+package org.opendaylight.yangtools.openconfig.parser;
import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.concepts.SemVer;
* 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.parser.openconfig.stmt;
+package org.opendaylight.yangtools.openconfig.parser;
import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.concepts.SemVer;
* 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.parser.openconfig.stmt;
+package org.opendaylight.yangtools.openconfig.parser;
import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.concepts.SemVer;
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.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.meta.SubstatementValidator;
public final class OpenConfigVersionSupport
return SemVer.valueOf(value);
}
- @Override
- public void onLinkageDeclared(
- final Mutable<SemVer, OpenConfigVersionStatement, OpenConfigVersionEffectiveStatement> stmt) {
- stmt.addToNs(SemanticVersionNamespace.class, stmt.getParentContext(), stmt.argument());
- }
-
@Override
protected OpenConfigVersionStatement createDeclared(final BoundStmtCtx<SemVer> ctx,
final ImmutableList<DeclaredStatement<?>> substatements) {
* 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.parser.openconfig.stmt;
+package org.opendaylight.yangtools.openconfig.parser;
import org.opendaylight.yangtools.concepts.SemVer;
import org.opendaylight.yangtools.openconfig.model.api.OpenConfigVersionStatement;
import org.opendaylight.yangtools.odlext.parser.RpcContextReferenceStatementSupport;
import org.opendaylight.yangtools.openconfig.parser.EncryptedValueStatementSupport;
import org.opendaylight.yangtools.openconfig.parser.HashedValueStatementSupport;
+import org.opendaylight.yangtools.openconfig.parser.OpenConfigVersionSupport;
import org.opendaylight.yangtools.rfc6241.parser.GetFilterElementAttributesStatementSupport;
import org.opendaylight.yangtools.rfc6536.parser.DefaultDenyAllStatementSupport;
import org.opendaylight.yangtools.rfc6536.parser.DefaultDenyWriteStatementSupport;
private static @NonNull CustomCrossSourceStatementReactorBuilder addExtensions(
final @NonNull CustomCrossSourceStatementReactorBuilder builder, final YangParserConfiguration config) {
return builder
- // OpenDaylight extensions
- .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION,
- new AugmentIdentifierStatementSupport(config))
- .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new ContextInstanceStatementSupport(config))
- .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION,
- new ContextReferenceStatementSupport(config))
- .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new InstanceTargetStatementSupport(config))
- .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION,
- new RpcContextReferenceStatementSupport(config))
-
- // RFC6241 get-filter-element-attributes support
- .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION,
- new GetFilterElementAttributesStatementSupport(config))
-
- // RFC6536 default-deny-{all,write} support
- .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION,
- new DefaultDenyAllStatementSupport(config))
- .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION,
- new DefaultDenyWriteStatementSupport(config))
-
- // RFC6643 extensions
- .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new DisplayHintStatementSupport(config))
- .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new MaxAccessStatementSupport(config))
- .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new DefValStatementSupport(config))
- .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new ImpliedStatementSupport(config))
- .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new AliasStatementSupport(config))
- .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new OidStatementSupport(config))
- .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new SubIdStatementSupport(config))
-
- // RFC7952 annotation support
- .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new AnnotationStatementSupport(config))
-
- // RFC8040 yang-data support
- .addNamespaceSupport(ModelProcessingPhase.FULL_DECLARATION, YangDataArgumentNamespace.BEHAVIOUR)
- .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new YangDataStatementSupport(config))
-
- // RFC8528 mount-point support
- .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new MountPointStatementSupport(config))
-
- // RFC8639 subscription-state-notification support
- .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION,
- new SubscriptionStateNotificationStatementSupport(config))
-
- // OpenConfig extensions support (except openconfig-version)
- .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION,
- new EncryptedValueStatementSupport(config))
- .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION,
- new HashedValueStatementSupport(config));
+ // OpenDaylight extensions
+ .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new AugmentIdentifierStatementSupport(config))
+ .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new ContextInstanceStatementSupport(config))
+ .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new ContextReferenceStatementSupport(config))
+ .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new InstanceTargetStatementSupport(config))
+ .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new RpcContextReferenceStatementSupport(config))
+
+ // RFC6241 get-filter-element-attributes support
+ .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION,
+ new GetFilterElementAttributesStatementSupport(config))
+
+ // RFC6536 default-deny-{all,write} support
+ .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new DefaultDenyAllStatementSupport(config))
+ .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new DefaultDenyWriteStatementSupport(config))
+
+ // RFC6643 extensions
+ .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new DisplayHintStatementSupport(config))
+ .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new MaxAccessStatementSupport(config))
+ .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new DefValStatementSupport(config))
+ .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new ImpliedStatementSupport(config))
+ .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new AliasStatementSupport(config))
+ .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new OidStatementSupport(config))
+ .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new SubIdStatementSupport(config))
+
+ // RFC7952 annotation support
+ .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new AnnotationStatementSupport(config))
+
+ // RFC8040 yang-data support
+ .addNamespaceSupport(ModelProcessingPhase.FULL_DECLARATION, YangDataArgumentNamespace.BEHAVIOUR)
+ .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new YangDataStatementSupport(config))
+
+ // RFC8528 mount-point support
+ .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new MountPointStatementSupport(config))
+
+ // RFC8639 subscription-state-notification support
+ .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION,
+ new SubscriptionStateNotificationStatementSupport(config))
+
+ // OpenConfig extensions support
+ .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new EncryptedValueStatementSupport(config))
+ .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new HashedValueStatementSupport(config))
+ .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, new OpenConfigVersionSupport(config));
}
}
<groupId>org.opendaylight.yangtools</groupId>
<artifactId>yang-xpath-api</artifactId>
</dependency>
- <dependency>
- <groupId>org.opendaylight.yangtools</groupId>
- <artifactId>openconfig-model-api</artifactId>
- </dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
requires transitive org.opendaylight.yangtools.yang.xpath.api;
requires org.antlr.antlr4.runtime;
- requires org.opendaylight.yangtools.openconfig.model.api;
requires org.opendaylight.yangtools.yang.model.ri;
requires org.opendaylight.yangtools.util;
requires org.slf4j;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.common.YangVersion;
import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
-import org.opendaylight.yangtools.yang.parser.openconfig.stmt.OpenConfigVersionSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.namespace.ModuleQNameToPrefix;
import org.opendaylight.yangtools.yang.parser.rfc7950.namespace.YangNamespaceContextNamespace;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.augment.AugmentImplicitHandlingNamespace;
import org.opendaylight.yangtools.yang.parser.spi.SubmoduleNamespace;
import org.opendaylight.yangtools.yang.parser.spi.TypeNamespace;
import org.opendaylight.yangtools.yang.parser.spi.meta.ModelProcessingPhase;
-import org.opendaylight.yangtools.yang.parser.spi.meta.SemanticVersionNamespace;
import org.opendaylight.yangtools.yang.parser.spi.meta.StatementDefinitionNamespace;
import org.opendaylight.yangtools.yang.parser.spi.meta.StatementSupportBundle;
import org.opendaylight.yangtools.yang.parser.spi.source.BelongsToModuleContext;
public static @NonNull CustomCrossSourceStatementReactorBuilder defaultReactorBuilder(
final YangParserConfiguration config) {
- return addExtensions(vanillaReactorBuilder(config), config);
+ return vanillaReactorBuilder(config);
}
public static @NonNull CustomCrossSourceStatementReactorBuilder defaultReactorBuilder(
public static @NonNull CustomCrossSourceStatementReactorBuilder defaultReactorBuilder(
final YangXPathParserFactory xpathFactory, final YangParserConfiguration config) {
- return addExtensions(vanillaReactorBuilder(xpathFactory, config), config);
- }
-
- private static @NonNull CustomCrossSourceStatementReactorBuilder addExtensions(
- final @NonNull CustomCrossSourceStatementReactorBuilder builder, final YangParserConfiguration config) {
- return builder
- // Semantic version support
- .addStatementSupport(ModelProcessingPhase.SOURCE_LINKAGE, new OpenConfigVersionSupport(config))
- .addNamespaceSupport(ModelProcessingPhase.SOURCE_LINKAGE, SemanticVersionNamespace.BEHAVIOUR);
+ return vanillaReactorBuilder(xpathFactory, config);
}
/**
import static java.util.Objects.requireNonNull;
import com.google.common.collect.ImmutableList;
-import org.opendaylight.yangtools.openconfig.model.api.OpenConfigStatements;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
final Mutable<QName, ExtensionStatement, ExtensionEffectiveStatement> stmt) {
super.onStatementDefinitionDeclared(stmt);
- QName stmtName = stmt.getArgument();
- if (OpenConfigStatements.OPENCONFIG_VERSION.getStatementName().isEqualWithoutRevision(stmtName)) {
- stmtName = stmtName.withoutRevision();
- }
-
- stmt.addContext(ExtensionNamespace.class, stmtName, stmt);
+ stmt.addContext(ExtensionNamespace.class, stmt.getArgument(), stmt);
final StmtContext<QName, ?, ?> argument = StmtContextUtils.findFirstDeclaredSubstatement(stmt,
ArgumentStatement.class);
import com.google.common.collect.ImmutableList;
import java.util.Collection;
import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.openconfig.model.api.OpenConfigStatements;
import org.opendaylight.yangtools.yang.common.Empty;
import org.opendaylight.yangtools.yang.common.XMLNamespace;
import org.opendaylight.yangtools.yang.common.YangVersion;
SubstatementValidator.builder(YangStmtMapping.IMPORT)
.addMandatory(YangStmtMapping.PREFIX)
.addOptional(YangStmtMapping.REVISION_DATE)
- .addOptional(OpenConfigStatements.OPENCONFIG_VERSION)
.build();
private static final SubstatementValidator RFC7950_VALIDATOR =
SubstatementValidator.builder(YangStmtMapping.IMPORT)
.addMandatory(YangStmtMapping.PREFIX)
.addOptional(YangStmtMapping.REVISION_DATE)
- .addOptional(OpenConfigStatements.OPENCONFIG_VERSION)
.addOptional(YangStmtMapping.DESCRIPTION)
.addOptional(YangStmtMapping.REFERENCE)
.build();
import java.util.Map;
import java.util.Optional;
import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.openconfig.model.api.OpenConfigStatements;
import org.opendaylight.yangtools.yang.common.Empty;
import org.opendaylight.yangtools.yang.common.QNameModule;
import org.opendaylight.yangtools.yang.common.Revision;
.addAny(YangStmtMapping.TYPEDEF)
.addAny(YangStmtMapping.USES)
.addOptional(YangStmtMapping.YANG_VERSION)
- .addOptional(OpenConfigStatements.OPENCONFIG_VERSION)
.build();
private static final SubstatementValidator RFC7950_VALIDATOR = SubstatementValidator.builder(YangStmtMapping.MODULE)
.addAny(YangStmtMapping.ANYDATA)
.addAny(YangStmtMapping.TYPEDEF)
.addAny(YangStmtMapping.USES)
.addMandatory(YangStmtMapping.YANG_VERSION)
- .addOptional(OpenConfigStatements.OPENCONFIG_VERSION)
.build();
private ModuleStatementSupport(final YangParserConfiguration config, final SubstatementValidator validator) {
+++ /dev/null
-/*
- * Copyright (c) 2016 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.parser.spi.meta;
-
-import com.google.common.annotations.Beta;
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.SemVer;
-
-/**
- * Namespace class for storing semantic version of yang modules.
- */
-@Beta
-@Deprecated(since = "7.0.11", forRemoval = true)
-public interface SemanticVersionNamespace extends ParserNamespace<StmtContext<?, ?, ?>, SemVer> {
- NamespaceBehaviour<StmtContext<?, ?, ?>, SemVer, @NonNull SemanticVersionNamespace> BEHAVIOUR =
- NamespaceBehaviour.global(SemanticVersionNamespace.class);
-
-}
public void testNamespaces() {
// Touch behaviors
// FIXME: add more checks/split this up when behaviours are testable
- assertNotNull(SemanticVersionNamespace.BEHAVIOUR);
assertNotNull(StatementDefinitionNamespace.BEHAVIOUR);
}
}