import com.google.common.annotations.Beta;
import java.util.Optional;
import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.opendaylight.yangtools.yang.model.api.SchemaContextProvider;
/**
* A context of either an explicit (RFC8528 Schema Mount instance) or implicit (system root). It encapsulates a data
- * {@link SchemaContext} and information resident in {@code schema-mounts} within this hierarchy.
+ * {@link org.opendaylight.yangtools.yang.model.api.SchemaContext} and information resident in {@code schema-mounts}
+ * within this hierarchy.
*
* <p>
* Note this interface should be part of yang-data-api, as it really defines how a NormalizedNode-containerized data
*/
@Beta
public interface MountPointContext extends SchemaContextProvider {
- @Override
- // FIXME: remove this override when SchemaContextProvider's method has sane semantics.
- @NonNull SchemaContext getSchemaContext();
-
/**
* Attempt to acquire a {@link MountPointContextFactory} to resolve schemas for the purposes of interpreting
* this mount point. An empty result indicates the mount point is not attached.
import com.google.common.annotations.Beta;
import java.io.IOException;
-import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.opendaylight.yangtools.concepts.Immutable;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.opendaylight.yangtools.yang.model.api.SchemaContextProvider;
/**
@NonNullByDefault
public interface NormalizedAnydata extends Immutable, SchemaContextProvider {
- @Override
- // FIXME: remove this override when SchemaContextProvider's method has sane semantics.
- @NonNull SchemaContext getSchemaContext();
-
DataSchemaNode getContextNode();
NormalizedNode<?, ?> getData();
package org.opendaylight.yangtools.yang.data.api.schema.tree;
import java.util.Optional;
-import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
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;
/**
* @return A new data tree modification
*/
DataTreeModification newModification();
-
- @Override
- @NonNull SchemaContext getSchemaContext();
}
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.api.SchemaContextProvider;
+import org.opendaylight.yangtools.yang.model.util.AbstractSchemaContextProvider;
@NonNullByDefault
-final class JaxenDocument implements XPathDocument, SchemaContextProvider {
+final class JaxenDocument extends AbstractSchemaContextProvider implements XPathDocument {
private final DataSchemaContextNode<?> schema;
private final NormalizedNode<?, ?> root;
- private final SchemaContext context;
JaxenDocument(final SchemaContext context, final DataSchemaContextTree tree,
- final NormalizedNode<?, ?> root) {
+ final NormalizedNode<?, ?> root) {
+ super(context);
this.root = requireNonNull(root);
- this.context = requireNonNull(context);
this.schema = requireNonNull(tree.getRoot().getChild(root.getIdentifier()));
}
return root;
}
- @Override
- public SchemaContext getSchemaContext() {
- return context;
- }
-
DataSchemaContextNode<?> getSchema() {
return schema;
}
@Override
default SchemaContext getSchemaContext() {
- try {
- return getEffectiveModelContext();
- } catch (IllegalStateException e) {
- return null;
- }
+ return getEffectiveModelContext();
}
}
*/
package org.opendaylight.yangtools.yang.model.api;
+import org.eclipse.jdt.annotation.NonNull;
+
// FIXME: document this API contract
public interface SchemaContextProvider {
-
- // FIXME: 4.0.0: This needs to return @NonNull
- SchemaContext getSchemaContext();
+ /**
+ * Return the {@link SchemaContext} attached to this object.
+ *
+ * @return An SchemaContext instance.
+ * @throws IllegalStateException if the context is not available.
+ */
+ @NonNull SchemaContext getSchemaContext();
}
import com.google.common.annotations.Beta;
import com.google.common.base.MoreObjects;
import com.google.common.base.MoreObjects.ToStringHelper;
-import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.opendaylight.yangtools.yang.model.api.SchemaContextProvider;
}
@Override
- // FIXME: remove @NonNull SchemaContextProvider's method has sane semantics
- public final @NonNull SchemaContext getSchemaContext() {
+ public final SchemaContext getSchemaContext() {
return schemaContext;
}