Look up ModuleEffectiveStatement instead and derive returns from there.
JIRA: YANGTOOLS-1525
Change-Id: Ic6d61a69b50c938512a4cf6614777ac6bd46438a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
import org.opendaylight.yangtools.yang.data.util.codec.IdentityCodecUtil;
import org.opendaylight.yangtools.yang.data.util.codec.QNameCodecUtil;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
-import org.opendaylight.yangtools.yang.model.api.Module;
final class IdentityrefJSONCodec implements JSONCodec<QName> {
private final @NonNull EffectiveModelContext context;
return parentModule;
}
- final var modules = context.findModules(prefix).iterator();
+ final var modules = context.findModuleStatements(prefix).iterator();
checkArgument(modules.hasNext(), "Could not find module %s", prefix);
- return modules.next().getQNameModule();
+ return modules.next().localQNameModule();
}).getQName();
}
*/
@Override
public void writeValue(final JsonWriter writer, final QName value) throws IOException {
- final String str = QNameCodecUtil.encodeQName(value, uri -> context.findModule(uri)
- .map(Module::getName).orElseThrow(() -> new IllegalArgumentException("Cannot find module for " + uri)));
- writer.value(str);
+ writer.value(QNameCodecUtil.encodeQName(value, uri -> context.findModuleStatement(uri)
+ .map(module -> module.argument().getLocalName())
+ .orElseThrow(() -> new IllegalArgumentException("Cannot find module for " + uri))));
}
}
@Override
protected final String prefixForNamespace(final XMLNamespace namespace) {
- final var modules = context.findModules(namespace).iterator();
- return modules.hasNext() ? modules.next().getName() : null;
+ final var modules = context.findModuleStatements(namespace).iterator();
+ return modules.hasNext() ? modules.next().argument().getLocalName() : null;
}
@Override
import org.opendaylight.yangtools.yang.common.QNameModule;
import org.opendaylight.yangtools.yang.common.XMLNamespace;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
-import org.opendaylight.yangtools.yang.model.api.Module;
/**
* Abstract base class for a single level of {@link JSONNormalizedNodeStreamWriter} recursion. Provides the base API
// Prepend module name if namespaces do not match
final QNameModule module = qname.getModule();
if (!module.getNamespace().equals(getNamespace())) {
- final var name = schema.findModule(module)
- .map(Module::getName)
+ final var name = schema.findModuleStatement(module)
+ .map(mod -> mod.argument().getLocalName())
.orElseThrow(() -> new IllegalArgumentException("Could not find module for namespace " + module));
sb.append(name).append(':');
}
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Set;
import javax.xml.transform.dom.DOMSource;
import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.EffectiveStatementInference;
-import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
import org.opendaylight.yangtools.yang.model.api.OperationDefinition;
import org.opendaylight.yangtools.yang.model.api.TypedDataSchemaNode;
moduleNamePart = childName.substring(0, lastIndexOfColon);
nodeNamePart = childName.substring(lastIndexOfColon + 1);
- final Iterator<? extends Module> m = codecs.getEffectiveModelContext().findModules(moduleNamePart)
- .iterator();
- namespace = m.hasNext() ? m.next().getNamespace() : null;
+ final var m = codecs.getEffectiveModelContext().findModuleStatements(moduleNamePart).iterator();
+ namespace = m.hasNext() ? m.next().localQNameModule().getNamespace() : null;
} else {
nodeNamePart = childName;
}
private String toModuleNames(final Set<XMLNamespace> potentialUris) {
final StringBuilder builder = new StringBuilder();
- for (final XMLNamespace potentialUri : potentialUris) {
+ for (var potentialUri : potentialUris) {
builder.append('\n');
- //FIXME how to get information about revision from JSON input? currently first available is used.
- builder.append(codecs.getEffectiveModelContext().findModules(potentialUri).iterator().next().getName());
+ // FIXME how to get information about revision from JSON input? currently first available is used.
+ builder.append(codecs.getEffectiveModelContext().findModuleStatements(potentialUri).iterator().next()
+ .argument().getLocalName());
}
return builder.toString();
}
final var prefixedNS = ctx.getNamespaceURI(prefix);
checkArgument(prefixedNS != null, "Failed to resolve prefix %s", prefix);
- final var modules = context.findModules(XMLNamespace.of(prefixedNS)).iterator();
+ final var modules = context.findModuleStatements(XMLNamespace.of(prefixedNS)).iterator();
checkArgument(modules.hasNext(), "Could not find module for namespace %s", prefixedNS);
- return modules.next().getQNameModule();
+ return modules.next().localQNameModule();
}).getQName();
}
private Optional<QNameModule> resolveXmlNamespace(final String xmlNamespace) {
return resolvedNamespaces.computeIfAbsent(xmlNamespace, nsUri -> {
- final var it = codecs.getEffectiveModelContext().findModules(XMLNamespace.of(nsUri)).iterator();
- return it.hasNext() ? Optional.of(it.next().getQNameModule()) : Optional.empty();
+ final var it = codecs.getEffectiveModelContext().findModuleStatements(XMLNamespace.of(nsUri)).iterator();
+ return it.hasNext() ? Optional.of(it.next().localQNameModule()) : Optional.empty();
});
}
@Override
protected String prefixForNamespace(final XMLNamespace namespace) {
- final var modules = context.findModules(namespace).iterator();
- return modules.hasNext() ? modules.next().getName() : null;
+ final var modules = context.findModuleStatements(namespace).iterator();
+ return modules.hasNext() ? modules.next().argument().getLocalName() : null;
}
@Override
import com.google.common.annotations.Beta;
import com.google.common.collect.ImmutableSet;
-import java.util.Iterator;
import java.util.stream.Collectors;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.opendaylight.yangtools.concepts.Immutable;
import org.opendaylight.yangtools.yang.data.api.schema.MountPointContext;
import org.opendaylight.yangtools.yang.data.api.schema.MountPointContextFactory;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
-import org.opendaylight.yangtools.yang.model.api.Module;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
checkArgument(value instanceof String, "Unexpected module leaf value %s", value);
return (String) value;
}).orElseThrow(() -> new IllegalArgumentException("Mount module missing in " + entry));
- final Iterator<? extends Module> it = schemaContext.findModules(moduleName).iterator();
+ final var it = schemaContext.findModuleStatements(moduleName).iterator();
checkArgument(it.hasNext(), "Failed to find a module named %s", moduleName);
- final QNameModule module = it.next().getQNameModule();
+ final QNameModule module = it.next().localQNameModule();
return new MountPointDefinition(
new MountPointLabel(QName.create(module, entry.findChildByArg(LABEL).map(lbl -> {
import static java.util.Objects.requireNonNull;
import com.google.common.annotations.Beta;
-import java.util.Iterator;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.common.QNameModule;
import org.opendaylight.yangtools.yang.common.XMLNamespace;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextProvider;
-import org.opendaylight.yangtools.yang.model.api.Module;
/**
* Base class for implementing identityref codecs on based on module names.
@Beta
public abstract class ModuleStringIdentityrefCodec extends AbstractModuleStringIdentityrefCodec
implements EffectiveModelContextProvider {
- private final EffectiveModelContext context;
- private final QNameModule parentModule;
+ private final @NonNull EffectiveModelContext context;
+ private final @NonNull QNameModule parentModule;
protected ModuleStringIdentityrefCodec(final @NonNull EffectiveModelContext context,
final @NonNull QNameModule parentModule) {
@Override
protected String prefixForNamespace(final XMLNamespace namespace) {
- final Iterator<? extends Module> modules = context.findModules(namespace).iterator();
- return modules.hasNext() ? modules.next().getName() : null;
+ final var modules = context.findModuleStatements(namespace).iterator();
+ return modules.hasNext() ? modules.next().argument().getLocalName() : null;
}
}
import org.opendaylight.yangtools.yang.common.QNameModule;
import org.opendaylight.yangtools.yang.common.YangNamespaceContext;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
-import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.spi.AbstractEffectiveModelContextProvider;
/**
@Override
public QNameModule namespaceForPrefix(final String prefix) {
- return getEffectiveModelContext().findModules(prefix).stream().findFirst().map(Module::getQNameModule)
- .orElse(null);
+ final var modules = getEffectiveModelContext().findModuleStatements(prefix).iterator();
+ return modules.hasNext() ? modules.next().localQNameModule() : null;
}
@Override
public String prefixForNamespace(final QNameModule namespace) {
- return getEffectiveModelContext().findModule(namespace).map(Module::getName).orElse(null);
+ return getEffectiveModelContext().findModuleStatement(namespace)
+ .map(module -> module.argument().getLocalName())
+ .orElse(null);
}
@java.io.Serial