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%2FYangLibraryContentBuilderImpl.java;h=2f21db2fa182f03b92c1985f65c0f8f794bffc8c;hb=578068bf0c41c9902638695d3b48ccc0e06d4c9c;hp=c15a1e62541d37bc98cb42193e213b25148ebfcb;hpb=9771d77935524f7bfb54bcf5169cf600a3b3c71b;p=mdsal.git diff --git a/yanglib/mdsal-yanglib-rfc8525/src/main/java/org/opendaylight/mdsal/yanglib/rfc8525/YangLibraryContentBuilderImpl.java b/yanglib/mdsal-yanglib-rfc8525/src/main/java/org/opendaylight/mdsal/yanglib/rfc8525/YangLibraryContentBuilderImpl.java index c15a1e6254..2f21db2fa1 100644 --- a/yanglib/mdsal-yanglib-rfc8525/src/main/java/org/opendaylight/mdsal/yanglib/rfc8525/YangLibraryContentBuilderImpl.java +++ b/yanglib/mdsal-yanglib-rfc8525/src/main/java/org/opendaylight/mdsal/yanglib/rfc8525/YangLibraryContentBuilderImpl.java @@ -8,13 +8,11 @@ package org.opendaylight.mdsal.yanglib.rfc8525; import static com.google.common.base.Preconditions.checkState; -import static com.google.common.base.Verify.verifyNotNull; import java.util.HashMap; import java.util.Map; import java.util.Objects; import java.util.Optional; -import java.util.function.Function; import java.util.stream.Collectors; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.binding.dom.codec.api.BindingCodecTree; @@ -27,19 +25,19 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.librar import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.YangLibraryBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.set.parameters.Module; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.set.parameters.ModuleBuilder; -import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.set.parameters.module.Submodule; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.module.set.parameters.module.SubmoduleBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.yang.library.parameters.ModuleSet; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.yang.library.parameters.ModuleSetBuilder; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev190104.yang.library.parameters.ModuleSetKey; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.YangIdentifier; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.binding.util.BindingMap; import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.data.api.DatastoreIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; -class YangLibraryContentBuilderImpl implements YangLibraryContentBuilder { +final class YangLibraryContentBuilderImpl implements YangLibraryContentBuilder { private static final String MODULE_SET_NAME = "ODL_modules"; private final Map datastores = new HashMap<>(); @@ -50,7 +48,7 @@ class YangLibraryContentBuilderImpl implements YangLibraryContentBuilder { YangLibraryContentBuilderImpl(final BindingCodecTree codecTree) { this.codecTree = Objects.requireNonNull(codecTree); - this.codec = verifyNotNull(codecTree.getSubtreeCodec(InstanceIdentifier.create(YangLibrary.class))); + codec = codecTree.getDataObjectCodec(InstanceIdentifier.create(YangLibrary.class)); } @Override @@ -85,10 +83,10 @@ class YangLibraryContentBuilderImpl implements YangLibraryContentBuilder { // Two-step process: we first build the content and then use hashCode() to generate module-set-id final YangLibraryBuilder builder = new YangLibraryBuilder().setContentId(""); final ModuleSetBuilder moduleSetBuilder = new ModuleSetBuilder() - .setModule(modelContext.getModules().stream() - .map(this::buildModule) - .collect(Collectors.toUnmodifiableMap(Module::key, Function.identity()))) - .setName(MODULE_SET_NAME); + .setModule(modelContext.getModules().stream() + .map(YangLibraryContentBuilderImpl::buildModule) + .collect(BindingMap.toMap())) + .setName(MODULE_SET_NAME); final ModuleSet moduleSet = moduleSetBuilder.build(); builder.setModuleSet(Map.of(new ModuleSetKey(moduleSet.getName()), moduleSet)); @@ -96,21 +94,21 @@ class YangLibraryContentBuilderImpl implements YangLibraryContentBuilder { .build()); } - private Module buildModule(final org.opendaylight.yangtools.yang.model.api.Module module) { + private static Module buildModule(final org.opendaylight.yangtools.yang.model.api.Module module) { return new ModuleBuilder() - .setName(new YangIdentifier(module.getName())) - .setNamespace(new Uri(module.getQNameModule().getNamespace().toString())) - .setRevision(convertRevision(module.getRevision())) - .setSubmodule(module.getSubmodules().stream() - .map(submodule -> new SubmoduleBuilder() - .setName(new YangIdentifier(submodule.getName())) - .setRevision(convertRevision(submodule.getRevision())) - .build()) - .collect(Collectors.toUnmodifiableMap(Submodule::key, Function.identity()))) - .setFeature(module.getFeatures().stream() - .map(feat -> new YangIdentifier(feat.getQName().getLocalName())) - .collect(Collectors.toUnmodifiableList())) - .build(); + .setName(new YangIdentifier(module.getName())) + .setNamespace(new Uri(module.getQNameModule().getNamespace().toString())) + .setRevision(convertRevision(module.getRevision())) + .setSubmodule(module.getSubmodules().stream() + .map(submodule -> new SubmoduleBuilder() + .setName(new YangIdentifier(submodule.getName())) + .setRevision(convertRevision(submodule.getRevision())) + .build()) + .collect(BindingMap.toMap())) + .setFeature(module.getFeatures().stream() + .map(feat -> new YangIdentifier(feat.getQName().getLocalName())) + .collect(Collectors.toUnmodifiableSet())) + .build(); } private static RevisionIdentifier convertRevision(final Optional revision) {