* @return Name of the module to import
*/
default @NonNull String getModuleName() {
- return asEffectiveStatement().argument();
+ return asEffectiveStatement().argument().getLocalName();
}
/**
package org.opendaylight.yangtools.yang.model.api.stmt;
import com.google.common.annotations.Beta;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@Beta
-public interface BelongsToEffectiveStatement extends EffectiveStatement<String, BelongsToStatement> {
+public interface BelongsToEffectiveStatement extends EffectiveStatement<Unqualified, BelongsToStatement> {
@Override
default StatementDefinition statementDefinition() {
return YangStmtMapping.BELONGS_TO;
package org.opendaylight.yangtools.yang.model.api.stmt;
import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
-public interface BelongsToStatement extends DeclaredStatement<String> {
+public interface BelongsToStatement extends DeclaredStatement<Unqualified> {
@Override
default StatementDefinition statementDefinition() {
return YangStmtMapping.BELONGS_TO;
package org.opendaylight.yangtools.yang.model.api.stmt;
import com.google.common.annotations.Beta;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@Beta
-public interface ImportEffectiveStatement extends EffectiveStatement<String, ImportStatement> {
+public interface ImportEffectiveStatement extends EffectiveStatement<Unqualified, ImportStatement> {
@Override
default StatementDefinition statementDefinition() {
return YangStmtMapping.IMPORT;
import java.util.Optional;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
-public interface ImportStatement extends DocumentedDeclaredStatement<String> {
+public interface ImportStatement extends DocumentedDeclaredStatement<Unqualified> {
@Override
default StatementDefinition statementDefinition() {
return YangStmtMapping.IMPORT;
package org.opendaylight.yangtools.yang.model.api.stmt;
import com.google.common.annotations.Beta;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
@Beta
-public interface IncludeEffectiveStatement extends EffectiveStatement<String, IncludeStatement> {
+public interface IncludeEffectiveStatement extends EffectiveStatement<Unqualified, IncludeStatement> {
@Override
default StatementDefinition statementDefinition() {
return YangStmtMapping.INCLUDE;
import java.util.Optional;
import org.eclipse.jdt.annotation.Nullable;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
-public interface IncludeStatement extends DocumentedDeclaredStatement<String> {
+public interface IncludeStatement extends DocumentedDeclaredStatement<Unqualified> {
@Override
default StatementDefinition statementDefinition() {
return YangStmtMapping.INCLUDE;
* Namespace mapping all included submodules. The namespaces is keyed by submodule name.
*/
abstract class NameToEffectiveSubmoduleNamespace
- extends IdentifierNamespace<String, @NonNull SubmoduleEffectiveStatement> {
+ extends IdentifierNamespace<Unqualified, @NonNull SubmoduleEffectiveStatement> {
private NameToEffectiveSubmoduleNamespace() {
// This class should never be subclassed
}
: new RegularBaseStatement(argument, substatements);
}
- public static BelongsToStatement createBelongsTo(final String argument,
+ public static BelongsToStatement createBelongsTo(final Unqualified argument,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
return substatements.isEmpty() ? new EmptyBelongsToStatement(argument)
: new RegularBelongsToStatement(argument, substatements);
: new RegularIfFeatureStatement(rawArgument, argument, substatements);
}
- public static ImportStatement createImport(final String argument,
+ public static ImportStatement createImport(final Unqualified argument,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
return new ImportStatementImpl(argument, substatements);
}
- public static IncludeStatement createInclude(final String rawArgument, final String argument,
+ public static IncludeStatement createInclude(final Unqualified argument,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return substatements.isEmpty() ? new EmptyIncludeStatement(rawArgument, argument)
- : new RegularIncludeStatement(rawArgument, argument, substatements);
+ return substatements.isEmpty() ? new EmptyIncludeStatement(argument)
+ : new RegularIncludeStatement(argument, substatements);
}
public static InputStatement createInput(final QName argument) {
*/
package org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.stmt.BelongsToStatement;
-import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithRawStringArgument;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithArgument;
-public final class EmptyBelongsToStatement extends WithRawStringArgument implements BelongsToStatement {
- public EmptyBelongsToStatement(final String rawArgument) {
- super(rawArgument);
+public final class EmptyBelongsToStatement extends WithArgument<Unqualified> implements BelongsToStatement {
+ public EmptyBelongsToStatement(final Unqualified argument) {
+ super(argument.getLocalName(), argument);
}
}
*/
package org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.stmt.IncludeStatement;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithArgument;
-public final class EmptyIncludeStatement extends WithArgument<String> implements IncludeStatement {
- public EmptyIncludeStatement(final String rawArgument, final String argument) {
- super(rawArgument, argument);
+public final class EmptyIncludeStatement extends WithArgument<Unqualified> implements IncludeStatement {
+ public EmptyIncludeStatement(final Unqualified argument) {
+ super(argument.getLocalName(), argument);
}
}
package org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl;
import com.google.common.collect.ImmutableList;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ImportStatement;
-import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithRawStringArgument.WithSubstatements;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithArgument.WithSubstatements;
-public final class ImportStatementImpl extends WithSubstatements implements ImportStatement {
- public ImportStatementImpl(final String rawArgument,
+public final class ImportStatementImpl extends WithSubstatements<Unqualified> implements ImportStatement {
+ public ImportStatementImpl(final Unqualified argument,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- super(rawArgument, substatements);
+ super(argument.getLocalName(), argument, substatements);
}
}
import com.google.common.collect.ImmutableList;
import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.BelongsToStatement;
-import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithRawStringArgument.WithSubstatements;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithArgument.WithSubstatements;
-public final class RegularBelongsToStatement extends WithSubstatements implements BelongsToStatement {
- public RegularBelongsToStatement(final @NonNull String rawArgument,
+public final class RegularBelongsToStatement extends WithSubstatements<Unqualified> implements BelongsToStatement {
+ public RegularBelongsToStatement(final @NonNull Unqualified argument,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- super(rawArgument, substatements);
+ super(argument.getLocalName(), argument, substatements);
}
}
package org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl;
import com.google.common.collect.ImmutableList;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.IncludeStatement;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredStatement.WithArgument.WithSubstatements;
-public final class RegularIncludeStatement extends WithSubstatements<String> implements IncludeStatement {
- public RegularIncludeStatement(final String rawArgument, final String argument,
+public final class RegularIncludeStatement extends WithSubstatements<Unqualified> implements IncludeStatement {
+ public RegularIncludeStatement(final Unqualified argument,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- super(rawArgument, argument, substatements);
+ super(argument.getLocalName(), argument, substatements);
}
}
*/
package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.stmt.BelongsToEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.BelongsToStatement;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument;
-public final class EmptyBelongsToEffectiveStatement extends DefaultArgument<String, BelongsToStatement>
+public final class EmptyBelongsToEffectiveStatement extends DefaultArgument<Unqualified, BelongsToStatement>
implements BelongsToEffectiveStatement {
public EmptyBelongsToEffectiveStatement(final BelongsToStatement declared) {
super(declared);
*/
package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.stmt.IncludeEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.IncludeStatement;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument;
-public final class EmptyIncludeEffectiveStatement extends DefaultArgument<String, IncludeStatement>
+public final class EmptyIncludeEffectiveStatement extends DefaultArgument<Unqualified, IncludeStatement>
implements IncludeEffectiveStatement {
public EmptyIncludeEffectiveStatement(final IncludeStatement declared) {
super(declared);
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.ModuleImport;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ImportEffectiveStatement;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.DocumentedNodeMixin;
-public final class ImportEffectiveStatementImpl extends WithSubstatements<String, ImportStatement>
- implements ImportEffectiveStatement, ModuleImport, DocumentedNodeMixin<String, ImportStatement> {
+public final class ImportEffectiveStatementImpl extends WithSubstatements<Unqualified, ImportStatement>
+ implements ImportEffectiveStatement, ModuleImport, DocumentedNodeMixin<Unqualified, ImportStatement> {
private final @Nullable Revision revision;
public ImportEffectiveStatementImpl(final ImportStatement declared,
package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import com.google.common.collect.ImmutableList;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.BelongsToEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.BelongsToStatement;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements;
-public final class RegularBelongsToEffectiveStatement extends WithSubstatements<String, BelongsToStatement>
+public final class RegularBelongsToEffectiveStatement extends WithSubstatements<Unqualified, BelongsToStatement>
implements BelongsToEffectiveStatement {
public RegularBelongsToEffectiveStatement(final BelongsToStatement declared,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
import com.google.common.collect.ImmutableList;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.IncludeEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.IncludeStatement;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements;
-public final class RegularIncludeEffectiveStatement extends WithSubstatements<String, IncludeStatement>
+public final class RegularIncludeEffectiveStatement extends WithSubstatements<Unqualified, IncludeStatement>
implements IncludeEffectiveStatement {
public RegularIncludeEffectiveStatement(final IncludeStatement declared,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
*/
package org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
import org.opendaylight.yangtools.yang.model.api.stmt.BelongsToStatement;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractRefStatement;
-public final class RefBelongsToStatement extends AbstractRefStatement<String, BelongsToStatement>
+public final class RefBelongsToStatement extends AbstractRefStatement<Unqualified, BelongsToStatement>
implements BelongsToStatement {
public RefBelongsToStatement(final BelongsToStatement delegate, final DeclarationReference ref) {
super(delegate, ref);
*/
package org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
import org.opendaylight.yangtools.yang.model.api.stmt.ImportStatement;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractRefStatement;
-public final class RefImportStatement extends AbstractRefStatement<String, ImportStatement> implements ImportStatement {
+public final class RefImportStatement extends AbstractRefStatement<Unqualified, ImportStatement>
+ implements ImportStatement {
public RefImportStatement(final ImportStatement delegate, final DeclarationReference ref) {
super(delegate, ref);
}
*/
package org.opendaylight.yangtools.yang.model.ri.stmt.impl.ref;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
import org.opendaylight.yangtools.yang.model.api.stmt.IncludeStatement;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractRefStatement;
-public final class RefIncludeStatement extends AbstractRefStatement<String, IncludeStatement>
+public final class RefIncludeStatement extends AbstractRefStatement<Unqualified, IncludeStatement>
implements IncludeStatement {
public RefIncludeStatement(final IncludeStatement delegate, final DeclarationReference ref) {
super(delegate, ref);
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
-import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport;
+import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractUnqualifiedStatementSupport;
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.StmtContext;
import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
-import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
@Beta
public final class AugmentIdentifierStatementSupport
- extends AbstractStatementSupport<Unqualified, AugmentIdentifierStatement, AugmentIdentifierEffectiveStatement> {
+ extends AbstractUnqualifiedStatementSupport<AugmentIdentifierStatement, AugmentIdentifierEffectiveStatement> {
private static final SubstatementValidator VALIDATOR =
SubstatementValidator.builder(OpenDaylightExtensionsStatements.AUGMENT_IDENTIFIER).build();
VALIDATOR);
}
- @Override
- public Unqualified parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
- try {
- return Unqualified.of(value).intern();
- } catch (IllegalArgumentException e) {
- throw new SourceException(ctx, e, "Invalid identifier \"%s\"", value);
- }
- }
-
@Override
protected AugmentIdentifierStatement createDeclared(final BoundStmtCtx<Unqualified> ctx,
final ImmutableList<DeclaredStatement<?>> substatements) {
import java.util.Optional;
import javax.xml.namespace.NamespaceContext;
import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.common.YangNamespaceContext;
import org.opendaylight.yangtools.yang.model.api.stmt.SubmoduleStatement;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
StmtNamespaceContext(final StmtContext<?, ?, ?> ctx) {
// QNameModule -> prefix mappings
final Map<QNameModule, String> qnameToPrefix = ctx.getAllFromNamespace(ModuleQNameToPrefix.class);
- this.moduleToPrefix = qnameToPrefix == null ? ImmutableBiMap.of() : ImmutableBiMap.copyOf(qnameToPrefix);
+ moduleToPrefix = qnameToPrefix == null ? ImmutableBiMap.of() : ImmutableBiMap.copyOf(qnameToPrefix);
// Additional mappings
final Map<String, QNameModule> additional = new HashMap<>();
if (!moduleToPrefix.containsValue(entry.getKey())) {
QNameModule qnameModule = ctx.getFromNamespace(ModuleCtxToModuleQName.class, entry.getValue());
if (qnameModule == null && ctx.producesDeclared(SubmoduleStatement.class)) {
- final String moduleName = ctx.getFromNamespace(BelongsToPrefixToModuleName.class,
+ final Unqualified moduleName = ctx.getFromNamespace(BelongsToPrefixToModuleName.class,
entry.getKey());
qnameModule = ctx.getFromNamespace(ModuleNameToModuleQName.class, moduleName);
}
}
}
if (ctx.producesDeclared(SubmoduleStatement.class)) {
- final Map<String, String> belongsTo = ctx.getAllFromNamespace(BelongsToPrefixToModuleName.class);
+ final Map<String, Unqualified> belongsTo = ctx.getAllFromNamespace(BelongsToPrefixToModuleName.class);
if (belongsTo != null) {
- for (Entry<String, String> entry : belongsTo.entrySet()) {
+ for (Entry<String, Unqualified> entry : belongsTo.entrySet()) {
final QNameModule module = ctx.getFromNamespace(ModuleNameToModuleQName.class, entry.getValue());
if (module != null && !additional.containsKey(entry.getKey())) {
additional.put(entry.getKey(), module);
}
}
- this.prefixToModule = ImmutableMap.copyOf(additional);
+ prefixToModule = ImmutableMap.copyOf(additional);
}
@Override
import java.util.Collection;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.common.Empty;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.common.XMLNamespace;
import org.opendaylight.yangtools.yang.common.YangVersion;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements;
import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
import org.opendaylight.yangtools.yang.parser.spi.PreLinkageModuleNamespace;
-import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStringStatementSupport;
+import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractUnqualifiedStatementSupport;
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.InferenceException;
@Beta
public final class ImportStatementSupport
- extends AbstractStringStatementSupport<ImportStatement, ImportEffectiveStatement> {
+ extends AbstractUnqualifiedStatementSupport<ImportStatement, ImportEffectiveStatement> {
private static final SubstatementValidator RFC6020_VALIDATOR =
SubstatementValidator.builder(YangStmtMapping.IMPORT)
.addMandatory(YangStmtMapping.PREFIX)
}
@Override
- public void onPreLinkageDeclared(final Mutable<String, ImportStatement, ImportEffectiveStatement> stmt) {
+ public void onPreLinkageDeclared(final Mutable<Unqualified, ImportStatement, ImportEffectiveStatement> stmt) {
/*
* Add ModuleIdentifier of a module which is required by this module.
* Based on this information, required modules are searched from library
final SourceIdentifier importId = RevisionImport.getImportedSourceIdentifier(stmt);
stmt.addRequiredSource(importId);
- final String moduleName = stmt.getArgument();
+ final Unqualified moduleName = stmt.getArgument();
final ModelActionBuilder importAction = stmt.newInferenceAction(SOURCE_PRE_LINKAGE);
final Prerequisite<StmtContext<?, ?, ?>> imported = importAction.requiresCtx(stmt,
PreLinkageModuleNamespace.class, moduleName, SOURCE_PRE_LINKAGE);
@Override
public void apply(final InferenceContext ctx) {
final StmtContext<?, ?, ?> importedModuleContext = imported.resolve(ctx);
- verify(moduleName.equals(importedModuleContext.getRawArgument()));
+ verify(moduleName.equals(importedModuleContext.getArgument()));
final XMLNamespace importedModuleNamespace = verifyNotNull(
importedModuleContext.getFromNamespace(ModuleNameToNamespace.class, moduleName));
final String impPrefix = SourceException.throwIfNull(
if (importId.getRevision().isPresent() && root.yangVersion() == YangVersion.VERSION_1) {
final YangVersion importedVersion = importedModuleContext.yangVersion();
if (importedVersion != YangVersion.VERSION_1) {
- throw new YangVersionLinkageException(stmt,
- "Cannot import by revision version %s module %s", importedVersion, moduleName);
+ throw new YangVersionLinkageException(stmt, "Cannot import by revision version %s module %s",
+ importedVersion, moduleName.getLocalName());
}
}
@Override
public void prerequisiteFailed(final Collection<? extends Prerequisite<?>> failed) {
InferenceException.throwIf(failed.contains(imported), stmt, "Imported module [%s] was not found.",
- moduleName);
+ moduleName.getLocalName());
}
});
}
@Override
- public void onLinkageDeclared(final Mutable<String, ImportStatement, ImportEffectiveStatement> stmt) {
+ public void onLinkageDeclared(final Mutable<Unqualified, ImportStatement, ImportEffectiveStatement> stmt) {
RevisionImport.onLinkageDeclared(stmt);
}
@Override
- protected ImportStatement createDeclared(final BoundStmtCtx<String> ctx,
+ protected ImportStatement createDeclared(final BoundStmtCtx<Unqualified> ctx,
final ImmutableList<DeclaredStatement<?>> substatements) {
- return DeclaredStatements.createImport(ctx.getRawArgument(), substatements);
+ return DeclaredStatements.createImport(ctx.getArgument(), substatements);
}
@Override
}
@Override
- protected ImportEffectiveStatement createEffective(final Current<String, ImportStatement> stmt,
+ protected ImportEffectiveStatement createEffective(final Current<Unqualified, ImportStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
InferenceException.throwIf(substatements.isEmpty(), stmt, "Unexpected empty effective import statement");
return EffectiveStatements.createImport(stmt.declared(), substatements,
import org.opendaylight.yangtools.yang.common.Empty;
import org.opendaylight.yangtools.yang.common.QNameModule;
import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.stmt.ImportEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ImportStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.PrefixStatement;
// Hidden on purpose
}
- static void onLinkageDeclared(final Mutable<String, ImportStatement, ImportEffectiveStatement> stmt) {
+ static void onLinkageDeclared(final Mutable<Unqualified, ImportStatement, ImportEffectiveStatement> stmt) {
final ModelActionBuilder importAction = stmt.newInferenceAction(SOURCE_LINKAGE);
final Prerequisite<StmtContext<?, ?, ?>> imported;
- final String moduleName = stmt.getArgument();
+ final Unqualified moduleName = stmt.getArgument();
final Revision revision = firstAttributeOf(stmt.declaredSubstatements(), RevisionDateStatement.class);
if (revision == null) {
imported = importAction.requiresCtx(stmt, ModuleNamespace.class,
@Override
public void prerequisiteFailed(final Collection<? extends Prerequisite<?>> failed) {
if (failed.contains(imported)) {
- throw new InferenceException(stmt, "Imported module [%s] was not found.", moduleName);
+ throw new InferenceException(stmt, "Imported module [%s] was not found.",
+ moduleName.getLocalName());
}
}
});
}
- static SourceIdentifier getImportedSourceIdentifier(final StmtContext<String, ImportStatement, ?> stmt) {
+ static SourceIdentifier getImportedSourceIdentifier(final StmtContext<Unqualified, ImportStatement, ?> stmt) {
final StmtContext<Revision, ?, ?> revision = findFirstDeclaredSubstatement(stmt,
RevisionDateStatement.class);
- return revision == null ? RevisionSourceIdentifier.create(stmt.argument())
+ return revision == null ? RevisionSourceIdentifier.create(stmt.argument(), Optional.empty())
: RevisionSourceIdentifier.create(stmt.argument(), revision.argument());
}
}
import com.google.common.collect.ImmutableList;
import java.util.Collection;
+import java.util.Optional;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements;
import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements;
import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
-import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStringStatementSupport;
+import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractUnqualifiedStatementSupport;
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.InferenceException;
import org.opendaylight.yangtools.yang.parser.spi.source.ModuleNamespaceForBelongsTo;
public final class BelongsToStatementSupport
- extends AbstractStringStatementSupport<BelongsToStatement, BelongsToEffectiveStatement> {
+ extends AbstractUnqualifiedStatementSupport<BelongsToStatement, BelongsToEffectiveStatement> {
private static final SubstatementValidator SUBSTATEMENT_VALIDATOR =
SubstatementValidator.builder(YangStmtMapping.BELONGS_TO).addMandatory(YangStmtMapping.PREFIX).build();
}
@Override
- public void onPreLinkageDeclared(final Mutable<String, BelongsToStatement, BelongsToEffectiveStatement> ctx) {
+ public void onPreLinkageDeclared(final Mutable<Unqualified, BelongsToStatement, BelongsToEffectiveStatement> ctx) {
ctx.addRequiredSource(getSourceIdentifier(ctx));
}
@Override
- public void onLinkageDeclared(final Mutable<String, BelongsToStatement, BelongsToEffectiveStatement> belongsToCtx) {
+ public void onLinkageDeclared(
+ final Mutable<Unqualified, BelongsToStatement, BelongsToEffectiveStatement> belongsToCtx) {
ModelActionBuilder belongsToAction = belongsToCtx.newInferenceAction(ModelProcessingPhase.SOURCE_LINKAGE);
final SourceIdentifier belongsToSourceIdentifier = getSourceIdentifier(belongsToCtx);
}
@Override
- protected BelongsToStatement createDeclared(final BoundStmtCtx<String> ctx,
+ protected BelongsToStatement createDeclared(final BoundStmtCtx<Unqualified> ctx,
final ImmutableList<DeclaredStatement<?>> substatements) {
- return DeclaredStatements.createBelongsTo(ctx.getRawArgument(), substatements);
+ return DeclaredStatements.createBelongsTo(ctx.getArgument(), substatements);
}
@Override
}
@Override
- protected BelongsToEffectiveStatement createEffective(final Current<String, BelongsToStatement> stmt,
+ protected BelongsToEffectiveStatement createEffective(final Current<Unqualified, BelongsToStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
return EffectiveStatements.createBelongsTo(stmt.declared(), substatements);
}
- private static SourceIdentifier getSourceIdentifier(final StmtContext<String, BelongsToStatement,
- BelongsToEffectiveStatement> belongsToCtx) {
- return RevisionSourceIdentifier.create(belongsToCtx.getArgument());
+ private static SourceIdentifier getSourceIdentifier(
+ final StmtContext<Unqualified, BelongsToStatement, BelongsToEffectiveStatement> belongsToCtx) {
+ return RevisionSourceIdentifier.create(belongsToCtx.getArgument(), Optional.empty());
}
}
import java.util.Optional;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.common.YangVersion;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements;
import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
import org.opendaylight.yangtools.yang.parser.spi.SubmoduleNamespace;
-import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStringStatementSupport;
+import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractUnqualifiedStatementSupport;
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.InferenceException;
@Beta
public final class IncludeStatementSupport
- extends AbstractStringStatementSupport<IncludeStatement, IncludeEffectiveStatement> {
+ extends AbstractUnqualifiedStatementSupport<IncludeStatement, IncludeEffectiveStatement> {
private static final SubstatementValidator RFC6020_VALIDATOR =
SubstatementValidator.builder(YangStmtMapping.INCLUDE)
.addOptional(YangStmtMapping.REVISION_DATE)
}
@Override
- public void onPreLinkageDeclared(final Mutable<String, IncludeStatement, IncludeEffectiveStatement> stmt) {
+ public void onPreLinkageDeclared(final Mutable<Unqualified, IncludeStatement, IncludeEffectiveStatement> stmt) {
final StmtContext<Revision, ?, ?> revision = findFirstDeclaredSubstatement(stmt,
RevisionDateStatement.class);
- stmt.addRequiredSource(revision == null ? RevisionSourceIdentifier.create(stmt.argument())
+ stmt.addRequiredSource(revision == null ? RevisionSourceIdentifier.create(stmt.argument(), Optional.empty())
: RevisionSourceIdentifier.create(stmt.argument(), revision.argument()));
}
@Override
- public void onLinkageDeclared(final Mutable<String, IncludeStatement, IncludeEffectiveStatement> stmt) {
- final String submoduleName = stmt.getArgument();
+ public void onLinkageDeclared(final Mutable<Unqualified, IncludeStatement, IncludeEffectiveStatement> stmt) {
+ final Unqualified submoduleName = stmt.getArgument();
final StmtContext<Revision, ?, ?> revision = findFirstDeclaredSubstatement(stmt, RevisionDateStatement.class);
final ModelActionBuilder includeAction = stmt.newInferenceAction(SOURCE_LINKAGE);
}
stmt.addToNs(IncludedModuleContext.class, revision != null
- ? RevisionSourceIdentifier.create(submoduleName, revision.argument())
- : RevisionSourceIdentifier.create(submoduleName), includedSubModuleContext);
+ ? RevisionSourceIdentifier.create(submoduleName, revision.argument())
+ : RevisionSourceIdentifier.create(submoduleName, Optional.empty()), includedSubModuleContext);
stmt.addToNs(IncludedSubmoduleNameToModuleCtx.class, stmt.argument(), includedSubModuleContext);
}
}
@Override
- protected IncludeStatement createDeclared(final BoundStmtCtx<String> ctx,
+ protected IncludeStatement createDeclared(final BoundStmtCtx<Unqualified> ctx,
final ImmutableList<DeclaredStatement<?>> substatements) {
- return DeclaredStatements.createInclude(ctx.getRawArgument(), ctx.getArgument(), substatements);
+ return DeclaredStatements.createInclude(ctx.getArgument(), substatements);
}
@Override
}
@Override
- protected IncludeEffectiveStatement createEffective(final Current<String, IncludeStatement> stmt,
+ protected IncludeEffectiveStatement createEffective(final Current<Unqualified, IncludeStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
return EffectiveStatements.createInclude(stmt.declared(), substatements);
}
final class ModuleEffectiveStatementImpl extends AbstractEffectiveModule<ModuleStatement, ModuleEffectiveStatement>
implements Module, ModuleEffectiveStatement {
- private final ImmutableMap<String, SubmoduleEffectiveStatement> nameToSubmodule;
+ private final ImmutableMap<Unqualified, SubmoduleEffectiveStatement> nameToSubmodule;
private final ImmutableMap<QName, ExtensionEffectiveStatement> qnameToExtension;
private final ImmutableMap<QName, FeatureEffectiveStatement> qnameToFeature;
private final ImmutableMap<QName, IdentityEffectiveStatement> qnameToIdentity;
}
namespaceToPrefix = ImmutableMap.copyOf(tmp);
- final Map<String, StmtContext<?, ?, ?>> includedSubmodules =
+ final Map<Unqualified, StmtContext<?, ?, ?>> includedSubmodules =
stmt.localNamespacePortion(IncludedSubmoduleNameToModuleCtx.class);
nameToSubmodule = includedSubmodules == null ? ImmutableMap.of()
: ImmutableMap.copyOf(Maps.transformValues(includedSubmodules,
@Override
public void onPreLinkageDeclared(final Mutable<Unqualified, ModuleStatement, ModuleEffectiveStatement> stmt) {
- final String moduleName = stmt.getRawArgument();
+ final Unqualified moduleName = stmt.getArgument();
final XMLNamespace moduleNs = SourceException.throwIfNull(
firstAttributeOf(stmt.declaredSubstatements(), NamespaceStatement.class), stmt,
possibleDuplicateModule.sourceReference());
}
- final String moduleName = stmt.getRawArgument();
+ final Unqualified moduleName = stmt.getArgument();
final SourceIdentifier moduleIdentifier = RevisionSourceIdentifier.create(moduleName, revisionDate);
stmt.addContext(ModuleNamespace.class, moduleIdentifier, stmt);
- stmt.addContext(ModuleNamespaceForBelongsTo.class, moduleIdentifier.getName(), stmt);
+ stmt.addContext(ModuleNamespaceForBelongsTo.class, moduleName, stmt);
stmt.addContext(NamespaceToModule.class, qNameModule, stmt);
final String modulePrefix = SourceException.throwIfNull(
}
private static Collection<StmtContext<?, ?, ?>> submoduleContexts(final Current<?, ?> stmt) {
- final Map<String, StmtContext<?, ?, ?>> submodules = stmt.localNamespacePortion(
+ final Map<Unqualified, StmtContext<?, ?, ?>> submodules = stmt.localNamespacePortion(
IncludedSubmoduleNameToModuleCtx.class);
return submodules == null ? List.of() : submodules.values();
}
* collect only submodule contexts here and then build them during
* sealing of this statement.
*/
- final Map<String, StmtContext<?, ?, ?>> includedSubmodulesMap = stmt.localNamespacePortion(
+ final Map<Unqualified, StmtContext<?, ?, ?>> includedSubmodulesMap = stmt.localNamespacePortion(
IncludedSubmoduleNameToModuleCtx.class);
if (includedSubmodulesMap != null) {
final Set<StmtContext<?, SubmoduleStatement, SubmoduleEffectiveStatement>> submoduleContextsInit =
stmt.addContext(SubmoduleNamespace.class, submoduleIdentifier, stmt);
- final String belongsToModuleName = firstAttributeOf(stmt.declaredSubstatements(), BelongsToStatement.class);
+ final Unqualified belongsToModuleName = firstAttributeOf(stmt.declaredSubstatements(),
+ BelongsToStatement.class);
final StmtContext<?, ?, ?> prefixSubStmtCtx = SourceException.throwIfNull(
findFirstDeclaredSubstatement(stmt, 0, BelongsToStatement.class, PrefixStatement.class), stmt,
"Prefix of belongsTo statement is missing in submodule [%s]", stmt.rawArgument());
import org.junit.Test;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.AnyxmlSchemaNode;
import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
assertEquals(1, moduleStatement.getIncludes().size());
final IncludeStatement includeStatement = moduleStatement.getIncludes().iterator().next();
- assertEquals("child-module-declared-test", includeStatement.argument());
+ assertEquals(Unqualified.of("child-module-declared-test"), includeStatement.argument());
final Collection<? extends Submodule> submodules = testModule.getSubmodules();
assertNotNull(submodules);
assertEquals(1, moduleStatement.getImports().size());
final ImportStatement importStatement = moduleStatement.getImports().iterator().next();
- assertEquals("imported-module-declared-test", importStatement.argument());
+ assertEquals(Unqualified.of("imported-module-declared-test"), importStatement.argument());
assertEquals("imdt", importStatement.getPrefix().argument());
assertEquals(revision, importStatement.getRevisionDate().argument());
package org.opendaylight.yangtools.yang.parser.spi;
import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.stmt.ModuleEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ModuleStatement;
import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour;
* used to resolve inter-module references before actual linkage occurs.
*/
public interface PreLinkageModuleNamespace
- extends StatementNamespace<String, ModuleStatement, ModuleEffectiveStatement> {
- NamespaceBehaviour<String, StmtContext<?, ModuleStatement, ModuleEffectiveStatement>,
+ extends StatementNamespace<Unqualified, ModuleStatement, ModuleEffectiveStatement> {
+ NamespaceBehaviour<Unqualified, StmtContext<?, ModuleStatement, ModuleEffectiveStatement>,
@NonNull PreLinkageModuleNamespace> BEHAVIOUR = NamespaceBehaviour.global(PreLinkageModuleNamespace.class);
}
--- /dev/null
+/*
+ * Copyright (c) 2020 PANTHEON.tech, 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.yang.parser.spi.meta;
+
+import com.google.common.annotations.Beta;
+import org.eclipse.jdt.annotation.Nullable;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
+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.api.YangParserConfiguration;
+import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
+
+/**
+ * Specialization of {@link AbstractStatementSupport} for Unqualified statement arguments. Note this (mostly) implies
+ * context-independence.
+ *
+ * @param <D> Declared Statement representation
+ * @param <E> Effective Statement representation
+ */
+@Beta
+public abstract class AbstractUnqualifiedStatementSupport<D extends DeclaredStatement<Unqualified>,
+ E extends EffectiveStatement<Unqualified, D>> extends AbstractStatementSupport<Unqualified, D, E> {
+ protected AbstractUnqualifiedStatementSupport(final StatementDefinition publicDefinition,
+ final StatementPolicy<Unqualified, D> policy, final YangParserConfiguration config,
+ final @Nullable SubstatementValidator validator) {
+ super(publicDefinition, policy, config, validator);
+ }
+
+ @Override
+ public final Unqualified parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
+ try {
+ return Unqualified.of(value).intern();
+ } catch (IllegalArgumentException e) {
+ throw new SourceException(ctx, e, "Invalid argument value \"%s\"", value);
+ }
+ }
+}
import com.google.common.base.MoreObjects.ToStringHelper;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
/**
@Beta
public abstract class NamespaceKeyCriterion<K> {
private static final class LatestRevisionModule extends NamespaceKeyCriterion<SourceIdentifier> {
- private final String moduleName;
+ private final Unqualified moduleName;
- LatestRevisionModule(final String moduleName) {
+ LatestRevisionModule(final Unqualified moduleName) {
this.moduleName = requireNonNull(moduleName);
}
@Override
public boolean match(final SourceIdentifier key) {
- return moduleName.equals(key.getName());
+ return moduleName.getLocalName().equals(key.getName());
}
@Override
@Override
protected ToStringHelper addToStringAttributes(final ToStringHelper toStringHelper) {
- return toStringHelper.add("moduleName", moduleName);
+ return toStringHelper.add("moduleName", moduleName.getLocalName());
}
}
* @param moduleName Module name
* @return A criterion object.
*/
- public static NamespaceKeyCriterion<SourceIdentifier> latestRevisionModule(final String moduleName) {
+ public static NamespaceKeyCriterion<SourceIdentifier> latestRevisionModule(final Unqualified moduleName) {
return new LatestRevisionModule(moduleName);
}
if (rootCtx.producesDeclared(ModuleStatement.class)) {
qnameModule = rootCtx.getFromNamespace(ModuleCtxToModuleQName.class, rootCtx);
} else if (rootCtx.producesDeclared(SubmoduleStatement.class)) {
- final String belongsToModuleName = firstAttributeOf(rootCtx.declaredSubstatements(),
- BelongsToStatement.class);
+ final var belongsToModuleName = firstAttributeOf(rootCtx.declaredSubstatements(), BelongsToStatement.class);
qnameModule = rootCtx.getFromNamespace(ModuleNameToModuleQName.class, belongsToModuleName);
} else {
qnameModule = null;
}
if (root.producesDeclared(SubmoduleStatement.class)) {
- final String moduleName = root.getFromNamespace(BelongsToPrefixToModuleName.class, prefix);
+ final var moduleName = root.getFromNamespace(BelongsToPrefixToModuleName.class, prefix);
return ctx.getFromNamespace(ModuleNameToModuleQName.class, moduleName);
}
package org.opendaylight.yangtools.yang.parser.spi.source;
import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour;
import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace;
/**
* Source-specific mapping of prefixes to namespaces.
*/
-public interface BelongsToPrefixToModuleName extends ParserNamespace<String, String> {
- NamespaceBehaviour<String, String, @NonNull BelongsToPrefixToModuleName> BEHAVIOUR =
+public interface BelongsToPrefixToModuleName extends ParserNamespace<String, Unqualified> {
+ NamespaceBehaviour<String, Unqualified, @NonNull BelongsToPrefixToModuleName> BEHAVIOUR =
NamespaceBehaviour.sourceLocal(BelongsToPrefixToModuleName.class);
}
package org.opendaylight.yangtools.yang.parser.spi.source;
import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour;
import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
/**
* Source-specific mapping of prefixes to namespaces.
*/
-public interface IncludedSubmoduleNameToModuleCtx extends ParserNamespace<String, StmtContext<?, ?, ?>> {
- NamespaceBehaviour<String, StmtContext<?, ?, ?>, @NonNull IncludedSubmoduleNameToModuleCtx> BEHAVIOUR =
+public interface IncludedSubmoduleNameToModuleCtx extends ParserNamespace<Unqualified, StmtContext<?, ?, ?>> {
+ NamespaceBehaviour<Unqualified, StmtContext<?, ?, ?>, @NonNull IncludedSubmoduleNameToModuleCtx> BEHAVIOUR =
NamespaceBehaviour.sourceLocal(IncludedSubmoduleNameToModuleCtx.class);
}
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour;
import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace;
/**
* Source-specific mapping of prefixes to namespaces.
*/
-public interface ModuleNameToModuleQName extends ParserNamespace<String, QNameModule> {
- NamespaceBehaviour<String, QNameModule, @NonNull ModuleNameToModuleQName> BEHAVIOUR =
+public interface ModuleNameToModuleQName extends ParserNamespace<Unqualified, QNameModule> {
+ NamespaceBehaviour<Unqualified, QNameModule, @NonNull ModuleNameToModuleQName> BEHAVIOUR =
NamespaceBehaviour.sourceLocal(ModuleNameToModuleQName.class);
}
package org.opendaylight.yangtools.yang.parser.spi.source;
import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.common.XMLNamespace;
import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour;
import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace;
/**
* Pre-linkage global mapping of module names to namespaces.
*/
-public interface ModuleNameToNamespace extends ParserNamespace<String, XMLNamespace> {
- NamespaceBehaviour<String, XMLNamespace, @NonNull ModuleNameToNamespace> BEHAVIOUR =
+public interface ModuleNameToNamespace extends ParserNamespace<Unqualified, XMLNamespace> {
+ NamespaceBehaviour<Unqualified, XMLNamespace, @NonNull ModuleNameToNamespace> BEHAVIOUR =
NamespaceBehaviour.global(ModuleNameToNamespace.class);
}
package org.opendaylight.yangtools.yang.parser.spi.source;
import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.model.api.stmt.ModuleEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ModuleStatement;
import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour;
* into Yang model storage but keyed by plain name.
*/
public interface ModuleNamespaceForBelongsTo
- extends StatementNamespace<String, ModuleStatement, ModuleEffectiveStatement> {
- NamespaceBehaviour<String, StmtContext<?, ModuleStatement, ModuleEffectiveStatement>,
+ extends StatementNamespace<Unqualified, ModuleStatement, ModuleEffectiveStatement> {
+ NamespaceBehaviour<Unqualified, StmtContext<?, ModuleStatement, ModuleEffectiveStatement>,
@NonNull ModuleNamespaceForBelongsTo> BEHAVIOUR = NamespaceBehaviour.global(ModuleNamespaceForBelongsTo.class);
}
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour;
import org.opendaylight.yangtools.yang.parser.spi.meta.ParserNamespace;
/**
* Source-specific mapping of prefixes to namespaces.
*/
-public interface ModuleQNameToModuleName extends ParserNamespace<QNameModule, String> {
- NamespaceBehaviour<QNameModule, String, @NonNull ModuleQNameToModuleName> BEHAVIOUR =
+public interface ModuleQNameToModuleName extends ParserNamespace<QNameModule, Unqualified> {
+ NamespaceBehaviour<QNameModule, Unqualified, @NonNull ModuleQNameToModuleName> BEHAVIOUR =
NamespaceBehaviour.global(ModuleQNameToModuleName.class);
}
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import org.opendaylight.yangtools.yang.common.Revision;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
/**
* YANG Schema revision source identifier.
return new RevisionSourceIdentifier(moduleName, revision);
}
+ public static @NonNull RevisionSourceIdentifier create(final Unqualified moduleName,
+ final Optional<Revision> revision) {
+ return create(moduleName.getLocalName(), revision);
+ }
+
/**
* Creates new YANG Schema revision source identifier.
*
return new RevisionSourceIdentifier(moduleName, revision);
}
+ public static @NonNull RevisionSourceIdentifier create(final Unqualified moduleName,
+ final @Nullable Revision revision) {
+ return create(moduleName.getLocalName(), revision);
+ }
+
/**
* Creates new YANG Schema revision source identifier for sources without
* a revision.
if (this == obj) {
return true;
}
- if (!(obj instanceof RevisionSourceIdentifier)) {
+ if (!(obj instanceof RevisionSourceIdentifier other)) {
return false;
}
- final RevisionSourceIdentifier other = (RevisionSourceIdentifier) obj;
return Objects.equals(getName(), other.getName()) && Objects.equals(getRevision(), other.getRevision());
}