From 3f6822506d5d3a9ab9117a38332a99cf4cb581c2 Mon Sep 17 00:00:00 2001 From: Mandy Chessell Date: Mon, 21 Oct 2024 11:27:51 +0100 Subject: [PATCH] Fixes to Asset Lineage Graph Signed-off-by: Mandy Chessell --- .../server/AssetConsumerRESTServices.java | 53 ++++++------------- 1 file changed, 15 insertions(+), 38 deletions(-) diff --git a/open-metadata-implementation/access-services/asset-consumer/asset-consumer-server/src/main/java/org/odpi/openmetadata/accessservices/assetconsumer/server/AssetConsumerRESTServices.java b/open-metadata-implementation/access-services/asset-consumer/asset-consumer-server/src/main/java/org/odpi/openmetadata/accessservices/assetconsumer/server/AssetConsumerRESTServices.java index d0a21423eca..8d6a4c916e2 100644 --- a/open-metadata-implementation/access-services/asset-consumer/asset-consumer-server/src/main/java/org/odpi/openmetadata/accessservices/assetconsumer/server/AssetConsumerRESTServices.java +++ b/open-metadata-implementation/access-services/asset-consumer/asset-consumer-server/src/main/java/org/odpi/openmetadata/accessservices/assetconsumer/server/AssetConsumerRESTServices.java @@ -409,16 +409,16 @@ private String getAssetMermaidGraph(AssetGraph assetGraph) * Create a node in the mermaid graph. * * @param mermaidGraph current state of the graph - * @param currentQualifiedName unique name + * @param currentNodeName unique name/identifier * @param currentDisplayName display name * @param currentType type of element */ private void appendMermaidNode(StringBuilder mermaidGraph, - String currentQualifiedName, + String currentNodeName, String currentDisplayName, String currentType) { - mermaidGraph.append(this.removeSpaces(currentQualifiedName)); + mermaidGraph.append(this.removeSpaces(currentNodeName)); mermaidGraph.append("(\"`*"); mermaidGraph.append(currentType); mermaidGraph.append("*\n**"); @@ -457,21 +457,17 @@ private String getAssetLineageMermaidGraph(AssetLineageGraph assetLineageGraph) mermaidGraph.append(assetLineageGraph.getElementHeader().getGUID()); mermaidGraph.append("]\n---\nflowchart TB\n%%{init: {\"flowchart\": {\"htmlLabels\": false}} }%%\n\n"); - List usedQualifiedNames = new ArrayList<>(); + List usedNodeNames = new ArrayList<>(); - String currentQualifiedName = assetLineageGraph.getProperties().getQualifiedName(); - String currentDisplayName = assetLineageGraph.getProperties().getDisplayName(); + String currentNodeName = assetLineageGraph.getElementHeader().getGUID(); + String currentDisplayName = assetLineageGraph.getProperties().getDisplayName(); appendMermaidNode(mermaidGraph, - currentQualifiedName, + currentNodeName, currentDisplayName, assetLineageGraph.getElementHeader().getType().getTypeName()); - usedQualifiedNames.add(currentQualifiedName); - - Map guidMap = new HashMap<>(); - - guidMap.put(assetLineageGraph.getElementHeader().getGUID(), this.removeSpaces(currentQualifiedName)); + usedNodeNames.add(currentNodeName); if (assetLineageGraph.getLinkedAssets() != null) { @@ -479,9 +475,7 @@ private String getAssetLineageMermaidGraph(AssetLineageGraph assetLineageGraph) { if (node != null) { - guidMap.put(node.getElementHeader().getGUID(), this.removeSpaces(node.getProperties().getQualifiedName())); - - currentQualifiedName = node.getProperties().getQualifiedName(); + currentNodeName = node.getElementHeader().getGUID(); currentDisplayName = node.getProperties().getDisplayName(); if (currentDisplayName == null) { @@ -496,14 +490,14 @@ private String getAssetLineageMermaidGraph(AssetLineageGraph assetLineageGraph) currentDisplayName = node.getProperties().getQualifiedName(); } - if (!usedQualifiedNames.contains(currentQualifiedName)) + if (!usedNodeNames.contains(currentNodeName)) { appendMermaidNode(mermaidGraph, - currentQualifiedName, + currentNodeName, currentDisplayName, node.getElementHeader().getType().getTypeName()); - usedQualifiedNames.add(currentQualifiedName); + usedNodeNames.add(currentNodeName); } } } @@ -512,28 +506,11 @@ private String getAssetLineageMermaidGraph(AssetLineageGraph assetLineageGraph) { if (line != null) { - String endQualifiedName = guidMap.get(line.getEnd1AssetGUID()); - - if (endQualifiedName == null) - { - mermaidGraph.append(line.getEnd1AssetGUID()); - } - else - { - mermaidGraph.append(endQualifiedName); - } + mermaidGraph.append(line.getEnd1AssetGUID()); mermaidGraph.append("-->|"); mermaidGraph.append(this.getListLabel(line.getRelationshipTypes())); mermaidGraph.append("|"); - endQualifiedName = guidMap.get(line.getEnd2AssetGUID()); - if (endQualifiedName == null) - { - mermaidGraph.append(line.getEnd2AssetGUID()); - } - else - { - mermaidGraph.append(endQualifiedName); - } + mermaidGraph.append(line.getEnd2AssetGUID()); mermaidGraph.append("\n"); } } @@ -633,7 +610,7 @@ public AssetLineageGraphResponse getAssetLineageGraph(String serverName, if (linkedAssets.size() > 1) { - assetLineageGraph.setLinkedAssets(new ArrayList<>(linkedAssets.subList(1, linkedAssets.size()-1))); + assetLineageGraph.setLinkedAssets(new ArrayList<>(linkedAssets.subList(1, linkedAssets.size()))); } assetLineageGraph.setLineageRelationships(this.deDupLineageRelationships(lineageRelationships));