diff --git a/src/main/java/kieker/analysis/util/graph/export/dot/DotExporter.java b/src/main/java/kieker/analysis/util/graph/export/dot/DotExporter.java index 842c526a824c1a4d37cfebadb1dd75d953071291..7ae2757bc52e73f8149adf83fa9d73ec3fc2eed6 100644 --- a/src/main/java/kieker/analysis/util/graph/export/dot/DotExporter.java +++ b/src/main/java/kieker/analysis/util/graph/export/dot/DotExporter.java @@ -16,7 +16,7 @@ import kieker.analysis.util.graph.util.dot.attributes.DotNodeAttribute; public class DotExporter extends DotElementExporter { public DotExporter(final Graph graph, final Writer writer) { - this(graph, writer, new DotExportConfiguration()); + this(graph, writer, new SimpleDotExportConfiguration()); } public DotExporter(final Graph graph, final Writer writer, final DotExportConfiguration configuration) { diff --git a/src/main/java/kieker/analysis/util/graph/export/dot/SimpleDotExportConfiguration.java b/src/main/java/kieker/analysis/util/graph/export/dot/SimpleDotExportConfiguration.java new file mode 100644 index 0000000000000000000000000000000000000000..8551ad649288326337f3c6f9e92fce45217b6102 --- /dev/null +++ b/src/main/java/kieker/analysis/util/graph/export/dot/SimpleDotExportConfiguration.java @@ -0,0 +1,17 @@ +package kieker.analysis.util.graph.export.dot; + +import kieker.analysis.util.graph.Edge; +import kieker.analysis.util.graph.Vertex; +import kieker.analysis.util.graph.mapping.DirectPropertyMapper; +import kieker.analysis.util.graph.util.dot.attributes.DotEdgeAttribute; +import kieker.analysis.util.graph.util.dot.attributes.DotNodeAttribute; + +public class SimpleDotExportConfiguration extends DotExportConfiguration { + + public SimpleDotExportConfiguration() { + super(); + this.getNodeAttributes().put(DotNodeAttribute.LABEL, new DirectPropertyMapper<Vertex>("label")); + this.getEdgeAttributes().put(DotEdgeAttribute.LABEL, new DirectPropertyMapper<Edge>("label")); + } + +} diff --git a/src/main/java/kieker/analysis/util/graph/mapping/DirectPropertyMapper.java b/src/main/java/kieker/analysis/util/graph/mapping/DirectPropertyMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..bb7a257f7fa1e62f1a06c52d7c19de9f8e5ebdb0 --- /dev/null +++ b/src/main/java/kieker/analysis/util/graph/mapping/DirectPropertyMapper.java @@ -0,0 +1,35 @@ +package kieker.analysis.util.graph.mapping; + +import java.util.function.Function; + +import kieker.analysis.util.graph.Element; + +/** + * This function maps a graph element by a passed property key to the + * corresponding property value and returns it as string. + * + * @author Sören Henning + * + */ +public class DirectPropertyMapper<T extends Element> implements Function<T, String> { + + private String propertyKey; + + public DirectPropertyMapper(final String propertyKey) { + this.propertyKey = propertyKey; + } + + public String getPropertyKey() { + return propertyKey; + } + + public void setPropertyKey(final String propertyKey) { + this.propertyKey = propertyKey; + } + + @Override + public String apply(final T element) { + return element.getProperty(propertyKey); + } + +}