*/
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;
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;
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;
final SchemaContext context, final String moduleSetId) {
final DataSchemaNode modulesStateSch =
ietfYangLibraryModule.getDataChildByName(IetfYangLibrary.MODUELS_STATE_CONT_QNAME);
- final DataContainerNodeAttrBuilder<NodeIdentifier, ContainerNode> modulesStateBuilder =
+ final DataContainerNodeBuilder<NodeIdentifier, ContainerNode> modulesStateBuilder =
Builders.containerBuilder((ContainerSchemaNode) modulesStateSch);
final DataSchemaNode moduleSetIdSch =
private static void fillMapByModules(final CollectionNodeBuilder<MapEntryNode, OrderedMapNode> mapBuilder,
final DataSchemaNode moduleSch, final boolean isSubmodule, final Module module,
final Module ietfYangLibraryModule, final SchemaContext context) {
- final DataContainerNodeAttrBuilder<NodeIdentifierWithPredicates, MapEntryNode> mapEntryBuilder =
+ final DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> 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);
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);
}
}
* schema context
*/
private static void addSubmodules(final Module module,
- final DataContainerNodeAttrBuilder<NodeIdentifierWithPredicates, MapEntryNode> mapEntryBuilder,
+ final DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> mapEntryBuilder,
final Module ietfYangLibraryModule, final SchemaContext context) {
final DataSchemaNode listSubm = findSchemaInListOfModulesSchema(
IetfYangLibrary.SPECIFIC_MODULE_SUBMODULE_LIST_QNAME, ietfYangLibraryModule);
* schema context
*/
private static void addDeviationList(final Module module,
- final DataContainerNodeAttrBuilder<NodeIdentifierWithPredicates, MapEntryNode> mapEntryBuilder,
+ final DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> mapEntryBuilder,
final Module ietfYangLibraryModule, final SchemaContext context) {
final DataSchemaNode deviationsSchema = findSchemaInListOfModulesSchema(
IetfYangLibrary.SPECIFIC_MODULE_DEVIATION_LIST_QNAME, ietfYangLibraryModule);
final CollectionNodeBuilder<MapEntryNode, MapNode> deviations =
Builders.mapBuilder((ListSchemaNode) deviationsSchema);
for (final Deviation deviation : module.getDeviations()) {
- final DataContainerNodeAttrBuilder<NodeIdentifierWithPredicates, MapEntryNode> deviationEntryNode =
+ final DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> 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);
* ieat-yang-library module
*/
private static void addFeatureLeafList(final QName qnameOfFeaturesLeafList,
- final DataContainerNodeAttrBuilder<NodeIdentifierWithPredicates, MapEntryNode> mapEntryBuilder,
+ final DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> mapEntryBuilder,
final Set<FeatureDefinition> features, final Module ietfYangLibraryModule) {
final DataSchemaNode schemaNode =
findSchemaInListOfModulesSchema(qnameOfFeaturesLeafList, ietfYangLibraryModule);
* ietf-yang-library module
*/
private static void addCommonLeafs(final Module module,
- final DataContainerNodeAttrBuilder<NodeIdentifierWithPredicates, MapEntryNode> mapEntryBuilder,
+ final DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> 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);
}
/**
* ietf-yang-library module
*/
private static void addChildOfModuleBySpecificModuleOfListChild(final QName specificQName,
- final DataContainerNodeAttrBuilder<NodeIdentifierWithPredicates, MapEntryNode> mapEntryBuilder,
+ final DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> mapEntryBuilder,
final Object value, final Module ietfYangLibraryModule) {
final DataSchemaNode leafSch = findSchemaInListOfModulesSchema(specificQName, ietfYangLibraryModule);
mapEntryBuilder.withChild(Builders.leafBuilder((LeafSchemaNode) leafSch).withValue(value).build());
* ietf-yang-library module
*/
private static void addChildOfModuleBySpecificModuleInternal(final QName specifiLeafQName,
- final DataContainerNodeAttrBuilder<NodeIdentifierWithPredicates, MapEntryNode> mapEntryBuilder,
+ final DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> mapEntryBuilder,
final Object value, final Module ietfYangLibraryModule) {
final DataSchemaNode nameLeaf = findNodeInInternGroupings(specifiLeafQName, ietfYangLibraryModule);
mapEntryBuilder.withChild(Builders.leafBuilder((LeafSchemaNode) nameLeaf).withValue(value).build());
* ietf-yang-library module
*/
private static void addChildOfModuleBySpecificModule(final QName specifiLeafQName,
- final DataContainerNodeAttrBuilder<NodeIdentifierWithPredicates, MapEntryNode> mapEntryBuilder,
+ final DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> mapEntryBuilder,
final Object value, final Module ietfYangLibraryModule) {
final DataSchemaNode nameLeaf = findNodeInGroupings(specifiLeafQName, ietfYangLibraryModule);
mapEntryBuilder.withChild(Builders.leafBuilder((LeafSchemaNode) nameLeaf).withValue(value).build());
mapCapabilites(final Module monitoringModule) {
final DataSchemaNode restconfState =
monitoringModule.getDataChildByName(MonitoringModule.CONT_RESTCONF_STATE_QNAME);
- final DataContainerNodeAttrBuilder<NodeIdentifier, ContainerNode> restStateContBuilder =
+ final DataContainerNodeBuilder<NodeIdentifier, ContainerNode> restStateContBuilder =
Builders.containerBuilder((ContainerSchemaNode) restconfState);
final DataSchemaNode capabilitesContSchema =
getChildOfCont((ContainerSchemaNode) restconfState, MonitoringModule.CONT_CAPABILITES_QNAME);
- final DataContainerNodeAttrBuilder<NodeIdentifier, ContainerNode> capabilitesContBuilder =
+ final DataContainerNodeBuilder<NodeIdentifier, ContainerNode> capabilitesContBuilder =
Builders.containerBuilder((ContainerSchemaNode) capabilitesContSchema);
final DataSchemaNode leafListCapa = getChildOfCont((ContainerSchemaNode) capabilitesContSchema,
MonitoringModule.LEAF_LIST_CAPABILITY_QNAME);
.getDataChildByName(MonitoringModule.CONT_RESTCONF_STATE_QNAME))
.getDataChildByName(MonitoringModule.CONT_STREAMS_QNAME))
.getDataChildByName(MonitoringModule.LIST_STREAM_QNAME);
- final DataContainerNodeAttrBuilder<NodeIdentifierWithPredicates, MapEntryNode> streamEntry =
+ final DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> 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<String> 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);
}
private static void prepareListAndFillEntryBuilder(
- final DataContainerNodeAttrBuilder<NodeIdentifierWithPredicates, MapEntryNode> streamEntry,
+ final DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> streamEntry,
final ListSchemaNode listSchemaNode, final String outputType, final URI uriToWebsocketServer) {
final CollectionNodeBuilder<MapEntryNode, MapNode> accessListBuilder = Builders.mapBuilder(listSchemaNode);
- final DataContainerNodeAttrBuilder<NodeIdentifierWithPredicates, MapEntryNode> entryAccessList =
+ final DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> entryAccessList =
Builders.mapEntryBuilder(listSchemaNode);
prepareLeafAndFillEntryBuilder(entryAccessList,
listSchemaNode.getDataChildByName(MonitoringModule.LEAF_ENCODING_ACCESS_QNAME), outputType);
* @param value Value
*/
private static void prepareLeafAndFillEntryBuilder(
- final DataContainerNodeAttrBuilder<NodeIdentifierWithPredicates, MapEntryNode> streamEntry,
+ final DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> streamEntry,
final DataSchemaNode leafSchema, final Object value) {
streamEntry.withChild(Builders.leafBuilder((LeafSchemaNode) leafSchema).withValue(value).build());
}
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<NodeIdentifierWithPredicates, MapEntryNode> streamEntry =
+ final DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> 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<String> 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);