<version>2.0.0-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>openconfig-model-api</artifactId>
+ <version>2.0.0-SNAPSHOT</version>
+ </dependency>
+
<dependency>
<groupId>org.opendaylight.yangtools</groupId>
<artifactId>rfc7952-model-api</artifactId>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2013 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
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <parent>
+ <groupId>org.opendaylight.odlparent</groupId>
+ <artifactId>bundle-parent</artifactId>
+ <version>2.0.5</version>
+ <relativePath/>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>openconfig-model-api</artifactId>
+ <version>2.0.0-SNAPSHOT</version>
+ <packaging>bundle</packaging>
+ <name>${project.artifactId}</name>
+ <description>OpenConfig extensions metamodel</description>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.opendaylight.yangtools</groupId>
+ <artifactId>yangtools-artifacts</artifactId>
+ <version>2.0.0-SNAPSHOT</version>
+ <scope>import</scope>
+ <type>pom</type>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+
+ <dependencies>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>concepts</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>yang-common</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>yang-model-api</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <configuration>
+ <propertyExpansion>checkstyle.violationSeverity=error</propertyExpansion>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <!--
+ Maven Site Configuration
+
+ The following configuration is necessary for maven-site-plugin to
+ correctly identify the correct deployment path for OpenDaylight Maven
+ sites.
+ -->
+ <url>${odl.site.url}/${project.groupId}/${stream}/${project.artifactId}/</url>
+
+ <distributionManagement>
+ <site>
+ <id>opendaylight-site</id>
+ <url>${nexus.site.url}/${project.artifactId}/</url>
+ </site>
+ </distributionManagement>
+</project>
--- /dev/null
+/*
+ * Copyright (c) 2017 Pantheon Technologies, s.r.o. 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.openconfig.model.api;
+
+import com.google.common.collect.ImmutableList;
+import java.net.URI;
+import java.util.Collection;
+import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier;
+import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
+
+/**
+ * Constants associated with OpenDaylight extension in yang-ext.yang.
+ *
+ * @author Robert Varga
+ */
+public final class OpenConfigConstants {
+ private static final String MODULE_NAME = "yang-ext";
+ private static final URI MODULE_NAMESPACE = URI.create("http://openconfig.net/yang/openconfig-ext");
+
+ // Initial revision, defining semantic-version
+ private static final Revision SEMVER_REVISION = Revision.of("2015-10-09");
+
+ // Revised extension, adds openconfig-encrypted-value
+ private static final Revision ENCRYPTED_VALUE_REVISION = Revision.of("2017-01-29");
+
+ // Revised extension, renames openconfig-encrypted-value to openconfig-hashed-value
+ private static final Revision HASHED_VALUE_REVISION = Revision.of("2017-04-11");
+
+ /**
+ * Runtime identity of initial model.
+ */
+ public static final QNameModule SEMVER_MODULE = QNameModule.create(MODULE_NAMESPACE, SEMVER_REVISION).intern();
+
+ /**
+ * Runtime identity of model which exposed encrypted-value.
+ */
+ public static final QNameModule ENCRYPTED_VALUE_MODULE = QNameModule.create(MODULE_NAMESPACE,
+ ENCRYPTED_VALUE_REVISION).intern();
+
+ /**
+ * Runtime identity of model which exposed encrypted-value.
+ */
+ public static final QNameModule HASHED_VALUE_MODULE = QNameModule.create(MODULE_NAMESPACE, HASHED_VALUE_REVISION)
+ .intern();
+
+ /**
+ * Original model source name.
+ */
+ public static final SourceIdentifier SEMVER_SOURCE = RevisionSourceIdentifier.create(MODULE_NAME,
+ SEMVER_REVISION);
+
+ /**
+ * Original model source name.
+ */
+ public static final SourceIdentifier ENCRYPTED_VALUE_SOURCE = RevisionSourceIdentifier.create(MODULE_NAME,
+ ENCRYPTED_VALUE_REVISION);
+
+ /**
+ * Original model source name.
+ */
+ public static final SourceIdentifier HASHED_VALUE_SOURCE = RevisionSourceIdentifier.create(MODULE_NAME,
+ HASHED_VALUE_REVISION);
+
+ /**
+ * Normative prefix to use when importing {@link #SEMVER_SOURCE} and later.
+ */
+ public static final String MODULE_PREFIX = "oc-ext";
+
+ private OpenConfigConstants() {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * Return identifiers of all sources known to define the metadata extension.
+ *
+ * @return Collection of identifiers.
+ */
+ public static Collection<SourceIdentifier> knownModelSources() {
+ return ImmutableList.of(HASHED_VALUE_SOURCE, ENCRYPTED_VALUE_SOURCE, SEMVER_SOURCE);
+ }
+}
--- /dev/null
+/*
+ * Copyright (c) 2017 Pantheon Technologies, s.r.o. 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.openconfig.model.api;
+
+import static java.util.Objects.requireNonNull;
+
+import com.google.common.annotations.Beta;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
+
+@Beta
+public enum OpenConfigStatements implements StatementDefinition {
+ // FIXME: add support for hashed value
+ OPENCONFIG_VERSION(QName.create(OpenConfigConstants.SEMVER_MODULE.getNamespace(), "openconfig-version"), "semver",
+ OpenconfigVersionStatement.class, OpenconfigVersionEffectiveStatement.class);
+
+ private final Class<? extends EffectiveStatement<?, ?>> effectiveRepresentation;
+ private final Class<? extends DeclaredStatement<?>> declaredRepresentation;
+ private final QName statementName;
+ private final QName argumentName;
+
+ OpenConfigStatements(final QName statementName, final String argumentName,
+ final Class<? extends DeclaredStatement<?>> declaredRepresentation,
+ final Class<? extends EffectiveStatement<?, ?>> effectiveRepresentation) {
+ this.statementName = statementName.intern();
+ this.argumentName = QName.create(statementName, argumentName);
+ this.declaredRepresentation = requireNonNull(declaredRepresentation);
+ this.effectiveRepresentation = requireNonNull(effectiveRepresentation);
+ }
+
+ @Nonnull
+ private static QName createQName(final String namespace, final String localName) {
+ return QName.create(namespace, localName).intern();
+ }
+
+ @Nonnull
+ private static QName createQName(final String namespace, final String revision, final String localName) {
+ return QName.create(namespace, revision, localName).intern();
+ }
+
+ @Nonnull
+ @Override
+ public QName getStatementName() {
+ return statementName;
+ }
+
+ @Override
+ @Nullable
+ public QName getArgumentName() {
+ return argumentName;
+ }
+
+ @Override
+ @Nonnull
+ public Class<? extends DeclaredStatement<?>> getDeclaredRepresentationClass() {
+ return declaredRepresentation;
+ }
+
+ @Nonnull
+ @Override
+ public Class<? extends EffectiveStatement<?, ?>> getEffectiveRepresentationClass() {
+ return effectiveRepresentation;
+ }
+
+ @Override
+ public boolean isArgumentYinElement() {
+ return false;
+ }
+}
* 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.stmt.openconfig;
+package org.opendaylight.yangtools.openconfig.model.api;
import com.google.common.annotations.Beta;
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.stmt.openconfig;
+package org.opendaylight.yangtools.openconfig.model.api;
import com.google.common.annotations.Beta;
import org.opendaylight.yangtools.concepts.SemVer;
<module>yang-model-validator</module>
<module>yang-test-util</module>
+ <!-- OpenConfig (semantic version) metamodel support -->
+ <module>openconfig-model-api</module>
+
<!-- OpenDaylight messy extensions -->
<module>odlext-model-api</module>
<groupId>${project.groupId}</groupId>
<artifactId>odlext-model-api</artifactId>
</dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>openconfig-model-api</artifactId>
+ </dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>rfc8040-model-api</artifactId>
* 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.stmt.openconfig;
+package org.opendaylight.yangtools.yang.parser.openconfig.stmt;
import java.util.Objects;
import javax.annotation.Nonnull;
import org.opendaylight.yangtools.concepts.SemVer;
+import org.opendaylight.yangtools.openconfig.model.api.OpenconfigVersionEffectiveStatement;
+import org.opendaylight.yangtools.openconfig.model.api.OpenconfigVersionStatement;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.SchemaPath;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
* 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.stmt.openconfig;
+package org.opendaylight.yangtools.yang.parser.openconfig.stmt;
import org.opendaylight.yangtools.concepts.SemVer;
+import org.opendaylight.yangtools.openconfig.model.api.OpenconfigVersionStatement;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
* 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.stmt.openconfig;
+package org.opendaylight.yangtools.yang.parser.openconfig.stmt;
import org.opendaylight.yangtools.concepts.SemVer;
+import org.opendaylight.yangtools.openconfig.model.api.OpenConfigStatements;
+import org.opendaylight.yangtools.openconfig.model.api.OpenconfigVersionStatement;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
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.meta.SubstatementValidator;
-import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.SupportedExtensionsMapping;
public final class OpenconfigVersionSupport extends AbstractStatementSupport<SemVer, OpenconfigVersionStatement,
EffectiveStatement<SemVer, OpenconfigVersionStatement>> {
private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(
- SupportedExtensionsMapping.OPENCONFIG_VERSION).build();
+ OpenConfigStatements.OPENCONFIG_VERSION).build();
private static final OpenconfigVersionSupport INSTANCE = new OpenconfigVersionSupport();
private OpenconfigVersionSupport() {
- super(SupportedExtensionsMapping.OPENCONFIG_VERSION);
+ super(OpenConfigStatements.OPENCONFIG_VERSION);
}
public static OpenconfigVersionSupport getInstance() {
import org.antlr.v4.runtime.ParserRuleContext;
import org.opendaylight.yangtools.antlrv4.code.gen.YangStatementParser.StatementContext;
import org.opendaylight.yangtools.concepts.SemVer;
+import org.opendaylight.yangtools.openconfig.model.api.OpenConfigStatements;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.Revision;
import org.opendaylight.yangtools.yang.model.api.ModuleImport;
import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
import org.opendaylight.yangtools.yang.parser.spi.source.DeclarationInTextSource;
import org.opendaylight.yangtools.yang.parser.spi.source.StatementSourceReference;
-import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.SupportedExtensionsMapping;
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils;
/**
private static final String REVISION_DATE = YangStmtMapping.REVISION_DATE.getStatementName().getLocalName();
private static final String SUBMODULE = YangStmtMapping.SUBMODULE.getStatementName().getLocalName();
- private static final String OPENCONFIG_VERSION = SupportedExtensionsMapping.OPENCONFIG_VERSION.getStatementName()
+ private static final String OPENCONFIG_VERSION = OpenConfigStatements.OPENCONFIG_VERSION.getStatementName()
.getLocalName();
private static final Splitter COLON_SPLITTER = Splitter.on(":").omitEmptyStrings().trimResults();
import javax.annotation.Nonnull;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.concepts.SemVer;
+import org.opendaylight.yangtools.openconfig.model.api.OpenconfigVersionEffectiveStatement;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.Revision;
import org.opendaylight.yangtools.yang.common.YangVersion;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.Mutable;
import org.opendaylight.yangtools.yang.parser.spi.source.IncludedSubmoduleNameToModuleCtx;
import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
-import org.opendaylight.yangtools.yang.parser.stmt.openconfig.OpenconfigVersionEffectiveStatement;
@Beta
public abstract class AbstractEffectiveModule<D extends DeclaredStatement<String>> extends
*/
package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension;
+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.EffectiveStatement;
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.SupportedExtensionsMapping;
public final class ExtensionStatementSupport
extends AbstractQNameStatementSupport<ExtensionStatement, EffectiveStatement<QName, ExtensionStatement>> {
super.onStatementDefinitionDeclared(stmt);
QName stmtName = stmt.getStatementArgument();
- if (SupportedExtensionsMapping.OPENCONFIG_VERSION.getStatementName().isEqualWithoutRevision(stmtName)) {
+ if (OpenConfigStatements.OPENCONFIG_VERSION.getStatementName().isEqualWithoutRevision(stmtName)) {
stmtName = stmtName.withoutRevision();
}
*/
package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.import_;
+import org.opendaylight.yangtools.openconfig.model.api.OpenConfigStatements;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
-import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.SupportedExtensionsMapping;
public final class ImportStatementRFC6020Support extends AbstractImportStatementSupport {
private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator
.builder(YangStmtMapping.IMPORT)
.addMandatory(YangStmtMapping.PREFIX)
.addOptional(YangStmtMapping.REVISION_DATE)
- .addOptional(SupportedExtensionsMapping.OPENCONFIG_VERSION)
+ .addOptional(OpenConfigStatements.OPENCONFIG_VERSION)
.build();
@Override
package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.import_;
import com.google.common.annotations.Beta;
+import org.opendaylight.yangtools.openconfig.model.api.OpenConfigStatements;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
-import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.SupportedExtensionsMapping;
/**
* Implementation of import statement definition for Yang 1.1 (RFC 7950) to
.builder(YangStmtMapping.IMPORT)
.addMandatory(YangStmtMapping.PREFIX)
.addOptional(YangStmtMapping.REVISION_DATE)
- .addOptional(SupportedExtensionsMapping.OPENCONFIG_VERSION)
+ .addOptional(OpenConfigStatements.OPENCONFIG_VERSION)
.addOptional(YangStmtMapping.DESCRIPTION)
.addOptional(YangStmtMapping.REFERENCE)
.build();
*/
package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.module;
+import org.opendaylight.yangtools.openconfig.model.api.OpenConfigStatements;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
-import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.SupportedExtensionsMapping;
public final class ModuleStatementRFC6020Support extends AbstractModuleStatementSupport {
private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(YangStmtMapping
.addAny(YangStmtMapping.TYPEDEF)
.addAny(YangStmtMapping.USES)
.addOptional(YangStmtMapping.YANG_VERSION)
- .addOptional(SupportedExtensionsMapping.OPENCONFIG_VERSION)
+ .addOptional(OpenConfigStatements.OPENCONFIG_VERSION)
.build();
@Override
package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.module;
import com.google.common.annotations.Beta;
+import org.opendaylight.yangtools.openconfig.model.api.OpenConfigStatements;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
-import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.SupportedExtensionsMapping;
@Beta
public final class ModuleStatementRFC7950Support extends AbstractModuleStatementSupport {
.addAny(YangStmtMapping.TYPEDEF)
.addAny(YangStmtMapping.USES)
.addMandatory(YangStmtMapping.YANG_VERSION)
- .addOptional(SupportedExtensionsMapping.OPENCONFIG_VERSION)
+ .addOptional(OpenConfigStatements.OPENCONFIG_VERSION)
.build();
@Override
+++ /dev/null
-/*
- * Copyright (c) 2015 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.stmt.rfc6020;
-
-import static java.util.Objects.requireNonNull;
-
-import com.google.common.annotations.Beta;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
-import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
-import org.opendaylight.yangtools.yang.parser.stmt.openconfig.OpenconfigVersionEffectiveStatement;
-import org.opendaylight.yangtools.yang.parser.stmt.openconfig.OpenconfigVersionStatement;
-
-@Beta
-public enum SupportedExtensionsMapping implements StatementDefinition {
- OPENCONFIG_VERSION("http://openconfig.net/yang/openconfig-ext",
- OpenconfigVersionStatement.class, OpenconfigVersionEffectiveStatement.class,
- "openconfig-version", "semver", false);
-
- private final Class<? extends DeclaredStatement<?>> type;
- private final Class<? extends EffectiveStatement<?, ?>> effectiveType;
- private final QName name;
- private final QName argument;
- private final boolean yinElement;
-
- SupportedExtensionsMapping(final String namespace, final String revision,
- final Class<? extends DeclaredStatement<?>> declared,
- final Class<? extends EffectiveStatement<?, ?>> effective, final String nameStr, final String argumentStr,
- final boolean yinElement) {
- type = requireNonNull(declared);
- effectiveType = requireNonNull(effective);
- name = createQName(namespace, revision, nameStr);
- argument = createQName(namespace, revision, argumentStr);
- this.yinElement = yinElement;
- }
-
- SupportedExtensionsMapping(final String namespace, final Class<? extends DeclaredStatement<?>> declared,
- final Class<? extends EffectiveStatement<?, ?>> effective, final String nameStr, final String argumentStr,
- final boolean yinElement) {
- type = requireNonNull(declared);
- effectiveType = requireNonNull(effective);
- name = createQName(namespace, nameStr);
- argument = createQName(namespace, argumentStr);
- this.yinElement = yinElement;
- }
-
- @Nonnull
- private static QName createQName(final String namespace, final String localName) {
- return QName.create(namespace, localName).intern();
- }
-
- @Nonnull
- private static QName createQName(final String namespace, final String revision, final String localName) {
- return QName.create(namespace, revision, localName).intern();
- }
-
- @Nonnull
- @Override
- public QName getStatementName() {
- return name;
- }
-
- @Override
- @Nullable
- public QName getArgumentName() {
- return argument;
- }
-
- @Override
- @Nonnull
- public Class<? extends DeclaredStatement<?>> getDeclaredRepresentationClass() {
- return type;
- }
-
- @Nonnull
- @Override
- public Class<? extends EffectiveStatement<?, ?>> getEffectiveRepresentationClass() {
- return effectiveType;
- }
-
- @Override
- public boolean isArgumentYinElement() {
- return yinElement;
- }
-}
import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
import org.opendaylight.yangtools.yang.parser.odlext.namespace.AnyxmlSchemaLocationNamespace;
import org.opendaylight.yangtools.yang.parser.odlext.stmt.AnyxmlSchemaLocationSupport;
+import org.opendaylight.yangtools.yang.parser.openconfig.stmt.OpenconfigVersionSupport;
import org.opendaylight.yangtools.yang.parser.rfc7950.namespace.ChildSchemaNodeNamespace;
import org.opendaylight.yangtools.yang.parser.rfc7950.namespace.SchemaNodeIdentifierBuildNamespace;
import org.opendaylight.yangtools.yang.parser.rfc7950.namespace.URIStringToImportPrefix;
import org.opendaylight.yangtools.yang.parser.spi.source.SupportedFeaturesNamespace;
import org.opendaylight.yangtools.yang.parser.spi.validation.ValidationBundlesNamespace;
import org.opendaylight.yangtools.yang.parser.spi.validation.ValidationBundlesNamespace.ValidationBundleType;
-import org.opendaylight.yangtools.yang.parser.stmt.openconfig.OpenconfigVersionSupport;
import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor;
import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor.Builder;
import org.opendaylight.yangtools.yang.parser.stmt.rfc8040.YangDataStatementSupport;