X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yanglib%2Fmdsal-yanglib-rfc7895%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fyanglib%2Frfc7895%2FYangModuleLibrarySupport.java;h=0e92b6ec17b25a56d70a3989e06d8b17522aac50;hb=11db4e7ea702ac79a4320e42fccb6d0175ef524a;hp=8aa3402cdd788c8ad0813d3d5982f1c5d22bd760;hpb=b7fd3e751017431bbde86ab4cf22d9e37c25f9ca;p=mdsal.git diff --git a/yanglib/mdsal-yanglib-rfc7895/src/main/java/org/opendaylight/mdsal/yanglib/rfc7895/YangModuleLibrarySupport.java b/yanglib/mdsal-yanglib-rfc7895/src/main/java/org/opendaylight/mdsal/yanglib/rfc7895/YangModuleLibrarySupport.java index 8aa3402cdd..0e92b6ec17 100644 --- a/yanglib/mdsal-yanglib-rfc7895/src/main/java/org/opendaylight/mdsal/yanglib/rfc7895/YangModuleLibrarySupport.java +++ b/yanglib/mdsal-yanglib-rfc7895/src/main/java/org/opendaylight/mdsal/yanglib/rfc7895/YangModuleLibrarySupport.java @@ -10,8 +10,8 @@ package org.opendaylight.mdsal.yanglib.rfc7895; import static com.google.common.base.Verify.verifyNotNull; import com.google.common.annotations.Beta; -import com.google.common.collect.Collections2; import java.io.IOException; +import java.util.List; import javax.inject.Inject; import javax.inject.Singleton; import org.eclipse.jdt.annotation.NonNullByDefault; @@ -20,6 +20,8 @@ import org.opendaylight.mdsal.binding.dom.codec.api.BindingCodecTreeFactory; import org.opendaylight.mdsal.binding.dom.codec.api.BindingDataObjectCodecTreeNode; import org.opendaylight.mdsal.binding.runtime.api.BindingRuntimeGenerator; import org.opendaylight.mdsal.binding.runtime.api.DefaultBindingRuntimeContext; +import org.opendaylight.mdsal.binding.runtime.api.ModuleInfoSnapshot; +import org.opendaylight.mdsal.binding.runtime.spi.ModuleInfoSnapshotBuilder; import org.opendaylight.mdsal.yanglib.api.SchemaContextResolver; import org.opendaylight.mdsal.yanglib.api.YangLibSupport; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.$YangModuleInfoImpl; @@ -27,13 +29,9 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.librar import org.opendaylight.yangtools.rfc8528.data.api.MountPointContextFactory; import org.opendaylight.yangtools.rfc8528.data.api.MountPointIdentifier; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.binding.YangModuleInfo; -import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.parser.api.YangParserException; import org.opendaylight.yangtools.yang.model.parser.api.YangParserFactory; -import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier; -import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; @Beta @NonNullByDefault @@ -45,15 +43,13 @@ public final class YangModuleLibrarySupport implements YangLibSupport { @Inject public YangModuleLibrarySupport(final YangParserFactory parserFactory, final BindingRuntimeGenerator generator, final BindingCodecTreeFactory codecFactory) throws YangParserException, IOException { - final YangModuleInfo yangLibModule = $YangModuleInfoImpl.getInstance(); + final ModuleInfoSnapshotBuilder builder = new ModuleInfoSnapshotBuilder("yanglib", parserFactory); + builder.registerModuleInfos(List.of($YangModuleInfoImpl.getInstance())); + final ModuleInfoSnapshot snapshot = builder.build(); + context = snapshot.getEffectiveModelContext(); - context = parserFactory.createParser() - .addLibSources(Collections2.transform(yangLibModule.getImportedModules(), - YangModuleLibrarySupport::createSource)) - .addSource(createSource(yangLibModule)) - .buildEffectiveModel(); - final BindingCodecTree codecTree = codecFactory.create(DefaultBindingRuntimeContext.create( - generator.generateTypeMapping(context), SimpleStrategy.INSTANCE)); + final BindingCodecTree codecTree = codecFactory.create(new DefaultBindingRuntimeContext( + generator.generateTypeMapping(context), snapshot)); this.codec = verifyNotNull(codecTree.getSubtreeCodec(InstanceIdentifier.create(ModulesState.class))); } @@ -63,10 +59,4 @@ public final class YangModuleLibrarySupport implements YangLibSupport { final SchemaContextResolver resolver) { return new MountPointContextFactoryImpl(mountId, resolver, context, codec); } - - private static YangTextSchemaSource createSource(final YangModuleInfo info) { - final QName name = info.getName(); - return YangTextSchemaSource.delegateForByteSource( - RevisionSourceIdentifier.create(name.getLocalName(), name.getRevision()), info.getYangTextByteSource()); - } }