X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=restconf%2Fsal-rest-docgen%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fnetconf%2Fsal%2Frest%2Fdoc%2Futil%2FRestDocgenUtil.java;h=ee96a376db8f750a6e930d3c57bd843aba4328ee;hb=ce8ad4e92f8128750f7ce7216f7e73ad238efaae;hp=f709d036524b6183d06eb6134a6dec89675ce73d;hpb=7e5575aae5a54ab676a601ee68b5bfc4b83f72b6;p=netconf.git diff --git a/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/util/RestDocgenUtil.java b/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/util/RestDocgenUtil.java index f709d03652..ee96a376db 100644 --- a/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/util/RestDocgenUtil.java +++ b/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/util/RestDocgenUtil.java @@ -8,21 +8,22 @@ package org.opendaylight.netconf.sal.rest.doc.util; import java.net.URI; -import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.Map; +import java.util.Optional; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaNode; -public class RestDocgenUtil { +public final class RestDocgenUtil { private RestDocgenUtil() { } - private static final Map> NAMESPACE_AND_REVISION_TO_MODULE = new HashMap<>(); + private static final Map, Module>> NAMESPACE_AND_REVISION_TO_MODULE = new HashMap<>(); /** * Resolve path argument name for {@code node}. @@ -52,18 +53,12 @@ public class RestDocgenUtil { private static synchronized String resolveFullNameFromNode(final SchemaNode node, final SchemaContext schemaContext) { final URI namespace = node.getQName().getNamespace(); - final Date revision = node.getQName().getRevision(); + final Optional revision = node.getQName().getRevision(); - Map revisionToModule = NAMESPACE_AND_REVISION_TO_MODULE.get(namespace); - if (revisionToModule == null) { - revisionToModule = new HashMap<>(); - NAMESPACE_AND_REVISION_TO_MODULE.put(namespace, revisionToModule); - } - Module module = revisionToModule.get(revision); - if (module == null) { - module = schemaContext.findModuleByNamespaceAndRevision(namespace, revision); - revisionToModule.put(revision, module); - } + Map, Module> revisionToModule = + NAMESPACE_AND_REVISION_TO_MODULE.computeIfAbsent(namespace, k -> new HashMap<>()); + Module module = + revisionToModule.computeIfAbsent(revision, k -> schemaContext.findModule(namespace, k).orElse(null)); if (module != null) { return module.getName() + ":" + node.getQName().getLocalName(); } @@ -82,10 +77,7 @@ public class RestDocgenUtil { private static boolean isEqualNamespaceAndRevision(final QName parentQName, final QName nodeQName) { if (parentQName == null) { - if (nodeQName == null) { - return true; - } - return false; + return nodeQName == null; } return parentQName.getNamespace().equals(nodeQName.getNamespace()) && parentQName.getRevision().equals(nodeQName.getRevision());