Skip to content

Commit cc14819

Browse files
committed
Refactor pipelines
- long stream chains to multiple lines - extract mapping methods to own methods in the presenter class
1 parent 12ce185 commit cc14819

File tree

1 file changed

+42
-11
lines changed

1 file changed

+42
-11
lines changed

drm-core/src/main/java/com/nitorcreations/presenters/DefaultGraphvizPresenter.java

Lines changed: 42 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,6 @@ public class DefaultGraphvizPresenter implements Presenter {
1818
private static final String INHERITANCE_STYLE = "arrowhead=empty color=slategray";
1919
private final AtomicInteger count = new AtomicInteger();
2020

21-
private String describeEdge(Edge edge) {
22-
return String.format("%s -> %s [%s];", edge.source.className, edge.target.className, getEdgeDescription(edge));
23-
}
24-
2521
private Object getEdgeDescription(Edge edge) {
2622
StringBuilder sb = new StringBuilder();
2723
if (edge.target.description != null) {
@@ -44,29 +40,64 @@ private String linkDirection(Edge edge) {
4440
return "dir=both arrowhead=open arrowtail=open";
4541
}
4642

47-
4843
private String describeInheritance(List<Edge> edges) {
49-
return edges.stream().filter(e -> e.type == EdgeType.EXTENDS).map(hierarchyEdge -> String.format(" %s -> %s [%s];\n", hierarchyEdge.source.className, hierarchyEdge.target.className, INHERITANCE_STYLE)).collect(joining());
44+
return edges.stream()
45+
.filter(e -> e.type == EdgeType.EXTENDS)
46+
.map(this::describeInheritance)
47+
.collect(joining());
48+
}
49+
50+
private String describeInheritance(Edge hierarchyEdge) {
51+
return String.format(" %s -> %s [%s];\n",
52+
hierarchyEdge.source.className,
53+
hierarchyEdge.target.className,
54+
INHERITANCE_STYLE);
5055
}
5156

5257
private String describePackages(List<DomainObject> domainObjects) {
5358
count.set(0);
54-
return domainObjects.stream().collect(groupingBy(DomainObject::getPackageName)).entrySet().stream().map(this::describePackage).collect(joining());
55-
59+
return domainObjects.stream()
60+
.collect(groupingBy(DomainObject::getPackageName))
61+
.entrySet().stream()
62+
.map(this::describePackage)
63+
.collect(joining());
5664
}
5765

5866
private String describePackage(Map.Entry<String, List<DomainObject>> entry) {
5967
return String.format(" subgraph cluster_%s {\n label = \"%s\";\n%s }\n",
60-
count.getAndIncrement(), entry.getKey(), entry.getValue().stream().map(domainObject -> " " + domainObject.className + "\n").distinct().collect(joining()));
68+
count.getAndIncrement(),
69+
entry.getKey(),
70+
listDomainObjects(entry.getValue()));
71+
}
72+
73+
private String listDomainObjects(List<DomainObject> domainObjects) {
74+
return domainObjects.stream()
75+
.map(domainObject -> " " + domainObject.className + "\n")
76+
.distinct()
77+
.collect(joining());
6178
}
6279

6380
private String describeCompositions(List<Edge> edges) {
64-
return edges.stream().filter(e -> e.type != EdgeType.EXTENDS).map(e -> String.format(" %s\n", describeEdge(e))).collect(joining());
81+
return edges.stream()
82+
.filter(e -> e.type != EdgeType.EXTENDS)
83+
.map(this::describeComposition)
84+
.collect(joining());
85+
}
86+
87+
private String describeComposition(Edge compositionEdge) {
88+
return String.format(" %s\n", describeEdge(compositionEdge));
6589
}
6690

91+
private String describeEdge(Edge edge) {
92+
return String.format("%s -> %s [%s];", edge.source.className, edge.target.className, getEdgeDescription(edge));
93+
}
6794

6895
@Override
6996
public String describe(List<DomainObject> domainObjects, List<Edge> edges) {
70-
return DOMAIN_DECLARATION + DEFAULTS + "\n" + describePackages(domainObjects) + describeCompositions(edges) + describeInheritance(edges) + "}";
97+
return DOMAIN_DECLARATION + DEFAULTS + "\n"
98+
+ describePackages(domainObjects)
99+
+ describeCompositions(edges)
100+
+ describeInheritance(edges)
101+
+ "}";
71102
}
72103
}

0 commit comments

Comments
 (0)