Reduce use of getDataChildByName()
[netconf.git] / restconf / sal-rest-docgen / src / main / java / org / opendaylight / netconf / sal / rest / doc / impl / BaseYangSwaggerGenerator.java
index b9f5290eff16f9be2ace3841f469cb13d52bf3d3..82ee192ce0f40d7e79c3dc9c302a783891b5b1e2 100644 (file)
@@ -68,7 +68,7 @@ public abstract class BaseYangSwaggerGenerator {
     private final ObjectMapper mapper = new ObjectMapper();
     private final DOMSchemaService schemaService;
 
-    protected BaseYangSwaggerGenerator(Optional<DOMSchemaService> schemaService) {
+    protected BaseYangSwaggerGenerator(final Optional<DOMSchemaService> schemaService) {
         this.schemaService = schemaService.orElse(null);
         this.mapper.configure(SerializationFeature.INDENT_OUTPUT, true);
     }
@@ -238,7 +238,7 @@ public abstract class BaseYangSwaggerGenerator {
                 models = this.jsonConverter.convertToJsonSchema(module, schemaContext);
                 doc.setModels(models);
                 if (LOG.isDebugEnabled()) {
-                    LOG.debug(this.mapper.writeValueAsString(doc));
+                    LOG.debug("Document: {}", this.mapper.writeValueAsString(doc));
                 }
             } catch (IOException e) {
                 LOG.error("Exception occured in ModelGenerator", e);
@@ -362,14 +362,16 @@ public abstract class BaseYangSwaggerGenerator {
             final List<QName> listKeys = ((ListSchemaNode) schemaNode).getKeyDefinition();
             for (final QName listKey : listKeys) {
                 final ListPathBuilder keyBuilder = newListPathBuilder();
-                final DataSchemaNode dataChildByName = ((DataNodeContainer) schemaNode).getDataChildByName(listKey);
                 final String pathParamIdentifier = keyBuilder.nextParamIdentifier(listKey.getLocalName());
 
                 path.append(pathParamIdentifier);
 
                 final Parameter pathParam = new Parameter();
                 pathParam.setName(listKey.getLocalName());
-                pathParam.setDescription(dataChildByName.getDescription().orElse(null));
+
+                ((DataNodeContainer) schemaNode).findDataChildByName(listKey).flatMap(DataSchemaNode::getDescription)
+                    .ifPresent(pathParam::setDescription);
+
                 pathParam.setType("string");
                 pathParam.setParamType("path");