Skip to content
This repository was archived by the owner on Jan 10, 2024. It is now read-only.

Commit ffd67da

Browse files
Zero pads automatically generated view keys for better sorting.
1 parent 06c6b3a commit ffd67da

12 files changed

+26
-18
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ targetCompatibility = 1.8
2727

2828
description = 'Structurizr DSL'
2929
group = 'com.structurizr'
30-
version = '1.26.1'
30+
version = '1.26.2'
3131

3232
test {
3333
useJUnitPlatform()

docs/changelog.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changelog
22

3+
## 1.26.2 (21st February 2023)
4+
5+
- Zero pads automatically generated view keys for better sorting.
6+
37
## 1.26.1 (18th February 2023)
48

59
- Sets titles for image view content specified via URLs.

src/main/java/com/structurizr/dsl/AbstractViewParser.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,21 @@
44
import org.apache.commons.logging.Log;
55
import org.apache.commons.logging.LogFactory;
66

7+
import java.text.DecimalFormat;
8+
import java.text.NumberFormat;
9+
710
abstract class AbstractViewParser extends AbstractParser {
811

912
private static final Log log = LogFactory.getLog(AbstractViewParser.class);
1013

1114
protected String generateViewKey(Workspace workspace, String prefix) {
15+
NumberFormat format = new DecimalFormat("000");
1216
int counter = 1;
13-
String key = prefix + "-" + counter;
17+
String key = prefix + "-" + format.format(counter);
1418

1519
while (hasViewWithKey(workspace, key)) {
1620
counter++;
17-
key = prefix + "-" + counter;
21+
key = prefix + "-" + format.format(counter);
1822
}
1923

2024
log.warn(key + " is an automatically generated view key - you will likely lose manual layout information when using automatically generated view keys.");

src/test/java/com/structurizr/dsl/ComponentViewParserTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ void test_parse_CreatesAComponentView() {
7171
List<ComponentView> views = new ArrayList<>(context.getWorkspace().getViews().getComponentViews());
7272

7373
assertEquals(1, views.size());
74-
assertEquals("Component-1", views.get(0).getKey());
74+
assertEquals("Component-001", views.get(0).getKey());
7575
assertEquals("", views.get(0).getDescription());
7676
assertTrue(views.get(0).getExternalContainerBoundariesVisible());
7777
}

src/test/java/com/structurizr/dsl/ContainerViewParserTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ void test_parse_CreatesAContainerView() {
7171
List<ContainerView> views = new ArrayList<>(context.getWorkspace().getViews().getContainerViews());
7272

7373
assertEquals(1, views.size());
74-
assertEquals("Container-1", views.get(0).getKey());
74+
assertEquals("Container-001", views.get(0).getKey());
7575
assertEquals("", views.get(0).getDescription());
7676
assertTrue(views.get(0).getExternalSoftwareSystemBoundariesVisible());
7777
}

src/test/java/com/structurizr/dsl/CustomViewParserTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ void test_parse_CreatesACustomView() {
3131
List<CustomView> views = new ArrayList<>(context.getWorkspace().getViews().getCustomViews());
3232

3333
assertEquals(1, views.size());
34-
assertEquals("Custom-1", views.get(0).getKey());
34+
assertEquals("Custom-001", views.get(0).getKey());
3535
assertEquals("", views.get(0).getTitle());
3636
assertEquals("", views.get(0).getDescription());
3737
}

src/test/java/com/structurizr/dsl/DeploymentViewParserTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ void test_parse_CreatesADeploymentViewWithNoScope() {
9696
List<DeploymentView> views = new ArrayList<>(this.views.getDeploymentViews());
9797

9898
assertEquals(1, views.size());
99-
assertEquals("Deployment-1", views.get(0).getKey());
99+
assertEquals("Deployment-001", views.get(0).getKey());
100100
assertEquals("", views.get(0).getDescription());
101101
assertNull(views.get(0).getSoftwareSystem());
102102
}
@@ -163,7 +163,7 @@ void test_parse_CreatesADeploymentViewWithSoftwareSystemScope() {
163163
List<DeploymentView> views = new ArrayList<>(this.views.getDeploymentViews());
164164

165165
assertEquals(1, views.size());
166-
assertEquals("Deployment-1", views.get(0).getKey());
166+
assertEquals("Deployment-001", views.get(0).getKey());
167167
assertEquals("", views.get(0).getDescription());
168168
assertSame(softwareSystem, views.get(0).getSoftwareSystem());
169169
}

src/test/java/com/structurizr/dsl/DslTests.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ void test_gettingstarted() throws Exception {
5959
assertEquals(1, views.getViews().size());
6060
assertEquals(1, views.getSystemContextViews().size());
6161
SystemContextView view = views.getSystemContextViews().iterator().next();
62-
assertEquals("SystemContext-1", view.getKey());
62+
assertEquals("SystemContext-001", view.getKey());
6363
assertEquals(2, view.getElements().size());
6464
assertEquals(1, view.getRelationships().size());
6565
}
@@ -1028,9 +1028,9 @@ void test_viewsWithoutKeys() throws Exception {
10281028
StructurizrDslParser parser = new StructurizrDslParser();
10291029
parser.parse(new File("src/test/dsl/views-without-keys.dsl"));
10301030

1031-
assertTrue(parser.getWorkspace().getViews().getSystemLandscapeViews().stream().anyMatch(view -> view.getKey().equals("SystemLandscape-1")));
1032-
assertTrue(parser.getWorkspace().getViews().getSystemLandscapeViews().stream().anyMatch(view -> view.getKey().equals("SystemLandscape-2")));
1033-
assertTrue(parser.getWorkspace().getViews().getSystemLandscapeViews().stream().anyMatch(view -> view.getKey().equals("SystemLandscape-3")));
1031+
assertTrue(parser.getWorkspace().getViews().getSystemLandscapeViews().stream().anyMatch(view -> view.getKey().equals("SystemLandscape-001")));
1032+
assertTrue(parser.getWorkspace().getViews().getSystemLandscapeViews().stream().anyMatch(view -> view.getKey().equals("SystemLandscape-002")));
1033+
assertTrue(parser.getWorkspace().getViews().getSystemLandscapeViews().stream().anyMatch(view -> view.getKey().equals("SystemLandscape-003")));
10341034
}
10351035

10361036
@Test

src/test/java/com/structurizr/dsl/DynamicViewParserTests.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ void test_parse_GeneratesAKey_WhenTheKeyIsMissing() {
4141
DslContext context = context();
4242
DynamicView view = parser.parse(context, tokens("dynamic", "*"));
4343

44-
assertEquals("Dynamic-1", view.getKey());
44+
assertEquals("Dynamic-001", view.getKey());
4545
}
4646

4747
@Test
@@ -104,7 +104,7 @@ void test_parse_CreatesADynamicViewWithSoftwareSystemScope() {
104104
List<DynamicView> views = new ArrayList<>(this.views.getDynamicViews());
105105

106106
assertEquals(1, views.size());
107-
assertEquals("Dynamic-1", views.get(0).getKey());
107+
assertEquals("Dynamic-001", views.get(0).getKey());
108108
assertEquals("", views.get(0).getDescription());
109109
assertSame(softwareSystem, views.get(0).getElement());
110110
}
@@ -155,7 +155,7 @@ void test_parse_CreatesADynamicViewWithContainerScope() {
155155
List<DynamicView> views = new ArrayList<>(this.views.getDynamicViews());
156156

157157
assertEquals(1, views.size());
158-
assertEquals("Dynamic-1", views.get(0).getKey());
158+
assertEquals("Dynamic-001", views.get(0).getKey());
159159
assertEquals("", views.get(0).getDescription());
160160
assertSame(container, views.get(0).getElement());
161161
}

src/test/java/com/structurizr/dsl/FilteredViewParserTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ void test_parse_CreatesAFilteredView() {
9999
List<FilteredView> views = new ArrayList<>(context.getWorkspace().getViews().getFilteredViews());
100100

101101
assertEquals(1, views.size());
102-
assertEquals("Filtered-1", views.get(0).getKey());
102+
assertEquals("Filtered-001", views.get(0).getKey());
103103
assertEquals(2, views.get(0).getTags().size());
104104
assertTrue(views.get(0).getTags().contains("Tag 1"));
105105
assertTrue(views.get(0).getTags().contains("Tag 2"));

src/test/java/com/structurizr/dsl/SystemContextViewParserTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ void test_parse_CreatesASystemContextView() {
7272
List<SystemContextView> views = new ArrayList<>(context.getWorkspace().getViews().getSystemContextViews());
7373

7474
assertEquals(1, views.size());
75-
assertEquals("SystemContext-1", views.get(0).getKey());
75+
assertEquals("SystemContext-001", views.get(0).getKey());
7676
assertEquals("", views.get(0).getDescription());
7777
}
7878

src/test/java/com/structurizr/dsl/SystemLandscapeViewParserTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ void test_parse_CreatesASystemLandscapeView() {
3131
List<SystemLandscapeView> views = new ArrayList<>(context.getWorkspace().getViews().getSystemLandscapeViews());
3232

3333
assertEquals(1, views.size());
34-
assertEquals("SystemLandscape-1", views.get(0).getKey());
34+
assertEquals("SystemLandscape-001", views.get(0).getKey());
3535
assertEquals("", views.get(0).getDescription());
3636
}
3737

0 commit comments

Comments
 (0)