final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
final QName qname = stmt.getArgument();
final StmtContext<?, ?, IdentityEffectiveStatement> identityCtx =
- verifyNotNull(stmt.getFromNamespace(ParserNamespaces.IDENTITY, qname), "Failed to find identity %s", qname);
+ verifyNotNull(stmt.namespaceItem(ParserNamespaces.IDENTITY, qname), "Failed to find identity %s", qname);
return createEffective(stmt.declared(), identityCtx.buildEffective(), substatements);
}
final var prereqs = new ArrayList<Prerequisite<? extends StmtContext<?, ?, ?>>>();
// FIXME: this not accurate: we need all sources, not just modules
- for (var module : ietfRestconfModule.getAllFromNamespace(ParserNamespaces.MODULE).values()) {
+ for (var module : ietfRestconfModule.namespace(ParserNamespaces.MODULE).values()) {
if (!ietfRestconfModule.equals(module)) {
prereqs.add(action.requiresCtx((StmtContext<?, ?, ?>)module, ModelProcessingPhase.EFFECTIVE_MODEL));
}
private <X, Y extends DeclaredStatement<X>, Z extends EffectiveStatement<X, Y>>
StatementSupport<X, Y, Z> getSupport(final StatementDefinition def, final Class<Z> effectiveClass) {
- final var tmp = verifyNotNull(operations.getFromNamespace(StatementSupport.NAMESPACE,
- def.getStatementName()));
+ final var tmp = verifyNotNull(operations.namespaceItem(StatementSupport.NAMESPACE, def.getStatementName()));
final var repr = tmp.definition().getEffectiveRepresentationClass();
verify(effectiveClass.equals(repr), "Unexpected support %s representation %s", tmp, repr);
final Mutable<?, ?, ?> moduleCtx = prereq.resolve(ctx);
// Check namespace and revision first
- final QNameModule moduleQName =
- moduleCtx.getFromNamespace(ParserNamespaces.MODULECTX_TO_QNAME, moduleCtx);
+ final QNameModule moduleQName = moduleCtx.namespaceItem(ParserNamespaces.MODULECTX_TO_QNAME, moduleCtx);
if (!YangDataConstants.RFC8040_MODULE.equals(moduleQName)) {
return;
}
}
private static SourceIdentifier createSourceIdentifier(final StmtContext<?, ?, ?> root) {
- final QNameModule qNameModule = root.getFromNamespace(ParserNamespaces.MODULECTX_TO_QNAME, root);
+ final QNameModule qNameModule = root.namespaceItem(ParserNamespaces.MODULECTX_TO_QNAME, root);
final Object arg = root.getArgument();
verify(arg instanceof Unqualified, "Unexpected argument %s", arg);
if (prototype instanceof InferredStatementContext<?, ?, ?> inferredPrototype) {
// Note: we need to access namespace here, as the target statement may have already been populated, in which
// case we want to obtain the statement in local namespace storage.
- template = inferredPrototype.getFromNamespace(ParserNamespaces.schemaTree(), templateQName);
+ template = inferredPrototype.namespaceItem(ParserNamespaces.schemaTree(), templateQName);
} else {
template = prototype.allSubstatementsStream()
.filter(stmt -> stmt.producesEffective(SchemaTreeEffectiveStatement.class)
@Override
public final void setUnsupported() {
- this.isSupportedToBuildEffective = false;
+ isSupportedToBuildEffective = false;
}
@Override
*/
if (isParentSupportedByFeatures()) {
// If the set of supported features has not been provided, all features are supported by default.
- final Set<QName> supportedFeatures = getFromNamespace(ParserNamespaces.SUPPORTED_FEATURES,
- Empty.value());
+ final Set<QName> supportedFeatures = namespaceItem(ParserNamespaces.SUPPORTED_FEATURES, Empty.value());
if (supportedFeatures == null || StmtContextUtils.checkFeatureSupport(this, supportedFeatures)) {
flags |= SET_SUPPORTED_BY_FEATURES;
return true;
}
private PrefixResolver prefixes() {
- final var allImports = root.getAllFromNamespace(ParserNamespaces.IMPORT_PREFIX_TO_MODULECTX);
+ final var allImports = root.namespace(ParserNamespaces.IMPORT_PREFIX_TO_MODULECTX);
if (allImports != null) {
allImports.forEach((key, value) ->
- prefixToModuleMap.put(key, root.getFromNamespace(ParserNamespaces.MODULECTX_TO_QNAME, value)));
+ prefixToModuleMap.put(key, root.namespaceItem(ParserNamespaces.MODULECTX_TO_QNAME, value)));
}
- final var allBelongsTo = root.getAllFromNamespace(ParserNamespaces.BELONGSTO_PREFIX_TO_MODULECTX);
+ final var allBelongsTo = root.namespace(ParserNamespaces.BELONGSTO_PREFIX_TO_MODULECTX);
if (allBelongsTo != null) {
allBelongsTo.forEach((key, value) ->
- prefixToModuleMap.put(key, root.getFromNamespace(ParserNamespaces.MODULECTX_TO_QNAME, value)));
+ prefixToModuleMap.put(key, root.namespaceItem(ParserNamespaces.MODULECTX_TO_QNAME, value)));
}
return prefixToModuleMap;
final <K, V> void onNamespaceItemAddedAction(final ParserNamespace<K, V> type, final K key,
final OnNamespaceItemAdded listener) {
- final Object potential = getFromNamespace(type, key);
+ final Object potential = namespaceItem(type, key);
if (potential != null) {
LOG.trace("Listener on {} key {} satisfied immediately", type, key);
listener.namespaceItemAdded(this, type, key, potential);
StmtNamespaceContext(final StmtContext<?, ?, ?> ctx) {
// QNameModule -> prefix mappings
- final Map<QNameModule, String> qnameToPrefix = ctx.getAllFromNamespace(ModuleQNameToPrefix.INSTANCE);
+ final Map<QNameModule, String> qnameToPrefix = ctx.namespace(ModuleQNameToPrefix.INSTANCE);
moduleToPrefix = qnameToPrefix == null ? ImmutableBiMap.of() : ImmutableBiMap.copyOf(qnameToPrefix);
// Additional mappings
final Map<String, QNameModule> additional = new HashMap<>();
- final Map<String, StmtContext<?, ?, ?>> imports = ctx.getAllFromNamespace(
- ParserNamespaces.IMPORT_PREFIX_TO_MODULECTX);
+ final Map<String, StmtContext<?, ?, ?>> imports = ctx.namespace(ParserNamespaces.IMPORT_PREFIX_TO_MODULECTX);
if (imports != null) {
for (Entry<String, StmtContext<?, ?, ?>> entry : imports.entrySet()) {
if (!moduleToPrefix.containsValue(entry.getKey())) {
- QNameModule qnameModule = ctx.getFromNamespace(ParserNamespaces.MODULECTX_TO_QNAME,
- entry.getValue());
+ QNameModule qnameModule = ctx.namespaceItem(ParserNamespaces.MODULECTX_TO_QNAME, entry.getValue());
if (qnameModule == null && ctx.producesDeclared(SubmoduleStatement.class)) {
- qnameModule = ctx.getFromNamespace(ParserNamespaces.MODULE_NAME_TO_QNAME,
- ctx.getFromNamespace(ParserNamespaces.BELONGSTO_PREFIX_TO_MODULE_NAME, entry.getKey()));
+ qnameModule = ctx.namespaceItem(ParserNamespaces.MODULE_NAME_TO_QNAME,
+ ctx.namespaceItem(ParserNamespaces.BELONGSTO_PREFIX_TO_MODULE_NAME, entry.getKey()));
}
if (qnameModule != null) {
}
}
if (ctx.producesDeclared(SubmoduleStatement.class)) {
- final Map<String, Unqualified> belongsTo = ctx.getAllFromNamespace(
- ParserNamespaces.BELONGSTO_PREFIX_TO_MODULE_NAME);
+ final Map<String, Unqualified> belongsTo = ctx.namespace(ParserNamespaces.BELONGSTO_PREFIX_TO_MODULE_NAME);
if (belongsTo != null) {
for (Entry<String, Unqualified> entry : belongsTo.entrySet()) {
- final QNameModule module = ctx.getFromNamespace(ParserNamespaces.MODULE_NAME_TO_QNAME,
+ final QNameModule module = ctx.namespaceItem(ParserNamespaces.MODULE_NAME_TO_QNAME,
entry.getValue());
if (module != null && !additional.containsKey(entry.getKey())) {
additional.put(entry.getKey(), module);
public static @NonNull YangNamespaceContext computeIfAbsent(final StmtContext<?, ?, ?> ctx) {
final RootStmtContext<?, ?, ?> root = ctx.getRoot();
- YangNamespaceContext ret = ctx.getFromNamespace(INSTANCE, root);
+ YangNamespaceContext ret = ctx.namespaceItem(INSTANCE, root);
if (ret == null) {
verify(ctx instanceof Mutable, "Cannot populate namespace context to %s", ctx);
ret = new StmtNamespaceContext(root);
}
}
- this.groupings = ImmutableSet.copyOf(mutableGroupings);
- this.typeDefinitions = ImmutableSet.copyOf(mutableTypeDefinitions);
- this.uses = ImmutableSet.copyOf(mutableUses);
+ groupings = ImmutableSet.copyOf(mutableGroupings);
+ typeDefinitions = ImmutableSet.copyOf(mutableTypeDefinitions);
+ uses = ImmutableSet.copyOf(mutableUses);
}
@Override
.map(imp -> imp.prefix().argument())
.forEach(pfx -> {
final var importedCtx =
- verifyNotNull(stmt.getFromNamespace(ParserNamespaces.IMPORT_PREFIX_TO_MODULECTX, pfx),
+ verifyNotNull(stmt.namespaceItem(ParserNamespaces.IMPORT_PREFIX_TO_MODULECTX, pfx),
"Failed to resolve prefix %s", pfx);
builder.put(pfx, (ModuleEffectiveStatement) importedCtx.buildEffective());
});
final List<? extends StmtContext<?, ?, ?>> substatements) {
// Pick up the marker left by onFullDefinitionDeclared() inference action. If it is present we need to pass our
// children through target's implicit wrapping.
- final var implicitDef = stmt.getFromNamespace(AugmentImplicitHandlingNamespace.INSTANCE, Empty.value());
+ final var implicitDef = stmt.namespaceItem(AugmentImplicitHandlingNamespace.INSTANCE, Empty.value());
return implicitDef == null ? substatements
: Lists.transform(substatements, subCtx -> implicitDef.wrapWithImplicit(subCtx));
}
* the same QName. We must find the Container and the Grouping must be
* ignored as disallowed augment target.
*/
- final Collection<?> allowedAugmentTargets = substatementCtx.getFromNamespace(
+ final Collection<?> allowedAugmentTargets = substatementCtx.namespaceItem(
ValidationBundles.NAMESPACE, ValidationBundleType.SUPPORTED_AUGMENT_TARGETS);
// if no allowed target is returned we consider all targets allowed
private static boolean isDeviationSupported(
final Mutable<DeviateKind, DeviateStatement, DeviateEffectiveStatement> deviateStmtCtx,
final SchemaNodeIdentifier deviationTarget) {
- final SetMultimap<QNameModule, QNameModule> modulesDeviatedByModules = deviateStmtCtx.getFromNamespace(
+ final SetMultimap<QNameModule, QNameModule> modulesDeviatedByModules = deviateStmtCtx.namespaceItem(
ParserNamespaces.MODULES_DEVIATED_BY, Empty.value());
if (modulesDeviatedByModules == null) {
return true;
}
- final QNameModule currentModule = deviateStmtCtx.getFromNamespace(ParserNamespaces.MODULECTX_TO_QNAME,
+ final QNameModule currentModule = deviateStmtCtx.namespaceItem(ParserNamespaces.MODULECTX_TO_QNAME,
deviateStmtCtx.getRoot());
final QNameModule targetModule = Iterables.getLast(deviationTarget.getNodeIdentifiers()).getModule();
public void apply(final InferenceContext ctx) {
final StmtContext<?, ?, ?> importedModuleContext = imported.resolve(ctx);
verify(moduleName.equals(importedModuleContext.getArgument()));
- final XMLNamespace importedModuleNamespace = verifyNotNull(importedModuleContext.getFromNamespace(
+ final XMLNamespace importedModuleNamespace = verifyNotNull(importedModuleContext.namespaceItem(
ParserNamespaces.MODULE_NAME_TO_NAMESPACE, moduleName));
final String impPrefix = SourceException.throwIfNull(
firstAttributeOf(stmt.declaredSubstatements(), PrefixStatement.class), stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
InferenceException.throwIf(substatements.isEmpty(), stmt, "Unexpected empty effective import statement");
return EffectiveStatements.createImport(stmt.declared(), substatements,
- verifyNotNull(stmt.getFromNamespace(ImportedVersionNamespace.INSTANCE, Empty.value())));
+ verifyNotNull(stmt.namespaceItem(ImportedVersionNamespace.INSTANCE, Empty.value())));
}
}
public void apply(final InferenceContext ctx) {
final StmtContext<?, ?, ?> importedModule = imported.resolve(ctx);
- final SourceIdentifier importedModuleIdentifier = stmt.getFromNamespace(
+ final SourceIdentifier importedModuleIdentifier = stmt.namespaceItem(
ParserNamespaces.MODULECTX_TO_SOURCE, importedModule);
stmt.addToNs(ImportedVersionNamespace.INSTANCE, Empty.value(), importedModuleIdentifier);
final QNameModule mod = InferenceException.throwIfNull(
- stmt.getFromNamespace(ParserNamespaces.MODULECTX_TO_QNAME, importedModule), stmt,
+ stmt.namespaceItem(ParserNamespaces.MODULECTX_TO_QNAME, importedModule), stmt,
"Failed to find module of %s", importedModule);
linkageTarget.resolve(ctx).addToNs(ParserNamespaces.IMPORTED_MODULE, importedModuleIdentifier,
private static void warnConfigList(final @NonNull Current<QName, ListStatement> stmt) {
final StatementSourceReference ref = stmt.sourceReference();
- final Boolean warned = stmt.getFromNamespace(ConfigListWarningNamespace.INSTANCE, ref);
+ final Boolean warned = stmt.namespaceItem(ConfigListWarningNamespace.INSTANCE, ref);
// Hacky check if we have issued a warning for the original statement
if (warned == null) {
final StmtContext<?, ?, ?> ctx = stmt.caerbannog();
private static void appendImplicitSubstatement(final Mutable<QName, ActionStatement, ActionEffectiveStatement> stmt,
final QName substatementName) {
stmt.addEffectiveSubstatement(stmt.createUndeclaredSubstatement(
- verifyNotNull(stmt.getFromNamespace(StatementSupport.NAMESPACE, substatementName)), null));
+ verifyNotNull(stmt.namespaceItem(StatementSupport.NAMESPACE, substatementName)), null));
}
}
if (!caseShorthands.contains(stmtDef)) {
return Optional.empty();
}
- return Optional.of(verifyNotNull(parent.getFromNamespace(StatementSupport.NAMESPACE,
+ return Optional.of(verifyNotNull(parent.namespaceItem(StatementSupport.NAMESPACE,
YangStmtMapping.CASE.getStatementName())));
}
if (root.producesDeclared(SubmoduleStatement.class)) {
// root is submodule, we need to find the module we belong to. We can rely on there being exactly one
// belongs-to statement, enforced SubmoduleStatementSupport's validator.
- root = Iterables.getOnlyElement(
- root.getAllFromNamespace(ParserNamespaces.BELONGSTO_PREFIX_TO_MODULECTX).values());
+ root = Iterables.getOnlyElement(root.namespace(ParserNamespaces.BELONGSTO_PREFIX_TO_MODULECTX).values());
}
- final var currentModule = verifyNotNull(ctx.getFromNamespace(ParserNamespaces.MODULECTX_TO_QNAME, root),
+ final var currentModule = verifyNotNull(ctx.namespaceItem(ParserNamespaces.MODULECTX_TO_QNAME, root),
"Failed to find QName for %s", root);
final var targetModule = Iterables.getLast(ctx.getArgument().getNodeIdentifiers()).getModule();
if (currentModule.equals(targetModule)) {
stmt.addContext(ParserNamespaces.FEATURE, stmt.getArgument(), stmt);
// Do not build effective statement if supported features does not include this feature
- final var supportedFeatures = stmt.getFromNamespace(ParserNamespaces.SUPPORTED_FEATURES, Empty.value());
+ final var supportedFeatures = stmt.namespaceItem(ParserNamespaces.SUPPORTED_FEATURES, Empty.value());
if (supportedFeatures != null && !supportedFeatures.contains(stmt.getArgument())) {
stmt.setUnsupported();
}
private static void checkConflict(final StmtContext<?, ?, ?> parent, final StmtContext<QName, ?, ?> stmt) {
final QName arg = stmt.getArgument();
- final StmtContext<?, ?, ?> existing = parent.getFromNamespace(ParserNamespaces.GROUPING, arg);
+ final StmtContext<?, ?, ?> existing = parent.namespaceItem(ParserNamespaces.GROUPING, arg);
SourceException.throwIf(existing != null, stmt, "Duplicate name for grouping %s", arg);
}
}
public void onStatementDefinitionDeclared(
final Mutable<QName, IdentityStatement, IdentityEffectiveStatement> stmt) {
final QName qname = stmt.getArgument();
- final StmtContext<?, ?, ?> prev = stmt.getFromNamespace(ParserNamespaces.IDENTITY, qname);
+ final StmtContext<?, ?, ?> prev = stmt.namespaceItem(ParserNamespaces.IDENTITY, qname);
SourceException.throwIf(prev != null, stmt, "Duplicate identity definition %s", qname);
stmt.addToNs(ParserNamespaces.IDENTITY, qname, stmt);
}
if (substatement instanceof BaseEffectiveStatement) {
final QName qname = ((BaseEffectiveStatement) substatement).argument();
final IdentityEffectiveStatement identity =
- verifyNotNull(stmt.getFromNamespace(ParserNamespaces.IDENTITY, qname),
+ verifyNotNull(stmt.namespaceItem(ParserNamespaces.IDENTITY, qname),
"Failed to find identity %s", qname)
.buildEffective();
verify(identity instanceof IdentitySchemaNode, "%s is not a IdentitySchemaNode", identity);
private static void appendImplicitSubstatement(final Mutable<QName, RpcStatement, RpcEffectiveStatement> stmt,
final QName substatementName) {
stmt.addEffectiveSubstatement(stmt.createUndeclaredSubstatement(
- verifyNotNull(stmt.getFromNamespace(StatementSupport.NAMESPACE, substatementName)), null));
+ verifyNotNull(stmt.namespaceItem(StatementSupport.NAMESPACE, substatementName)), null));
}
}
private static void checkConflict(final StmtContext<?, ?, ?> parent, final StmtContext<QName, ?, ?> stmt) {
final QName arg = stmt.getArgument();
- final StmtContext<?, ?, ?> existing = parent.getFromNamespace(ParserNamespaces.TYPE, arg);
+ final StmtContext<?, ?, ?> existing = parent.namespaceItem(ParserNamespaces.TYPE, arg);
// RFC7950 sections 5.5 and 6.2.1: identifiers must not be shadowed
SourceException.throwIf(existing != null, stmt, "Duplicate name for typedef %s", arg);
}
final Revision revisionDate = StmtContextUtils.getLatestRevision(stmt.declaredSubstatements()).orElse(null);
final QNameModule qNameModule = QNameModule.create(moduleNs, revisionDate).intern();
final StmtContext<?, ModuleStatement, ModuleEffectiveStatement> possibleDuplicateModule =
- stmt.getFromNamespace(ParserNamespaces.NAMESPACE_TO_MODULE, qNameModule);
+ stmt.namespaceItem(ParserNamespaces.NAMESPACE_TO_MODULE, qNameModule);
if (possibleDuplicateModule != null && possibleDuplicateModule != stmt) {
throw new SourceException(stmt, "Module namespace collision: %s. At %s", qNameModule.getNamespace(),
possibleDuplicateModule.sourceReference());
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
super(stmt, substatements, findSubmodulePrefix(stmt, substatements));
- final QNameModule belongsToModuleQName = stmt.getFromNamespace(ParserNamespaces.MODULE_NAME_TO_QNAME,
+ final QNameModule belongsToModuleQName = stmt.namespaceItem(ParserNamespaces.MODULE_NAME_TO_QNAME,
findBelongsTo(stmt, substatements).argument());
final Builder<String, ModuleEffectiveStatement> prefixToModuleBuilder = ImmutableMap.builder();
StmtContextUtils.getLatestRevision(stmt.declaredSubstatements()).orElse(null));
final StmtContext<?, SubmoduleStatement, SubmoduleEffectiveStatement>
- possibleDuplicateSubmodule = stmt.getFromNamespace(ParserNamespaces.SUBMODULE, submoduleIdentifier);
+ possibleDuplicateSubmodule = stmt.namespaceItem(ParserNamespaces.SUBMODULE, submoduleIdentifier);
if (possibleDuplicateSubmodule != null && possibleDuplicateSubmodule != stmt) {
throw new SourceException(stmt, "Submodule name collision: %s. At %s", stmt.rawArgument(),
possibleDuplicateSubmodule.sourceReference());
StmtContextUtils.findAllDeclaredSubstatements(stmt, BaseStatement.class);
for (StmtContext<QName, BaseStatement, ?> baseStmt : baseStatements) {
final QName baseIdentity = baseStmt.getArgument();
- final StmtContext<?, ?, ?> stmtCtx = stmt.getFromNamespace(ParserNamespaces.IDENTITY, baseIdentity);
+ final StmtContext<?, ?, ?> stmtCtx = stmt.namespaceItem(ParserNamespaces.IDENTITY, baseIdentity);
InferenceException.throwIfNull(stmtCtx, stmt,
"Referenced base identity '%s' doesn't exist in given scope (module, imported modules, submodules)",
baseIdentity.getLocalName());
if (subStmt instanceof BaseEffectiveStatement) {
final QName identityQName = ((BaseEffectiveStatement) subStmt).argument();
final IdentityEffectiveStatement baseIdentity =
- verifyNotNull(stmt.getFromNamespace(ParserNamespaces.IDENTITY, identityQName)).buildEffective();
+ verifyNotNull(stmt.namespaceItem(ParserNamespaces.IDENTITY, identityQName)).buildEffective();
verify(baseIdentity instanceof IdentitySchemaNode, "Statement %s is not an IdentitySchemaNode",
baseIdentity);
builder.addIdentity((IdentitySchemaNode) baseIdentity);
protected UsesEffectiveStatement createEffective(final Current<QName, UsesStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
final EffectiveStatement<?, ?> source =
- verifyNotNull(stmt.getFromNamespace(SourceGroupingNamespace.INSTANCE, Empty.value())).buildEffective();
+ verifyNotNull(stmt.namespaceItem(SourceGroupingNamespace.INSTANCE, Empty.value())).buildEffective();
verify(source instanceof GroupingDefinition, "Unexpected source %s", source);
final GroupingDefinition sourceGrouping = (GroupingDefinition) source;
private static QNameModule getNewQNameModule(final StmtContext<?, ?, ?> targetCtx,
final StmtContext<?, ?, ?> stmtContext) {
if (targetCtx.getParentContext() == null) {
- return targetCtx.getFromNamespace(ParserNamespaces.MODULECTX_TO_QNAME, targetCtx);
+ return targetCtx.namespaceItem(ParserNamespaces.MODULECTX_TO_QNAME, targetCtx);
}
if (targetCtx.publicDefinition() == YangStmtMapping.AUGMENT) {
return StmtContextUtils.getModuleQName(targetCtx);
}
private static boolean isSupportedRefineSubstatement(final StmtContext<?, ?, ?> refineSubstatementCtx) {
- final Collection<?> supportedRefineSubstatements = refineSubstatementCtx.getFromNamespace(
+ final Collection<?> supportedRefineSubstatements = refineSubstatementCtx.namespaceItem(
ValidationBundles.NAMESPACE, ValidationBundleType.SUPPORTED_REFINE_SUBSTATEMENTS);
return supportedRefineSubstatements == null || supportedRefineSubstatements.isEmpty()
ThirdPartyExtensionEffectiveStatementImpl(final Current<String, ThirdPartyExtensionStatement> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
super(stmt.declared(), stmt.argument(), stmt.history(), substatements);
- valueFromNamespace = stmt.getFromNamespace(ThirdPartyNamespace.INSTANCE, Empty.value());
+ valueFromNamespace = stmt.namespaceItem(ThirdPartyNamespace.INSTANCE, Empty.value());
}
@Override
}
QName nextPath = iterator.next();
- var current = root.getFromNamespace(schemaTree(), nextPath);
+ var current = root.namespaceItem(schemaTree(), nextPath);
if (current == null) {
return Optional.ofNullable(tryToFindUnknownStatement(nextPath.getLocalName(), root));
}
while (current != null && iterator.hasNext()) {
nextPath = iterator.next();
- final var nextNodeCtx = current.getFromNamespace(schemaTree(), nextPath);
+ final var nextNodeCtx = current.namespaceItem(schemaTree(), nextPath);
if (nextNodeCtx == null) {
return Optional.ofNullable(tryToFindUnknownStatement(nextPath.getLocalName(), current));
}
* @return Namespace portion stored in this node, if available
*/
<K, V> @Nullable Map<K, V> localNamespacePortion(@NonNull ParserNamespace<K, V> nsType);
-
- /**
- * Return the selected namespace.
- *
- * @param <K> namespace key type
- * @param <V> namespace value type
- * @param nsType namespace type class
- * @return Namespace contents, if available
- */
- // TODO: migrate users away
- default <K, V> Map<K, V> getAllFromNamespace(final @NonNull ParserNamespace<K, V> nsType) {
- return namespace(nsType);
- }
-
- /**
- * Return a value associated with specified key within a namespace.
- *
- * @param type Namespace type
- * @param key Key
- * @param <K> namespace key type
- * @param <V> namespace value type
- * @param <T> key type
- * @return Value, or null if there is no element
- * @throws NamespaceNotAvailableException when the namespace is not available.
- */
- // TODO: migrate users away
- default <K, V, T extends K> @Nullable V getFromNamespace(final @NonNull ParserNamespace<K, V> type, final T key) {
- return namespaceItem(type, key);
- }
}
/**
* {@link ParserNamespace} serves as common superclass for namespaces used during parser operation. Each such namespace,
* is a type-captured subclass. This type capture of namespace allows for handy type-safe reading methods such as
- * {@link NamespaceStmtCtx#getFromNamespace(ParserNamespace, Object)} and still allows introduction of new namespaces
+ * {@link NamespaceStmtCtx#namespaceItem(ParserNamespace, Object)} and still allows introduction of new namespaces
* without need to change APIs.
*
* @param <K> Identifier type
if (ctx.producesDeclared(ModuleStatement.class)) {
return lookupModuleQName(ctx, ctx);
} else if (ctx.producesDeclared(SubmoduleStatement.class)) {
- final var belongsTo = ctx.getAllFromNamespace(ParserNamespaces.BELONGSTO_PREFIX_TO_MODULECTX);
+ final var belongsTo = ctx.namespace(ParserNamespaces.BELONGSTO_PREFIX_TO_MODULECTX);
if (belongsTo == null || belongsTo.isEmpty()) {
throw new IllegalArgumentException(ctx + " does not have belongs-to linkage resolved");
}
private static @NonNull QNameModule lookupModuleQName(final NamespaceStmtCtx storage,
final StmtContext<?, ?, ?> module) {
- final var ret = storage.getFromNamespace(ParserNamespaces.MODULECTX_TO_QNAME, module);
+ final var ret = storage.namespaceItem(ParserNamespaces.MODULECTX_TO_QNAME, module);
if (ret == null) {
throw new IllegalArgumentException("Failed to look up QNameModule for " + module + " in " + storage);
}
public static QNameModule getModuleQNameByPrefix(final StmtContext<?, ?, ?> ctx, final String prefix) {
final var root = ctx.getRoot();
- final var importedModule = root.getFromNamespace(ParserNamespaces.IMPORT_PREFIX_TO_MODULECTX, prefix);
- final var qnameModule = ctx.getFromNamespace(ParserNamespaces.MODULECTX_TO_QNAME, importedModule);
+ final var importedModule = root.namespaceItem(ParserNamespaces.IMPORT_PREFIX_TO_MODULECTX, prefix);
+ final var qnameModule = ctx.namespaceItem(ParserNamespaces.MODULECTX_TO_QNAME, importedModule);
if (qnameModule != null) {
return qnameModule;
}
if (root.producesDeclared(SubmoduleStatement.class)) {
- return ctx.getFromNamespace(ParserNamespaces.MODULE_NAME_TO_QNAME,
- root.getFromNamespace(ParserNamespaces.BELONGSTO_PREFIX_TO_MODULE_NAME, prefix));
+ return ctx.namespaceItem(ParserNamespaces.MODULE_NAME_TO_QNAME,
+ root.namespaceItem(ParserNamespaces.BELONGSTO_PREFIX_TO_MODULE_NAME, prefix));
}
return null;
final int value = entry.getValue().getValue();
if (cardinality == null) {
- if (ctx.getFromNamespace(ParserNamespaces.EXTENSION, key.getStatementName()) == null) {
+ if (ctx.namespaceItem(ParserNamespaces.EXTENSION, key.getStatementName()) == null) {
final StmtContext<?, ?, ?> root = ctx.getRoot();
throw new InvalidSubstatementException(ctx, "%s is not valid for %s. Error in module %s (%s)", key,
currentStatement, root.rawArgument(),
- ctx.getFromNamespace(ParserNamespaces.MODULECTX_TO_QNAME, root));
+ ctx.namespaceItem(ParserNamespaces.MODULECTX_TO_QNAME, root));
}
continue;
throw new InvalidSubstatementException(ctx,
"Minimal count of %s for %s is %s, detected %s. Error in module %s (%s)", key, currentStatement,
cardinality.getMin(), value, root.rawArgument(),
- ctx.getFromNamespace(ParserNamespaces.MODULECTX_TO_QNAME, root));
+ ctx.namespaceItem(ParserNamespaces.MODULECTX_TO_QNAME, root));
}
// Encountered a mandatory statement, hence we are not missing it
throw new InvalidSubstatementException(ctx,
"Maximal count of %s for %s is %s, detected %s. Error in module %s (%s)", key, currentStatement,
cardinality.getMax(), value, root.rawArgument(),
- ctx.getFromNamespace(ParserNamespaces.MODULECTX_TO_QNAME, root));
+ ctx.namespaceItem(ParserNamespaces.MODULECTX_TO_QNAME, root));
}
}
throw new MissingSubstatementException(ctx,
"%s is missing %s. Minimal count is %s. Error in module %s (%s)", currentStatement, e.getKey(),
e.getValue().getMin(), root.rawArgument(),
- ctx.getFromNamespace(ParserNamespaces.MODULECTX_TO_QNAME, root));
+ ctx.namespaceItem(ParserNamespaces.MODULECTX_TO_QNAME, root));
}
}