From 7adc4847e86a796ae535f348826c5065989f896b Mon Sep 17 00:00:00 2001 From: Carlos Galindo Date: Mon, 12 Jul 2021 19:32:43 +0200 Subject: [PATCH] Remove nullpointers from graph printing --- .../java/es/upv/mist/slicing/cli/DOTAttributes.java | 2 ++ .../src/main/java/es/upv/mist/slicing/cli/PDGLog.java | 10 +++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/sdg-cli/src/main/java/es/upv/mist/slicing/cli/DOTAttributes.java b/sdg-cli/src/main/java/es/upv/mist/slicing/cli/DOTAttributes.java index 506dfd1..22c45c6 100644 --- a/sdg-cli/src/main/java/es/upv/mist/slicing/cli/DOTAttributes.java +++ b/sdg-cli/src/main/java/es/upv/mist/slicing/cli/DOTAttributes.java @@ -26,6 +26,8 @@ public class DOTAttributes { public Map build() { Map map = new HashMap<>(); for (var entry : this.map.entrySet()) { + if (entry.getValue() == null) + continue; Optional string = entry.getValue().stream().reduce((a, b) -> a + "," + b); string.ifPresent(s -> map.put(entry.getKey(), createAttribute(s))); } diff --git a/sdg-cli/src/main/java/es/upv/mist/slicing/cli/PDGLog.java b/sdg-cli/src/main/java/es/upv/mist/slicing/cli/PDGLog.java index 66a2464..c7f364d 100644 --- a/sdg-cli/src/main/java/es/upv/mist/slicing/cli/PDGLog.java +++ b/sdg-cli/src/main/java/es/upv/mist/slicing/cli/PDGLog.java @@ -1,10 +1,7 @@ package es.upv.mist.slicing.cli; import es.upv.mist.slicing.arcs.Arc; -import es.upv.mist.slicing.arcs.pdg.ConditionalControlDependencyArc; -import es.upv.mist.slicing.arcs.pdg.FlowDependencyArc; -import es.upv.mist.slicing.arcs.pdg.ObjectFlowDependencyArc; -import es.upv.mist.slicing.arcs.pdg.StructuralArc; +import es.upv.mist.slicing.arcs.pdg.*; import es.upv.mist.slicing.arcs.sdg.InterproceduralArc; import es.upv.mist.slicing.graphs.pdg.PDG; @@ -47,11 +44,14 @@ public class PDGLog extends GraphLog { public static DOTAttributes pdgEdgeAttributes(Arc arc) { DOTAttributes res = new DOTAttributes(); - res.set("label", arc.getLabel()); + if (arc.getLabel() != null) + res.set("label", arc.getLabel()); if (arc.isDataDependencyArc() || arc instanceof FlowDependencyArc || arc instanceof ObjectFlowDependencyArc) res.set("color", "red"); + if (arc instanceof TotalDefinitionDependenceArc) + res.set("color", "pink"); if (arc instanceof StructuralArc) res.add("style", "dashed"); if (arc.isObjectFlow() && !(arc instanceof InterproceduralArc)) -- GitLab