import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.opendaylight.yangtools.yang.model.util.AbstractSchemaContextProvider;
+import org.opendaylight.yangtools.yang.model.util.AbstractEffectiveModelContextProvider;
-public final class LeafRefContext extends AbstractSchemaContextProvider {
+public final class LeafRefContext extends AbstractEffectiveModelContextProvider {
private final QName currentNodeQName;
private final SchemaPath currentNodePath;
import org.opendaylight.yangtools.yang.data.jaxen.api.XPathDocument;
import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode;
import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.util.AbstractSchemaContextProvider;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
+import org.opendaylight.yangtools.yang.model.util.AbstractEffectiveModelContextProvider;
@NonNullByDefault
-final class JaxenDocument extends AbstractSchemaContextProvider implements XPathDocument {
+final class JaxenDocument extends AbstractEffectiveModelContextProvider implements XPathDocument {
private final DataSchemaContextNode<?> schema;
private final NormalizedNode<?, ?> root;
- JaxenDocument(final SchemaContext context, final DataSchemaContextTree tree,
+ JaxenDocument(final EffectiveModelContext context, final DataSchemaContextTree tree,
final NormalizedNode<?, ?> root) {
super(context);
this.root = requireNonNull(root);
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodes;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaContextProvider;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextProvider;
-final class NormalizedNodeContextSupport extends ContextSupport implements SchemaContextProvider {
+final class NormalizedNodeContextSupport extends ContextSupport implements EffectiveModelContextProvider {
private static final long serialVersionUID = 1L;
private final NormalizedNodeContext root;
}
@Override
- public SchemaContext getSchemaContext() {
- return getNavigator().getSchemaContext();
+ public EffectiveModelContext getEffectiveModelContext() {
+ return getNavigator().getEffectiveModelContext();
}
}
import org.opendaylight.yangtools.yang.data.api.schema.LeafNode;
import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaContextProvider;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextProvider;
/**
* A {@link Navigator} implementation for YANG XPaths instantiated on a particular root {@link NormalizedNode}.
*/
-final class NormalizedNodeNavigator extends DefaultNavigator implements NamedAccessNavigator, SchemaContextProvider {
+final class NormalizedNodeNavigator extends DefaultNavigator
+ implements NamedAccessNavigator, EffectiveModelContextProvider {
private static final long serialVersionUID = 1L;
private static final Joiner JOINER = Joiner.on(" ").skipNulls();
private final ConverterNamespaceContext namespaceContext;
}
@Override
- public SchemaContext getSchemaContext() {
- return document.getSchemaContext();
+ public EffectiveModelContext getEffectiveModelContext() {
+ return document.getEffectiveModelContext();
}
JaxenDocument getDocument() {
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodes;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode;
import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.ModuleImport;
enumName, enumerationType));
}
- private static SchemaContext getSchemaContext(final NormalizedNodeContext normalizedNodeContext) {
+ private static EffectiveModelContext getSchemaContext(final NormalizedNodeContext normalizedNodeContext) {
final ContextSupport contextSupport = normalizedNodeContext.getContextSupport();
verify(contextSupport instanceof NormalizedNodeContextSupport, "Unhandled context support %s",
contextSupport.getClass());
- return ((NormalizedNodeContextSupport) contextSupport).getSchemaContext();
+ return ((NormalizedNodeContextSupport) contextSupport).getEffectiveModelContext();
}
private static TypedDataSchemaNode getCorrespondingTypedSchemaNode(final NormalizedNodeContext currentNodeContext) {
* @author Robert Varga
*/
@Beta
-public interface EffectiveModelContextProvider extends SchemaContextProvider {
+public interface EffectiveModelContextProvider {
/**
* Return the {@link EffectiveModelContext} attached to this object.
*
* @throws IllegalStateException if the context is not available.
*/
@NonNull EffectiveModelContext getEffectiveModelContext();
-
- /**
- * {@inheritDoc}
- *
- * @deprecated Please use {@link #getEffectiveModelContext()} instead.
- */
- @Deprecated
- @Override
- default SchemaContext getSchemaContext() {
- return getEffectiveModelContext();
- }
}
+++ /dev/null
-/*
- * 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
- */
-package org.opendaylight.yangtools.yang.model.api;
-
-import org.eclipse.jdt.annotation.NonNull;
-
-// FIXME: 6.0.0: remove this contract
-public interface SchemaContextProvider {
- /**
- * Return the {@link SchemaContext} attached to this object.
- *
- * @return An SchemaContext instance.
- * @throws IllegalStateException if the context is not available.
- */
- @NonNull SchemaContext getSchemaContext();
-}
+++ /dev/null
-/*
- * Copyright (c) 2019 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.model.util;
-
-import static java.util.Objects.requireNonNull;
-
-import com.google.common.annotations.Beta;
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.NonNullByDefault;
-import org.opendaylight.yangtools.concepts.Identifiable;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-
-@Beta
-@NonNullByDefault
-public abstract class AbstractIdentifiableSchemaContextProvider<T> extends AbstractSchemaContextProvider
- implements Identifiable<T> {
- private final @NonNull T identifier;
-
- protected AbstractIdentifiableSchemaContextProvider(final SchemaContext schemaContext, final T identifier) {
- super(schemaContext);
- this.identifier = requireNonNull(identifier);
- }
-
- @Override
- public final T getIdentifier() {
- return identifier;
- }
-
-}
+++ /dev/null
-/*
- * Copyright (c) 2019 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.model.util;
-
-import static java.util.Objects.requireNonNull;
-
-import com.google.common.annotations.Beta;
-import com.google.common.base.MoreObjects;
-import com.google.common.base.MoreObjects.ToStringHelper;
-import org.eclipse.jdt.annotation.NonNullByDefault;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaContextProvider;
-
-/**
- * Utility superclass for classes returning a constant {@link SchemaContext}.
- */
-@Beta
-@NonNullByDefault
-public abstract class AbstractSchemaContextProvider implements SchemaContextProvider {
- private final SchemaContext schemaContext;
-
- protected AbstractSchemaContextProvider(final SchemaContext schemaContext) {
- this.schemaContext = requireNonNull(schemaContext);
- }
-
- @Override
- public final SchemaContext getSchemaContext() {
- return schemaContext;
- }
-
- @Override
- public final String toString() {
- return addToStringAttributes(MoreObjects.toStringHelper(this)).toString();
- }
-
- protected ToStringHelper addToStringAttributes(final ToStringHelper helper) {
- return helper.add("schemaContext", schemaContext);
- }
-}
import com.google.common.collect.ImmutableBiMap.Builder;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.util.Optional;
-import java.util.stream.Collectors;
import org.opendaylight.yangtools.yang.common.BiMapYangNamespaceContext;
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.api.stmt.ModuleEffectiveStatement;
/**
* Utility {@link YangNamespaceContext} backed by a SchemaContext, resolving namespaces to their module names. This
* @author Robert Varga
*/
@Beta
-public final class ModuleNameNamespaceContext extends AbstractSchemaContextProvider implements YangNamespaceContext {
+public final class ModuleNameNamespaceContext extends AbstractEffectiveModelContextProvider
+ implements YangNamespaceContext {
private static final long serialVersionUID = 1L;
@SuppressFBWarnings(value = "SE_NO_SUITABLE_CONSTRUCTOR", justification = "Handled through writeReplace()")
*/
public BiMapYangNamespaceContext toBiMap() {
final Builder<String, QNameModule> builder = ImmutableBiMap.builder();
- for (String name : getSchemaContext().getModules().stream().map(Module::getName).collect(Collectors.toSet())) {
+ for (ModuleEffectiveStatement module : getEffectiveModelContext().getModuleStatements().values()) {
+ final String name = module.argument().getLocalName();
builder.put(name, findNamespaceForPrefix(name).get());
}
return new BiMapYangNamespaceContext(builder.build());
@Override
public Optional<QNameModule> findNamespaceForPrefix(final String prefix) {
- return getSchemaContext().findModules(prefix).stream().findFirst().map(Module::getQNameModule);
+ return getEffectiveModelContext().findModules(prefix).stream().findFirst().map(Module::getQNameModule);
}
@Override
public Optional<String> findPrefixForNamespace(final QNameModule namespace) {
- return getSchemaContext().findModule(namespace).map(Module::getName);
+ return getEffectiveModelContext().findModule(namespace).map(Module::getName);
}
private Object writeReplace() {