import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.SchemaContextProvider;
import org.opendaylight.yangtools.yang.model.api.SchemaPath;
// FIXME: 3.0.0 hide this class
-public final class LeafRefContext {
+public final class LeafRefContext implements SchemaContextProvider {
private final QName currentNodeQName;
private final SchemaPath currentNodePath;
return currentNodeQName;
}
- SchemaContext getSchemaContext() {
+ @Override
+ public SchemaContext getSchemaContext() {
return schemaContext;
}
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;
@NonNullByDefault
-final class JaxenDocument implements XPathDocument {
+final class JaxenDocument implements XPathDocument, SchemaContextProvider {
private final DataSchemaContextNode<?> schema;
private final NormalizedNode<?, ?> root;
private final SchemaContext context;
return root;
}
- SchemaContext getSchemaContext() {
+ @Override
+ public SchemaContext getSchemaContext() {
return context;
}
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;
-final class NormalizedNodeContextSupport extends ContextSupport {
+final class NormalizedNodeContextSupport extends ContextSupport implements SchemaContextProvider {
private static final long serialVersionUID = 1L;
private final NormalizedNodeContext root;
return (NormalizedNodeNavigator) super.getNavigator();
}
- SchemaContext getSchemaContext() {
- return getNavigator().getDocument().getSchemaContext();
+ @Override
+ public SchemaContext getSchemaContext() {
+ return getNavigator().getSchemaContext();
}
}
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;
/**
* A {@link Navigator} implementation for YANG XPaths instantiated on a particular root {@link NormalizedNode}.
*/
-final class NormalizedNodeNavigator extends DefaultNavigator implements NamedAccessNavigator {
+final class NormalizedNodeNavigator extends DefaultNavigator implements NamedAccessNavigator, SchemaContextProvider {
private static final long serialVersionUID = 1L;
private static final Joiner JOINER = Joiner.on(" ").skipNulls();
private final ConverterNamespaceContext namespaceContext;
return cast(contextNode).getParent();
}
+ @Override
+ public SchemaContext getSchemaContext() {
+ return document.getSchemaContext();
+ }
+
JaxenDocument getDocument() {
return document;
}
import java.util.ArrayList;
import java.util.List;
import javax.annotation.concurrent.ThreadSafe;
+import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.common.QNameModule;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.SchemaContextProvider;
import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
import org.opendaylight.yangtools.yang.model.api.TypedDataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.type.BinaryTypeDefinition;
* @param <T> Codec type
*/
@ThreadSafe
-public abstract class AbstractCodecFactory<T extends TypeAwareCodec<?, ?, ?>> {
+public abstract class AbstractCodecFactory<T extends TypeAwareCodec<?, ?, ?>> implements SchemaContextProvider {
private static final Logger LOG = LoggerFactory.getLogger(AbstractCodecFactory.class);
- private final CodecCache<T> cache;
+ private final @NonNull CodecCache<T> cache;
- private final SchemaContext schemaContext;
+ private final @NonNull SchemaContext schemaContext;
protected AbstractCodecFactory(final SchemaContext schemaContext, final CodecCache<T> cache) {
this.schemaContext = requireNonNull(schemaContext);
this.cache = requireNonNull(cache);
}
+ @Override
public final SchemaContext getSchemaContext() {
return schemaContext;
}
- public final T codecFor(final TypedDataSchemaNode schema) {
+ public final @NonNull T codecFor(final TypedDataSchemaNode schema) {
/*
* There are many trade-offs to be made here. We need the common case being as fast as possible while reusing
* codecs as much as possible.
* - null codec, which does not depend on anything
* - instance identifier codec, which is based on namespace mapping
*
- * We assume prevalence is in above order and that caching is effective. We therefore
+ * We assume prevalence is in above order and that caching is effective.
*/
final TypeDefinition<?> type = schema.getType();
T ret = cache.lookupSimple(type);