2020
2121import java .net .URL ;
2222import java .util .ArrayList ;
23+ import java .util .Comparator ;
2324import java .util .List ;
2425import java .util .Map ;
2526import java .util .TreeMap ;
@@ -152,6 +153,8 @@ public class SwaggerUiConfigProperties {
152153
153154 private String url ;
154155
156+ private Direction groupsOrder = Direction .ASC ;
157+
155158 public static void addGroup (String group ) {
156159 SwaggerUrl swaggerUrl = new SwaggerUrl (group );
157160 swaggerUrls .add (swaggerUrl );
@@ -372,7 +375,13 @@ public boolean isValidUrl(String url) {
372375 }
373376
374377 private void put (String urls , List <SwaggerUrl > swaggerUrls , Map <String , Object > params ) {
375- swaggerUrls = swaggerUrls .stream ().filter (elt -> StringUtils .isNotEmpty (elt .getUrl ())).collect (Collectors .toList ());
378+ Comparator <SwaggerUrl > swaggerUrlComparator ;
379+ if (groupsOrder .isAscending ())
380+ swaggerUrlComparator = (h1 , h2 ) -> h1 .getName ().compareTo (h2 .getName ());
381+ else
382+ swaggerUrlComparator = (h1 , h2 ) -> h2 .getName ().compareTo (h1 .getName ());
383+
384+ swaggerUrls = swaggerUrls .stream ().sorted (swaggerUrlComparator ).filter (elt -> StringUtils .isNotEmpty (elt .getUrl ())).collect (Collectors .toList ());
376385 if (!CollectionUtils .isEmpty (swaggerUrls )) {
377386 params .put (urls , swaggerUrls );
378387 }
@@ -408,4 +417,25 @@ public void setName(String name) {
408417 this .name = name ;
409418 }
410419 }
420+
421+ static enum Direction {
422+ ASC ,
423+ DESC ;
424+
425+ public boolean isAscending () {
426+ return this .equals (ASC );
427+ }
428+
429+ public boolean isDescending () {
430+ return this .equals (DESC );
431+ }
432+ }
433+
434+ public Direction getGroupsOrder () {
435+ return groupsOrder ;
436+ }
437+
438+ public void setGroupsOrder (Direction groupsOrder ) {
439+ this .groupsOrder = groupsOrder ;
440+ }
411441}
0 commit comments