|
19 | 19 | package org.springdoc.core; |
20 | 20 |
|
21 | 21 | import java.net.URL; |
22 | | -import java.util.ArrayList; |
23 | 22 | import java.util.Comparator; |
| 23 | +import java.util.HashSet; |
24 | 24 | import java.util.List; |
25 | 25 | import java.util.Map; |
| 26 | +import java.util.Objects; |
| 27 | +import java.util.Set; |
26 | 28 | import java.util.TreeMap; |
27 | 29 | import java.util.stream.Collectors; |
28 | 30 |
|
@@ -51,7 +53,7 @@ public class SwaggerUiConfigProperties { |
51 | 53 |
|
52 | 54 | public static final String CONFIG_URL_PROPERTY = "configUrl"; |
53 | 55 |
|
54 | | - private static List<SwaggerUrl> swaggerUrls = new ArrayList<>(); |
| 56 | + private static Set<SwaggerUrl> swaggerUrls = new HashSet<>(); |
55 | 57 |
|
56 | 58 | /** |
57 | 59 | * The path for the Swagger UI pages to load. Will redirect to the springdoc.webjars.prefix property. |
@@ -165,11 +167,11 @@ public static void addGroup(String group, String url) { |
165 | 167 | swaggerUrls.add(swaggerUrl); |
166 | 168 | } |
167 | 169 |
|
168 | | - public static List<SwaggerUrl> getSwaggerUrls() { |
| 170 | + public static Set<SwaggerUrl> getSwaggerUrls() { |
169 | 171 | return swaggerUrls; |
170 | 172 | } |
171 | 173 |
|
172 | | - public static void setSwaggerUrls(List<SwaggerUrl> swaggerUrls) { |
| 174 | + public static void setSwaggerUrls(Set<SwaggerUrl> swaggerUrls) { |
173 | 175 | SwaggerUiConfigProperties.swaggerUrls = swaggerUrls; |
174 | 176 | } |
175 | 177 |
|
@@ -374,14 +376,14 @@ public boolean isValidUrl(String url) { |
374 | 376 | } |
375 | 377 | } |
376 | 378 |
|
377 | | - private void put(String urls, List<SwaggerUrl> swaggerUrls, Map<String, Object> params) { |
| 379 | + private void put(String urls, Set<SwaggerUrl> swaggerUrls, Map<String, Object> params) { |
378 | 380 | Comparator<SwaggerUrl> swaggerUrlComparator; |
379 | 381 | if (groupsOrder.isAscending()) |
380 | 382 | swaggerUrlComparator = (h1, h2) -> h1.getName().compareTo(h2.getName()); |
381 | 383 | else |
382 | 384 | swaggerUrlComparator = (h1, h2) -> h2.getName().compareTo(h1.getName()); |
383 | 385 |
|
384 | | - swaggerUrls = swaggerUrls.stream().sorted(swaggerUrlComparator).filter(elt -> StringUtils.isNotEmpty(elt.getUrl())).collect(Collectors.toList()); |
| 386 | + swaggerUrls = swaggerUrls.stream().sorted(swaggerUrlComparator).filter(elt -> StringUtils.isNotEmpty(elt.getUrl())).collect(Collectors.toSet()); |
385 | 387 | if (!CollectionUtils.isEmpty(swaggerUrls)) { |
386 | 388 | params.put(urls, swaggerUrls); |
387 | 389 | } |
@@ -416,6 +418,19 @@ public String getName() { |
416 | 418 | public void setName(String name) { |
417 | 419 | this.name = name; |
418 | 420 | } |
| 421 | + |
| 422 | + @Override |
| 423 | + public boolean equals(Object o) { |
| 424 | + if (this == o) return true; |
| 425 | + if (o == null || getClass() != o.getClass()) return false; |
| 426 | + SwaggerUrl that = (SwaggerUrl) o; |
| 427 | + return name.equals(that.name); |
| 428 | + } |
| 429 | + |
| 430 | + @Override |
| 431 | + public int hashCode() { |
| 432 | + return Objects.hash(name); |
| 433 | + } |
419 | 434 | } |
420 | 435 |
|
421 | 436 | static enum Direction { |
|
0 commit comments