+
+ public String getServiceType() {
+ return serviceType;
+ }
+
+ public PceResult getReturnStructure() {
+ return returnStructure;
+ }
+
+ private static void printNodesInfo(Map<NodeId, PceNode> allPceNodes) {
+ allPceNodes.forEach(((nodeId, pceNode) -> {
+ LOG.info("In printNodes in node {} : outgoing links {} ", pceNode.getNodeId().getValue(),
+ pceNode.getOutgoingLinks());
+ }));
+ }
+
+ /**
+ * Get mc capability slot width granularity for device.
+ * @param deviceNodeId String
+ * @param nodeId NodeId
+ * @return slot width granularity
+ */
+ private BigDecimal getSlotWidthGranularity(String deviceNodeId, NodeId nodeId) {
+ // nodeId: openroadm-topology level node
+ // deviceNodeId: openroadm-network level node
+ List<McCapabilities> mcCapabilities = mappingUtils.getMcCapabilitiesForNode(deviceNodeId);
+ String[] params = nodeId.getValue().split("-");
+ // DEGx or SRGx or XPDRx
+ String moduleName = params[params.length - 1];
+ for (McCapabilities mcCapabitility : mcCapabilities) {
+ if (mcCapabitility.getMcNodeName().contains("XPDR")
+ && mcCapabitility.getSlotWidthGranularity() != null) {
+ return mcCapabitility.getSlotWidthGranularity().getValue();
+ }
+ if (mcCapabitility.getMcNodeName().contains(moduleName)
+ && mcCapabitility.getSlotWidthGranularity() != null) {
+ return mcCapabitility.getSlotWidthGranularity().getValue();
+ }
+ }
+ return GridConstant.SLOT_WIDTH_50;
+ }
+
+ /**
+ * Get mc capability central-width granularity for device.
+ * @param deviceNodeId String
+ * @param nodeId NodeId
+ * @return center-freq granularity
+ */
+ private BigDecimal getCentralFreqGranularity(String deviceNodeId, NodeId nodeId) {
+ // nodeId: openroadm-topology level node
+ // deviceNodeId: openroadm-network level node
+ List<McCapabilities> mcCapabilities = mappingUtils.getMcCapabilitiesForNode(deviceNodeId);
+ String[] params = nodeId.getValue().split("-");
+ // DEGx or SRGx or XPDRx
+ String moduleName = params[params.length - 1];
+ for (McCapabilities mcCapabitility : mcCapabilities) {
+ if (mcCapabitility.getMcNodeName().contains("XPDR")
+ && mcCapabitility.getCenterFreqGranularity() != null) {
+ return mcCapabitility.getCenterFreqGranularity().getValue();
+ }
+ if (mcCapabitility.getMcNodeName().contains(moduleName)
+ && mcCapabitility.getCenterFreqGranularity() != null) {
+ return mcCapabitility.getCenterFreqGranularity().getValue();
+ }
+ }
+ return GridConstant.SLOT_WIDTH_50;
+ }