X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yanglib%2Fmdsal-yanglib-rfc8525%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fyanglib%2Frfc8525%2FYangLibrarySupport.java;h=f1b6b7127fc803c91aa54a85263b1b6737816b86;hb=c49d3af1e3c3886521af28d7a53593e22220887a;hp=4587e9430fad74d53d8bef166507e3cd30ed4419;hpb=a2ef0a40ac73b7eeaaf389513fa5245a43ca718f;p=mdsal.git diff --git a/yanglib/mdsal-yanglib-rfc8525/src/main/java/org/opendaylight/mdsal/yanglib/rfc8525/YangLibrarySupport.java b/yanglib/mdsal-yanglib-rfc8525/src/main/java/org/opendaylight/mdsal/yanglib/rfc8525/YangLibrarySupport.java index 4587e9430f..f1b6b7127f 100644 --- a/yanglib/mdsal-yanglib-rfc8525/src/main/java/org/opendaylight/mdsal/yanglib/rfc8525/YangLibrarySupport.java +++ b/yanglib/mdsal-yanglib-rfc8525/src/main/java/org/opendaylight/mdsal/yanglib/rfc8525/YangLibrarySupport.java @@ -23,40 +23,52 @@ 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.rev190104.$YangModuleInfoImpl; +import org.opendaylight.mdsal.yanglib.api.YangLibraryContentBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.ModulesState; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.YangLibrary; 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.common.Revision; 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.parser.api.YangParserException; +import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; +import org.osgi.service.component.annotations.Activate; +import org.osgi.service.component.annotations.Component; +import org.osgi.service.component.annotations.Reference; +import org.osgi.service.component.annotations.RequireServiceComponentRuntime; @Beta @NonNullByDefault @Singleton +@Component +@RequireServiceComponentRuntime public final class YangLibrarySupport implements YangLibSupport { + private static final Revision REVISION = YangLibrary.QNAME.getRevision().orElseThrow(); + private final BindingDataObjectCodecTreeNode codec; @SuppressWarnings("deprecation") private final BindingDataObjectCodecTreeNode legacyCodec; private final BindingIdentityCodec identityCodec; private final EffectiveModelContext context; + private final BindingCodecTree codecTree; @Inject - public YangLibrarySupport(final YangParserFactory parserFactory, final BindingRuntimeGenerator generator, - final BindingCodecTreeFactory codecFactory) throws YangParserException { + @Activate + public YangLibrarySupport(@Reference final YangParserFactory parserFactory, + @Reference final BindingRuntimeGenerator generator, @Reference final BindingCodecTreeFactory codecFactory) + throws YangParserException { final ModuleInfoSnapshot snapshot = new ModuleInfoSnapshotBuilder(parserFactory) - .add($YangModuleInfoImpl.getInstance()) + .add(YangLibrary.class) .build(); context = snapshot.getEffectiveModelContext(); - final BindingCodecTree codecTree = codecFactory.create(new DefaultBindingRuntimeContext( + codecTree = codecFactory.create(new DefaultBindingRuntimeContext( generator.generateTypeMapping(context), snapshot)); - this.identityCodec = codecTree.getIdentityCodec(); - this.codec = verifyNotNull(codecTree.getSubtreeCodec(InstanceIdentifier.create(YangLibrary.class))); - this.legacyCodec = verifyNotNull(codecTree.getSubtreeCodec(InstanceIdentifier.create(ModulesState.class))); + identityCodec = codecTree.getIdentityCodec(); + codec = verifyNotNull(codecTree.getSubtreeCodec(InstanceIdentifier.create(YangLibrary.class))); + legacyCodec = verifyNotNull(codecTree.getSubtreeCodec(InstanceIdentifier.create(ModulesState.class))); } @Override @@ -64,4 +76,14 @@ public final class YangLibrarySupport implements YangLibSupport { final SchemaContextResolver resolver) { return new MountPointContextFactoryImpl(mountId, resolver, context, identityCodec, codec, legacyCodec); } + + @Override + public Revision implementedRevision() { + return REVISION; + } + + @Override + public YangLibraryContentBuilder newContentBuilder() { + return new YangLibraryContentBuilderImpl(codecTree); + } }