Skip to content

Commit 77fcce9

Browse files
committed
better documentation
1 parent 776c21f commit 77fcce9

2 files changed

Lines changed: 249 additions & 135 deletions

File tree

keyext.api.doc/src/main/java/org/key_project/key/api/doc/DocGen.java

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,21 @@
33
* SPDX-License-Identifier: GPL-2.0-only */
44
package org.key_project.key.api.doc;
55

6-
import java.io.IOException;
7-
import java.io.StringWriter;
8-
import java.util.Comparator;
9-
import java.util.Map;
10-
import java.util.TreeMap;
11-
import java.util.function.Supplier;
12-
6+
import de.uka.ilkd.key.util.KeYConstants;
7+
import de.uka.ilkd.key.util.KeYResourceManager;
138
import freemarker.core.HTMLOutputFormat;
149
import freemarker.ext.beans.ZeroArgumentNonVoidMethodPolicy;
1510
import freemarker.template.Configuration;
1611
import freemarker.template.DefaultObjectWrapper;
1712
import freemarker.template.TemplateException;
1813
import freemarker.template.TemplateExceptionHandler;
1914

15+
import java.io.IOException;
16+
import java.io.StringWriter;
17+
import java.util.*;
18+
import java.util.function.Supplier;
19+
import java.util.stream.Collectors;
20+
2021
/**
2122
* Generation of Markdown documentation.
2223
*
@@ -49,7 +50,7 @@ public String get() {
4950
wrapper.setExposeFields(true);
5051
wrapper.setMethodsShadowItems(true);
5152
wrapper.setRecordZeroArgumentNonVoidMethodPolicy(
52-
ZeroArgumentNonVoidMethodPolicy.BOTH_METHOD_AND_PROPERTY_UNLESS_BEAN_PROPERTY_READ_METHOD);
53+
ZeroArgumentNonVoidMethodPolicy.BOTH_METHOD_AND_PROPERTY_UNLESS_BEAN_PROPERTY_READ_METHOD);
5354
wrapper.setForceLegacyNonListCollections(false);
5455
wrapper.setDefaultDateType(freemarker.template.TemplateDateModel.DATETIME);
5556
cfg.setObjectWrapper(wrapper);
@@ -60,15 +61,25 @@ public String get() {
6061
model.put("segmentDocumentation", metamodel.segmentDocumentation());
6162

6263
model.put("endpoints",
63-
metamodel.endpoints()
64-
.stream().sorted(Comparator.comparing(Metamodel.Endpoint::name))
65-
.toList());
64+
metamodel.endpoints()
65+
.stream().sorted(Comparator.comparing(Metamodel.Endpoint::name))
66+
.toList());
67+
68+
final Map<String, List<Metamodel.Endpoint>> collect = metamodel.endpoints()
69+
.stream().sorted(Comparator.comparing(Metamodel.Endpoint::name))
70+
.collect(Collectors.groupingBy(Metamodel.Endpoint::segment, TreeMap::new, Collectors.toList()));
71+
72+
model.put("endpointsBySegment", collect);
6673

6774
model.put("types",
68-
metamodel.types().values()
69-
.stream().sorted(Comparator.comparing(Metamodel.Type::name))
70-
.toList());
75+
metamodel.types().values()
76+
.stream().sorted(Comparator.comparing(Metamodel.Type::name))
77+
.toList());
7178

79+
model.put("version",
80+
KeYResourceManager.getManager().getVersion() +
81+
" (" + KeYConstants.INTERNAL_VERSION.substring(0, 8) + ")");
82+
model.put("date", new Date());
7283

7384
// 3) Get template
7485
var tpl = cfg.getTemplate("docs.ftl");

0 commit comments

Comments
 (0)