/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2022-2023 Nordix Foundation
+ * Copyright (C) 2022-2024 Nordix Foundation
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.onap.cps.ncmp.api.impl.inventory.CompositeState;
+import org.onap.cps.ncmp.api.impl.inventory.CompositeStateBuilder;
import org.onap.cps.ncmp.api.impl.yangmodels.YangModelCmHandle;
-import org.onap.cps.ncmp.api.inventory.CompositeState;
-import org.onap.cps.ncmp.api.inventory.CompositeStateBuilder;
import org.onap.cps.ncmp.api.models.NcmpServiceCmHandle;
import org.onap.cps.spi.model.DataNode;
final List<YangModelCmHandle.Property> publicProperties = yangModelCmHandle.getPublicProperties();
ncmpServiceCmHandle.setCmHandleId(yangModelCmHandle.getId());
ncmpServiceCmHandle.setCompositeState(yangModelCmHandle.getCompositeState());
+ ncmpServiceCmHandle.setAlternateId(yangModelCmHandle.getAlternateId());
setDmiProperties(dmiProperties, ncmpServiceCmHandle);
setPublicProperties(publicProperties, ncmpServiceCmHandle);
return ncmpServiceCmHandle;
(String) cmHandleDataNode.getLeaves().get("dmi-service-name"),
(String) cmHandleDataNode.getLeaves().get("dmi-data-service-name"),
(String) cmHandleDataNode.getLeaves().get("dmi-model-service-name"),
- ncmpServiceCmHandle
- );
- }
-
- /**
- * This method convert cm handle data node to yang model cm handle without using NcmpServiceCmHandle.
- *
- * @param cmHandleDataNode the datanode of the cm handle
- * @param cmHandleId the id of the cm handle
- * @return yang model cm handle
- */
- public static YangModelCmHandle convertCmHandleToYangModelWithoutNcmpServiceCmHandle(
- final DataNode cmHandleDataNode,
- final String cmHandleId) {
- final Map<String, String> dmiProperties = new LinkedHashMap<>();
- final Map<String, String> publicProperties = new LinkedHashMap<>();
- final CompositeStateBuilder compositeStateBuilder = new CompositeStateBuilder();
- CompositeState compositeState = compositeStateBuilder.build();
- for (final DataNode childDataNode : cmHandleDataNode.getChildDataNodes()) {
- if (childDataNode.getXpath().contains("/additional-properties[@name=")) {
- addProperty(childDataNode, dmiProperties);
- } else if (childDataNode.getXpath().contains("/public-properties[@name=")) {
- addProperty(childDataNode, publicProperties);
- } else if (childDataNode.getXpath().endsWith("/state")) {
- compositeState = compositeStateBuilder.fromDataNode(childDataNode).build();
- }
- }
- return YangModelCmHandle.toYangModelCmHandleWithoutNcmpServiceHandle(
- (String) cmHandleDataNode.getLeaves().get("dmi-service-name"),
- (String) cmHandleDataNode.getLeaves().get("dmi-data-service-name"),
- (String) cmHandleDataNode.getLeaves().get("dmi-model-service-name"),
- cmHandleId,
- dmiProperties,
- publicProperties,
- compositeState
+ ncmpServiceCmHandle,
+ (String) cmHandleDataNode.getLeaves().get("module-set-tag"),
+ (String) cmHandleDataNode.getLeaves().get("alternate-id")
);
}
final Collection<YangModelCmHandle> yangModelCmHandles = new ArrayList<>(cmHandleDataNodes.size());
cmHandleDataNodes.forEach(dataNode -> {
final String cmHandleId = extractCmHandleIdFromXpath(dataNode.getXpath());
- if (cmHandleId != null) {
- yangModelCmHandles.add(convertCmHandleToYangModelWithoutNcmpServiceCmHandle(dataNode, cmHandleId));
- }
+ yangModelCmHandles.add(convertCmHandleToYangModel(dataNode, cmHandleId));
});
return yangModelCmHandles;
}
- private static String extractCmHandleIdFromXpath(final String xpath) {
+ /**
+ * This method extract cm handle id from xpath of data node.
+ * @param xpath for data node of the cm handle
+ * @return cm handle Id
+ */
+ public static String extractCmHandleIdFromXpath(final String xpath) {
final Matcher matcher = cmHandleIdInXpathPattern.matcher(xpath);
- if (matcher.find()) {
- return matcher.group(1);
- } else {
- log.error("Unexpected xpath {}", xpath);
- }
- return null;
+ matcher.find();
+ return matcher.group(1);
}