Skip to content

Commit 50119ca

Browse files
committed
Stakeholder map: add descriptions
1 parent ab551e5 commit 50119ca

File tree

2 files changed

+112
-66
lines changed

2 files changed

+112
-66
lines changed

org.contextmapper.dsl.tests/src/org/contextmapper/dsl/generators/plantuml/PlantUMLStakeholderDiagramCreatorTest.java

Lines changed: 79 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -43,28 +43,34 @@ public void canCreateStakeholderDiagramWithContext() throws IOException {
4343
// then
4444
assertEquals("@startmindmap" + System.lineSeparator()
4545
+ System.lineSeparator()
46+
+ "<style>" + System.lineSeparator()
47+
+ "node {" + System.lineSeparator()
48+
+ " MaximumWidth 300" + System.lineSeparator()
49+
+ "}" + System.lineSeparator()
50+
+ "</style>" + System.lineSeparator()
51+
+ "" + System.lineSeparator()
4652
+ "* SameDayDelivery" + System.lineSeparator()
47-
+ "** Product_Suppliers" + System.lineSeparator()
48-
+ "*** Managers" + System.lineSeparator()
49-
+ "*** Logistics_Warehouse_Staff_of_Suppliers" + System.lineSeparator()
50-
+ "*** Delivery_Staff_of_Suppliers" + System.lineSeparator()
51-
+ "** Competing_Companies" + System.lineSeparator()
52-
+ "** Government" + System.lineSeparator()
53+
+ "** <b>Product_Suppliers</b>" + System.lineSeparator()
54+
+ "*** <b>Managers</b>" + System.lineSeparator()
55+
+ "*** <b>Logistics_Warehouse_Staff_of_Suppliers</b>" + System.lineSeparator()
56+
+ "*** <b>Delivery_Staff_of_Suppliers</b>" + System.lineSeparator()
57+
+ "** <b>Competing_Companies</b>" + System.lineSeparator()
58+
+ "** <b>Government</b>" + System.lineSeparator()
5359
+ System.lineSeparator()
54-
+ "left side" + System.lineSeparator()
55-
+ "** Online_Shopping_Company" + System.lineSeparator()
56-
+ "*** Development_Team" + System.lineSeparator()
57-
+ "*** Product_Management" + System.lineSeparator()
58-
+ "*** Customer_Relationship_Manager" + System.lineSeparator()
59-
+ "** Delivery_Partners" + System.lineSeparator()
60-
+ "*** Route_Planners" + System.lineSeparator()
61-
+ "*** Drivers" + System.lineSeparator()
62-
+ "** Logistics_Team" + System.lineSeparator()
63-
+ "*** Logistics_Manager" + System.lineSeparator()
64-
+ "*** Warehouse_Staff" + System.lineSeparator()
65-
+ "** Customers_and_Shoppers" + System.lineSeparator()
66-
+ "*** Shoppers_in_Emergency_Situations" + System.lineSeparator()
67-
+ "*** Others" + System.lineSeparator()
60+
+ "left side" + System.lineSeparator()
61+
+ "** <b>Online_Shopping_Company</b>" + System.lineSeparator()
62+
+ "*** <b>Development_Team</b>" + System.lineSeparator()
63+
+ "*** <b>Product_Management</b>" + System.lineSeparator()
64+
+ "*** <b>Customer_Relationship_Manager</b>" + System.lineSeparator()
65+
+ "** <b>Delivery_Partners</b>" + System.lineSeparator()
66+
+ "*** <b>Route_Planners</b>" + System.lineSeparator()
67+
+ "*** <b>Drivers</b>" + System.lineSeparator()
68+
+ "** <b>Logistics_Team</b>" + System.lineSeparator()
69+
+ "*** <b>Logistics_Manager</b>" + System.lineSeparator()
70+
+ "*** <b>Warehouse_Staff</b>" + System.lineSeparator()
71+
+ "** <b>Customers_and_Shoppers</b>" + System.lineSeparator()
72+
+ "*** <b>Shoppers_in_Emergency_Situations</b>" + System.lineSeparator()
73+
+ "*** <b>Others</b>" + System.lineSeparator()
6874
+ System.lineSeparator()
6975
+ System.lineSeparator()
7076
+ "@endmindmap" + System.lineSeparator(), stakeholderDiagram);
@@ -81,28 +87,34 @@ public void canCreateStakeholderDiagramWithMultipleContext() throws IOException
8187
// then
8288
assertEquals("@startmindmap" + System.lineSeparator()
8389
+ System.lineSeparator()
84-
+ "* SameDayDelivery, Context2" + System.lineSeparator()
85-
+ "** Product_Suppliers" + System.lineSeparator()
86-
+ "*** Managers" + System.lineSeparator()
87-
+ "*** Logistics_Warehouse_Staff_of_Suppliers" + System.lineSeparator()
88-
+ "*** Delivery_Staff_of_Suppliers" + System.lineSeparator()
89-
+ "** Competing_Companies" + System.lineSeparator()
90-
+ "** Government" + System.lineSeparator()
90+
+ "<style>" + System.lineSeparator()
91+
+ "node {" + System.lineSeparator()
92+
+ " MaximumWidth 300" + System.lineSeparator()
93+
+ "}" + System.lineSeparator()
94+
+ "</style>" + System.lineSeparator()
9195
+ System.lineSeparator()
92-
+ "left side" + System.lineSeparator()
93-
+ "** Online_Shopping_Company" + System.lineSeparator()
94-
+ "*** Development_Team" + System.lineSeparator()
95-
+ "*** Product_Management" + System.lineSeparator()
96-
+ "*** Customer_Relationship_Manager" + System.lineSeparator()
97-
+ "** Delivery_Partners" + System.lineSeparator()
98-
+ "*** Route_Planners" + System.lineSeparator()
99-
+ "*** Drivers" + System.lineSeparator()
100-
+ "** Logistics_Team" + System.lineSeparator()
101-
+ "*** Logistics_Manager" + System.lineSeparator()
102-
+ "*** Warehouse_Staff" + System.lineSeparator()
103-
+ "** Customers_and_Shoppers" + System.lineSeparator()
104-
+ "*** Shoppers_in_Emergency_Situations" + System.lineSeparator()
105-
+ "*** Others" + System.lineSeparator()
96+
+ "* SameDayDelivery, Context2" + System.lineSeparator()
97+
+ "** <b>Product_Suppliers</b>" + System.lineSeparator()
98+
+ "*** <b>Managers</b>" + System.lineSeparator()
99+
+ "*** <b>Logistics_Warehouse_Staff_of_Suppliers</b>" + System.lineSeparator()
100+
+ "*** <b>Delivery_Staff_of_Suppliers</b>" + System.lineSeparator()
101+
+ "** <b>Competing_Companies</b>" + System.lineSeparator()
102+
+ "** <b>Government</b>" + System.lineSeparator()
103+
+ "" + System.lineSeparator()
104+
+ "left side" + System.lineSeparator()
105+
+ "** <b>Online_Shopping_Company</b>" + System.lineSeparator()
106+
+ "*** <b>Development_Team</b>" + System.lineSeparator()
107+
+ "*** <b>Product_Management</b>" + System.lineSeparator()
108+
+ "*** <b>Customer_Relationship_Manager</b>" + System.lineSeparator()
109+
+ "** <b>Delivery_Partners</b>" + System.lineSeparator()
110+
+ "*** <b>Route_Planners</b>" + System.lineSeparator()
111+
+ "*** <b>Drivers</b>" + System.lineSeparator()
112+
+ "** <b>Logistics_Team</b>" + System.lineSeparator()
113+
+ "*** <b>Logistics_Manager</b>" + System.lineSeparator()
114+
+ "*** <b>Warehouse_Staff</b>" + System.lineSeparator()
115+
+ "** <b>Customers_and_Shoppers</b>" + System.lineSeparator()
116+
+ "*** <b>Shoppers_in_Emergency_Situations</b>" + System.lineSeparator()
117+
+ "*** <b>Others</b>" + System.lineSeparator()
106118
+ System.lineSeparator()
107119
+ System.lineSeparator()
108120
+ "@endmindmap" + System.lineSeparator(), stakeholderDiagram);
@@ -118,29 +130,35 @@ public void canCreateStakeholderDiagramWithDefaultContext() throws IOException {
118130

119131
// then
120132
assertEquals("@startmindmap" + System.lineSeparator()
133+
+ System.lineSeparator()
134+
+ "<style>" + System.lineSeparator()
135+
+ "node {" + System.lineSeparator()
136+
+ " MaximumWidth 300" + System.lineSeparator()
137+
+ "}" + System.lineSeparator()
138+
+ "</style>" + System.lineSeparator()
121139
+ System.lineSeparator()
122140
+ "* System of Interest" + System.lineSeparator()
123-
+ "** Product_Suppliers" + System.lineSeparator()
124-
+ "*** Managers" + System.lineSeparator()
125-
+ "*** Logistics_Warehouse_Staff_of_Suppliers" + System.lineSeparator()
126-
+ "*** Delivery_Staff_of_Suppliers" + System.lineSeparator()
127-
+ "** Competing_Companies" + System.lineSeparator()
128-
+ "** Government" + System.lineSeparator()
141+
+ "** <b>Product_Suppliers</b>" + System.lineSeparator()
142+
+ "*** <b>Managers</b>" + System.lineSeparator()
143+
+ "*** <b>Logistics_Warehouse_Staff_of_Suppliers</b>" + System.lineSeparator()
144+
+ "*** <b>Delivery_Staff_of_Suppliers</b>" + System.lineSeparator()
145+
+ "** <b>Competing_Companies</b>" + System.lineSeparator()
146+
+ "** <b>Government</b>" + System.lineSeparator()
129147
+ System.lineSeparator()
130-
+ "left side" + System.lineSeparator()
131-
+ "** Online_Shopping_Company" + System.lineSeparator()
132-
+ "*** Development_Team" + System.lineSeparator()
133-
+ "*** Product_Management" + System.lineSeparator()
134-
+ "*** Customer_Relationship_Manager" + System.lineSeparator()
135-
+ "** Delivery_Partners" + System.lineSeparator()
136-
+ "*** Route_Planners" + System.lineSeparator()
137-
+ "*** Drivers" + System.lineSeparator()
138-
+ "** Logistics_Team" + System.lineSeparator()
139-
+ "*** Logistics_Manager" + System.lineSeparator()
140-
+ "*** Warehouse_Staff" + System.lineSeparator()
141-
+ "** Customers_and_Shoppers" + System.lineSeparator()
142-
+ "*** Shoppers_in_Emergency_Situations" + System.lineSeparator()
143-
+ "*** Others" + System.lineSeparator()
148+
+ "left side" + System.lineSeparator()
149+
+ "** <b>Online_Shopping_Company</b>" + System.lineSeparator()
150+
+ "*** <b>Development_Team</b>" + System.lineSeparator()
151+
+ "*** <b>Product_Management</b>" + System.lineSeparator()
152+
+ "*** <b>Customer_Relationship_Manager</b>" + System.lineSeparator()
153+
+ "** <b>Delivery_Partners</b>" + System.lineSeparator()
154+
+ "*** <b>Route_Planners</b>" + System.lineSeparator()
155+
+ "*** <b>Drivers</b>" + System.lineSeparator()
156+
+ "** <b>Logistics_Team</b>" + System.lineSeparator()
157+
+ "*** <b>Logistics_Manager</b>" + System.lineSeparator()
158+
+ "*** <b>Warehouse_Staff</b>" + System.lineSeparator()
159+
+ "** <b>Customers_and_Shoppers</b>" + System.lineSeparator()
160+
+ "*** <b>Shoppers_in_Emergency_Situations</b>" + System.lineSeparator()
161+
+ "*** <b>Others</b>" + System.lineSeparator()
144162
+ System.lineSeparator()
145163
+ System.lineSeparator()
146164
+ "@endmindmap" + System.lineSeparator(), stakeholderDiagram);

org.contextmapper.dsl/src/org/contextmapper/dsl/generator/plantuml/PlantUMLStakeholderMapGenerator.java

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ public class PlantUMLStakeholderMapGenerator extends AbstractPlantUMLMindMapDiag
3838
protected void printDiagramContent(final Stakeholders stakeholders) {
3939
initData(stakeholders);
4040

41+
printStyles();
42+
4143
sb.append(STAR).append(" ").append(getStakeholderDiagramContextName(stakeholders.getContexts()));
4244
linebreak();
4345
printStakeholders(right);
@@ -47,6 +49,19 @@ protected void printDiagramContent(final Stakeholders stakeholders) {
4749
printStakeholders(left);
4850
}
4951

52+
private void printStyles() {
53+
sb.append("<style>");
54+
linebreak();
55+
sb.append("node {");
56+
linebreak();
57+
sb.append(" MaximumWidth 300");
58+
linebreak();
59+
sb.append("}");
60+
linebreak();
61+
sb.append("</style>");
62+
linebreak(2);
63+
}
64+
5065
public String getStakeholderDiagramContextName(final List<BoundedContext> bcs) {
5166
if (bcs != null && !bcs.isEmpty())
5267
return String.join(", ", bcs.stream().map(bc -> bc.getName()).collect(Collectors.toList()));
@@ -58,19 +73,32 @@ private void printStakeholders(final List<AbstractStakeholder> stakeholders) {
5873
if (s instanceof StakeholderGroup) {
5974
printStakeholderGroup((StakeholderGroup) s);
6075
} else if (s instanceof Stakeholder) {
61-
sb.append(STAR).append(STAR).append(" " + s.getName());
62-
linebreak();
76+
printGeneralStakeholderLine(2, s.getName(), ((Stakeholder) s).getDescription());
6377
}
6478
}
6579
}
6680

6781
private void printStakeholderGroup(final StakeholderGroup group) {
68-
sb.append(STAR).append(STAR).append(" ").append(group.getName());
69-
linebreak();
82+
printGeneralStakeholderLine(2, group.getName(), null);
7083
for (Stakeholder s : group.getStakeholders()) {
71-
sb.append(STAR).append(STAR).append(STAR).append(" ").append(s.getName());
84+
printGeneralStakeholderLine(3, s.getName(), s.getDescription());
85+
}
86+
}
87+
88+
private void printGeneralStakeholderLine(final int level, final String name, final String description) {
89+
for (int i = 0; i < level; i++) {
90+
sb.append(STAR);
91+
}
92+
if (description != null && !"".equals(description)) {
93+
sb.append(":<b>").append(name).append("</b>");
94+
linebreak();
95+
sb.append("----");
7296
linebreak();
97+
sb.append(description).append(";");
98+
} else {
99+
sb.append(" <b>").append(name).append("</b>");
73100
}
101+
linebreak();
74102
}
75103

76104
private void initData(final Stakeholders stakeholders) {

0 commit comments

Comments
 (0)