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 506dfd18842c6c87a9f5aa565da679e3e467fdb5..22c45c6d49d7b0e94d48c64fdf33bd2afab3e4cb 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 66a24644861642760b8ec370767a4c76b3e7e582..c7f364d3895c50e42ee07553bbb68cc458e05a38 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))