1515import java .util .List ;
1616import java .util .Map ;
1717
18+ import static java .lang .String .format ;
19+
1820public class MarkdownRender implements Render {
1921 public static final Logger LOGGER = LoggerFactory .getLogger (MarkdownRender .class );
2022
@@ -119,7 +121,7 @@ private String itemResponse(String title, String code, String description) {
119121 if (!code .equals ("default" )) {
120122 status = HttpStatus .getStatusText (Integer .parseInt (code ));
121123 }
122- sb .append (String . format ("%s : **%s %s**\n " , title , code , status ));
124+ sb .append (format ("%s : **%s %s**\n " , title , code , status ));
123125 sb .append (description (description ));
124126 return sb .toString ();
125127 }
@@ -153,7 +155,7 @@ private String itemHeader(String code, ChangedHeader header) {
153155
154156 private String itemHeader (String title , String mediaType , String description ) {
155157 StringBuilder sb = new StringBuilder ("" );
156- sb .append (String . format ("%s : `%s`\n \n " , title , mediaType ));
158+ sb .append (format ("%s : `%s`\n \n " , title , mediaType ));
157159 sb .append (description (description )).append ('\n' );
158160 return sb .toString ();
159161 }
@@ -184,7 +186,7 @@ private String listContent(String prefix, String title, Map<String, MediaType> m
184186
185187 private String itemContent (String title , String mediaType ) {
186188 StringBuilder sb = new StringBuilder ("" );
187- sb .append (String . format ("%s : `%s`\n \n " , title , mediaType ));
189+ sb .append (format ("%s : `%s`\n \n " , title , mediaType ));
188190 return sb .toString ();
189191 }
190192
@@ -207,6 +209,7 @@ private String schema(ChangedSchema schema) {
207209
208210 private String schema (int deepness , ChangedSchema schema ) {
209211 StringBuilder sb = new StringBuilder ("" );
212+ sb .append (listDiff (deepness , "enum" , schema .getChangeEnum ()));
210213 sb .append (properties (deepness , "Added property" , schema .getIncreasedProperties ()));
211214 sb .append (properties (deepness , "Deleted property" , schema .getMissingProperties ()));
212215 schema .getChangedProperties ().forEach ((name , property ) -> sb .append (property (deepness , name , property )));
@@ -235,7 +238,24 @@ private String property(int deepness, String title, String name, Schema schema)
235238 }
236239
237240 private String property (int deepness , String title , String name , String type , String description ) {
238- return String .format ("%s* %s `%s` (%s)\n %s\n " , indent (deepness ), title , name , type , description (indent (deepness + 1 ), description ));
241+ return format ("%s* %s `%s` (%s)\n %s\n " , indent (deepness ), title , name , type , description (indent (deepness + 1 ), description ));
242+ }
243+
244+ private String listDiff (int deepness , String name , ListDiff listDiff ) {
245+ if (listDiff == null ) {
246+ return "" ;
247+ }
248+ return listItem (deepness , "Added " + name , listDiff .getIncreased ()) +
249+ listItem (deepness , "Removed " + name , listDiff .getMissing ());
250+ }
251+
252+ private <T > String listItem (int deepness , String name , List <T > list ) {
253+ StringBuilder sb = new StringBuilder ("" );
254+ if (list != null && list .size () > 0 ) {
255+ sb .append (format ("%s%s value%s:\n \n " , indent (deepness ), name , list .size () > 1 ? "s" : "" ));
256+ list .forEach (p -> sb .append (format ("%s* `%s`\n " , indent (deepness ), p )));
257+ }
258+ return sb .toString ();
239259 }
240260
241261 private String parameters (ChangedParameters changedParameters ) {
@@ -258,7 +278,7 @@ private String itemParameter(String title, Parameter parameter) {
258278 }
259279
260280 private String itemParameter (String title , String name , String in , String description ) {
261- return String . format ("%s: " , title ) + code (name ) + " in " + code (in ) + '\n' + description (description ) + '\n' ;
281+ return format ("%s: " , title ) + code (name ) + " in " + code (in ) + '\n' + description (description ) + '\n' ;
262282 }
263283
264284 private String itemParameter (ChangedParameter param ) {
0 commit comments