33 * SPDX-License-Identifier: GPL-2.0-only */
44package 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 ;
138import freemarker .core .HTMLOutputFormat ;
149import freemarker .ext .beans .ZeroArgumentNonVoidMethodPolicy ;
1510import freemarker .template .Configuration ;
1611import freemarker .template .DefaultObjectWrapper ;
1712import freemarker .template .TemplateException ;
1813import 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