X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=restconf%2Frestconf-nb-rfc8040%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Frestconf%2Fnb%2Frfc8040%2Futils%2Fmapping%2FRestconfMappingNodeUtil.java;h=68e03c4121e89c19d55731ac4224991abebead48;hb=982e75ece2483e413befe3edd8fd90022a644f72;hp=4f645edf9a842467852259dbbacca93946f79905;hpb=824baf9fe14e31465c58f3842c4cb0aa88b34757;p=netconf.git diff --git a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/utils/mapping/RestconfMappingNodeUtil.java b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/utils/mapping/RestconfMappingNodeUtil.java index 4f645edf9a..68e03c4121 100644 --- a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/utils/mapping/RestconfMappingNodeUtil.java +++ b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/utils/mapping/RestconfMappingNodeUtil.java @@ -7,13 +7,13 @@ */ package org.opendaylight.restconf.nb.rfc8040.utils.mapping; -import com.google.common.base.Optional; import java.net.URI; import java.time.Instant; import java.time.OffsetDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.Collection; +import java.util.Optional; import java.util.Set; import org.opendaylight.restconf.common.errors.RestconfDocumentedException; import org.opendaylight.restconf.nb.rfc8040.Rfc8040.IetfYangLibrary; @@ -22,6 +22,7 @@ import org.opendaylight.restconf.nb.rfc8040.Rfc8040.MonitoringModule.QueryParams import org.opendaylight.restconf.nb.rfc8040.utils.parser.ParserIdentifier; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.library.rev160621.module.list.Module.ConformanceType; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; @@ -35,7 +36,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.api.schema.OrderedMapNode; import org.opendaylight.yangtools.yang.data.impl.schema.Builders; import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.CollectionNodeBuilder; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeAttrBuilder; +import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeBuilder; import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.ListNodeBuilder; import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; @@ -78,7 +79,7 @@ public final class RestconfMappingNodeUtil { final SchemaContext context, final String moduleSetId) { final DataSchemaNode modulesStateSch = ietfYangLibraryModule.getDataChildByName(IetfYangLibrary.MODUELS_STATE_CONT_QNAME); - final DataContainerNodeAttrBuilder modulesStateBuilder = + final DataContainerNodeBuilder modulesStateBuilder = Builders.containerBuilder((ContainerSchemaNode) modulesStateSch); final DataSchemaNode moduleSetIdSch = @@ -114,24 +115,25 @@ public final class RestconfMappingNodeUtil { private static void fillMapByModules(final CollectionNodeBuilder mapBuilder, final DataSchemaNode moduleSch, final boolean isSubmodule, final Module module, final Module ietfYangLibraryModule, final SchemaContext context) { - final DataContainerNodeAttrBuilder mapEntryBuilder = + final DataContainerNodeBuilder mapEntryBuilder = Builders.mapEntryBuilder((ListSchemaNode) moduleSch); addCommonLeafs(module, mapEntryBuilder, ietfYangLibraryModule); addChildOfModuleBySpecificModuleInternal( IetfYangLibrary.SPECIFIC_MODULE_SCHEMA_LEAF_QNAME, mapEntryBuilder, IetfYangLibrary.BASE_URI_OF_SCHEMA - + module.getName() + "/" + module.getQNameModule().getFormattedRevision(), + + module.getName() + "/" + + module.getQNameModule().getRevision().map(Revision::toString).orElse(null), ietfYangLibraryModule); if (!isSubmodule) { addChildOfModuleBySpecificModuleOfListChild(IetfYangLibrary.SPECIFIC_MODULE_NAMESPACE_LEAF_QNAME, mapEntryBuilder, module.getNamespace().toString(), ietfYangLibraryModule); // features - not mandatory - if ((module.getFeatures() != null) && !module.getFeatures().isEmpty()) { + if (module.getFeatures() != null && !module.getFeatures().isEmpty()) { addFeatureLeafList(IetfYangLibrary.SPECIFIC_MODULE_FEATURE_LEAF_LIST_QNAME, mapEntryBuilder, module.getFeatures(), ietfYangLibraryModule); } // deviations - not mandatory - if ((module.getDeviations() != null) && !module.getDeviations().isEmpty()) { + if (module.getDeviations() != null && !module.getDeviations().isEmpty()) { addDeviationList(module, mapEntryBuilder, ietfYangLibraryModule, context); addChildOfModuleBySpecificModuleOfListChild(IetfYangLibrary.SPECIFIC_MODULE_CONFORMANCE_LEAF_QNAME, mapEntryBuilder, ConformanceType.Implement.getName(), ietfYangLibraryModule); @@ -140,7 +142,7 @@ public final class RestconfMappingNodeUtil { mapEntryBuilder, ConformanceType.Import.getName(), ietfYangLibraryModule); } // submodules - not mandatory - if ((module.getSubmodules() != null) && !module.getSubmodules().isEmpty()) { + if (module.getSubmodules() != null && !module.getSubmodules().isEmpty()) { addSubmodules(module, mapEntryBuilder, ietfYangLibraryModule, context); } } @@ -160,7 +162,7 @@ public final class RestconfMappingNodeUtil { * schema context */ private static void addSubmodules(final Module module, - final DataContainerNodeAttrBuilder mapEntryBuilder, + final DataContainerNodeBuilder mapEntryBuilder, final Module ietfYangLibraryModule, final SchemaContext context) { final DataSchemaNode listSubm = findSchemaInListOfModulesSchema( IetfYangLibrary.SPECIFIC_MODULE_SUBMODULE_LIST_QNAME, ietfYangLibraryModule); @@ -185,19 +187,18 @@ public final class RestconfMappingNodeUtil { * schema context */ private static void addDeviationList(final Module module, - final DataContainerNodeAttrBuilder mapEntryBuilder, + final DataContainerNodeBuilder mapEntryBuilder, final Module ietfYangLibraryModule, final SchemaContext context) { final DataSchemaNode deviationsSchema = findSchemaInListOfModulesSchema( IetfYangLibrary.SPECIFIC_MODULE_DEVIATION_LIST_QNAME, ietfYangLibraryModule); final CollectionNodeBuilder deviations = Builders.mapBuilder((ListSchemaNode) deviationsSchema); for (final Deviation deviation : module.getDeviations()) { - final DataContainerNodeAttrBuilder deviationEntryNode = + final DataContainerNodeBuilder deviationEntryNode = Builders.mapEntryBuilder((ListSchemaNode) deviationsSchema); final QName lastComponent = deviation.getTargetPath().getLastComponent(); addChildOfModuleBySpecificModule(IetfYangLibrary.SPECIFIC_MODULE_NAME_LEAF_QNAME, deviationEntryNode, - context.findModuleByNamespaceAndRevision(lastComponent.getNamespace(), lastComponent.getRevision()) - .getName(), + context.findModule(lastComponent.getModule()).get().getName(), ietfYangLibraryModule); addChildOfModuleBySpecificModule(IetfYangLibrary.SPECIFIC_MODULE_REVISION_LEAF_QNAME, deviationEntryNode, lastComponent.getRevision(), ietfYangLibraryModule); @@ -219,7 +220,7 @@ public final class RestconfMappingNodeUtil { * ieat-yang-library module */ private static void addFeatureLeafList(final QName qnameOfFeaturesLeafList, - final DataContainerNodeAttrBuilder mapEntryBuilder, + final DataContainerNodeBuilder mapEntryBuilder, final Set features, final Module ietfYangLibraryModule) { final DataSchemaNode schemaNode = findSchemaInListOfModulesSchema(qnameOfFeaturesLeafList, ietfYangLibraryModule); @@ -244,12 +245,12 @@ public final class RestconfMappingNodeUtil { * ietf-yang-library module */ private static void addCommonLeafs(final Module module, - final DataContainerNodeAttrBuilder mapEntryBuilder, + final DataContainerNodeBuilder mapEntryBuilder, final Module ietfYangLibraryModule) { addChildOfModuleBySpecificModuleInternal(IetfYangLibrary.SPECIFIC_MODULE_NAME_LEAF_QNAME, mapEntryBuilder, module.getName(), ietfYangLibraryModule); addChildOfModuleBySpecificModuleInternal(IetfYangLibrary.SPECIFIC_MODULE_REVISION_LEAF_QNAME, mapEntryBuilder, - module.getQNameModule().getFormattedRevision(), ietfYangLibraryModule); + module.getQNameModule().getRevision().map(Revision::toString).orElse(""), ietfYangLibraryModule); } /** @@ -265,7 +266,7 @@ public final class RestconfMappingNodeUtil { * ietf-yang-library module */ private static void addChildOfModuleBySpecificModuleOfListChild(final QName specificQName, - final DataContainerNodeAttrBuilder mapEntryBuilder, + final DataContainerNodeBuilder mapEntryBuilder, final Object value, final Module ietfYangLibraryModule) { final DataSchemaNode leafSch = findSchemaInListOfModulesSchema(specificQName, ietfYangLibraryModule); mapEntryBuilder.withChild(Builders.leafBuilder((LeafSchemaNode) leafSch).withValue(value).build()); @@ -305,7 +306,7 @@ public final class RestconfMappingNodeUtil { * ietf-yang-library module */ private static void addChildOfModuleBySpecificModuleInternal(final QName specifiLeafQName, - final DataContainerNodeAttrBuilder mapEntryBuilder, + final DataContainerNodeBuilder mapEntryBuilder, final Object value, final Module ietfYangLibraryModule) { final DataSchemaNode nameLeaf = findNodeInInternGroupings(specifiLeafQName, ietfYangLibraryModule); mapEntryBuilder.withChild(Builders.leafBuilder((LeafSchemaNode) nameLeaf).withValue(value).build()); @@ -348,7 +349,7 @@ public final class RestconfMappingNodeUtil { * ietf-yang-library module */ private static void addChildOfModuleBySpecificModule(final QName specifiLeafQName, - final DataContainerNodeAttrBuilder mapEntryBuilder, + final DataContainerNodeBuilder mapEntryBuilder, final Object value, final Module ietfYangLibraryModule) { final DataSchemaNode nameLeaf = findNodeInGroupings(specifiLeafQName, ietfYangLibraryModule); mapEntryBuilder.withChild(Builders.leafBuilder((LeafSchemaNode) nameLeaf).withValue(value).build()); @@ -383,11 +384,11 @@ public final class RestconfMappingNodeUtil { mapCapabilites(final Module monitoringModule) { final DataSchemaNode restconfState = monitoringModule.getDataChildByName(MonitoringModule.CONT_RESTCONF_STATE_QNAME); - final DataContainerNodeAttrBuilder restStateContBuilder = + final DataContainerNodeBuilder restStateContBuilder = Builders.containerBuilder((ContainerSchemaNode) restconfState); final DataSchemaNode capabilitesContSchema = getChildOfCont((ContainerSchemaNode) restconfState, MonitoringModule.CONT_CAPABILITES_QNAME); - final DataContainerNodeAttrBuilder capabilitesContBuilder = + final DataContainerNodeBuilder capabilitesContBuilder = Builders.containerBuilder((ContainerSchemaNode) capabilitesContSchema); final DataSchemaNode leafListCapa = getChildOfCont((ContainerSchemaNode) capabilitesContSchema, MonitoringModule.LEAF_LIST_CAPABILITY_QNAME); @@ -483,18 +484,18 @@ public final class RestconfMappingNodeUtil { .getDataChildByName(MonitoringModule.CONT_RESTCONF_STATE_QNAME)) .getDataChildByName(MonitoringModule.CONT_STREAMS_QNAME)) .getDataChildByName(MonitoringModule.LIST_STREAM_QNAME); - final DataContainerNodeAttrBuilder streamEntry = + final DataContainerNodeBuilder streamEntry = Builders.mapEntryBuilder((ListSchemaNode) streamListSchema); - final ListSchemaNode listSchema = ((ListSchemaNode) streamListSchema); + final ListSchemaNode listSchema = (ListSchemaNode) streamListSchema; prepareLeafAndFillEntryBuilder(streamEntry, listSchema.getDataChildByName(MonitoringModule.LEAF_NAME_STREAM_QNAME), notificationDefinition.getQName().getLocalName()); - if ((notificationDefinition.getDescription() != null) - && !notificationDefinition.getDescription().equals("")) { + + final java.util.Optional optDesc = notificationDefinition.getDescription(); + if (optDesc.isPresent()) { prepareLeafAndFillEntryBuilder(streamEntry, - listSchema.getDataChildByName(MonitoringModule.LEAF_DESCR_STREAM_QNAME), - notificationDefinition.getDescription()); + listSchema.getDataChildByName(MonitoringModule.LEAF_DESCR_STREAM_QNAME), optDesc.get()); } prepareLeafAndFillEntryBuilder(streamEntry, listSchema.getDataChildByName(MonitoringModule.LEAF_REPLAY_SUPP_STREAM_QNAME), true); @@ -524,10 +525,10 @@ public final class RestconfMappingNodeUtil { } private static void prepareListAndFillEntryBuilder( - final DataContainerNodeAttrBuilder streamEntry, + final DataContainerNodeBuilder streamEntry, final ListSchemaNode listSchemaNode, final String outputType, final URI uriToWebsocketServer) { final CollectionNodeBuilder accessListBuilder = Builders.mapBuilder(listSchemaNode); - final DataContainerNodeAttrBuilder entryAccessList = + final DataContainerNodeBuilder entryAccessList = Builders.mapEntryBuilder(listSchemaNode); prepareLeafAndFillEntryBuilder(entryAccessList, listSchemaNode.getDataChildByName(MonitoringModule.LEAF_ENCODING_ACCESS_QNAME), outputType); @@ -545,7 +546,7 @@ public final class RestconfMappingNodeUtil { * @param value Value */ private static void prepareLeafAndFillEntryBuilder( - final DataContainerNodeAttrBuilder streamEntry, + final DataContainerNodeBuilder streamEntry, final DataSchemaNode leafSchema, final Object value) { streamEntry.withChild(Builders.leafBuilder((LeafSchemaNode) leafSchema).withValue(value).build()); } @@ -580,23 +581,24 @@ public final class RestconfMappingNodeUtil { final Module monitoringModule, final boolean existParent, final SchemaContext schemaContext) { final SchemaNode schemaNode = ParserIdentifier .toInstanceIdentifier(ParserIdentifier.stringFromYangInstanceIdentifier(path, schemaContext), - schemaContext, Optional.absent()) + schemaContext, Optional.empty()) .getSchemaNode(); final DataSchemaNode streamListSchema = ((ContainerSchemaNode) ((ContainerSchemaNode) monitoringModule .getDataChildByName(MonitoringModule.CONT_RESTCONF_STATE_QNAME)) .getDataChildByName(MonitoringModule.CONT_STREAMS_QNAME)) .getDataChildByName(MonitoringModule.LIST_STREAM_QNAME); - final DataContainerNodeAttrBuilder streamEntry = + final DataContainerNodeBuilder streamEntry = Builders.mapEntryBuilder((ListSchemaNode) streamListSchema); - final ListSchemaNode listSchema = ((ListSchemaNode) streamListSchema); + final ListSchemaNode listSchema = (ListSchemaNode) streamListSchema; prepareLeafAndFillEntryBuilder(streamEntry, listSchema.getDataChildByName(MonitoringModule.LEAF_NAME_STREAM_QNAME), schemaNode.getQName().getLocalName()); - if ((schemaNode.getDescription() != null) && !schemaNode.getDescription().equals("")) { + + final java.util.Optional optDesc = schemaNode.getDescription(); + if (optDesc.isPresent()) { prepareLeafAndFillEntryBuilder(streamEntry, - listSchema.getDataChildByName(MonitoringModule.LEAF_DESCR_STREAM_QNAME), - schemaNode.getDescription()); + listSchema.getDataChildByName(MonitoringModule.LEAF_DESCR_STREAM_QNAME), optDesc.get()); } prepareLeafAndFillEntryBuilder(streamEntry, listSchema.getDataChildByName(MonitoringModule.LEAF_REPLAY_SUPP_STREAM_QNAME), true);