Skip to content

Commit be294ea

Browse files
committed
code cleanup
1 parent ecdcf9b commit be294ea

File tree

1 file changed

+28
-5
lines changed

1 file changed

+28
-5
lines changed

src/main/java/com/github/joschi/jadconfig/documentation/ConfigurationDocsGenerator.java

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,15 @@
1313
import java.io.IOException;
1414
import java.lang.reflect.Field;
1515
import java.nio.charset.StandardCharsets;
16-
import java.util.*;
16+
import java.util.Arrays;
17+
import java.util.Collections;
18+
import java.util.Comparator;
19+
import java.util.List;
20+
import java.util.Locale;
21+
import java.util.Map;
22+
import java.util.Optional;
1723
import java.util.function.Supplier;
24+
import java.util.stream.Collector;
1825
import java.util.stream.Collectors;
1926

2027
public class ConfigurationDocsGenerator {
@@ -88,11 +95,27 @@ private static ConfigurationSection beanToConfigSections(Object configurationBea
8895

8996
@Nonnull
9097
private static List<ConfigurationSection> sectionsFromEntries(List<ConfigurationEntryWithSection> entries) {
91-
final Collection<ConfigurationSection> sections = entries.stream()
98+
return entries.stream()
9299
.filter(ConfigurationEntryWithSection::hasSection)
93-
.collect(Collectors.groupingBy(ConfigurationEntryWithSection::sectionHeading, Collectors.collectingAndThen(Collectors.toList(), list -> new ConfigurationSection(list.iterator().next().sectionHeading(), list.iterator().next().sectionDescription(), Collections.emptyList(), list.stream().map(ConfigurationEntryWithSection::entry).collect(Collectors.toList()))))).values();
94-
return sections.stream()
95-
.sorted(Comparator.comparing(ConfigurationSection::hasPriority, Comparator.reverseOrder())).toList();
100+
.collect(groupBySection())
101+
.values()
102+
.stream()
103+
.sorted(sortByPriority())
104+
.toList();
105+
}
106+
107+
private static Comparator<ConfigurationSection> sortByPriority() {
108+
return Comparator.comparing(ConfigurationSection::hasPriority, Comparator.reverseOrder());
109+
}
110+
111+
private static Collector<ConfigurationEntryWithSection, ?, Map<String, ConfigurationSection>> groupBySection() {
112+
return Collectors.groupingBy(ConfigurationEntryWithSection::sectionHeading, Collectors.collectingAndThen(Collectors.toList(), ConfigurationDocsGenerator::toConfigurationSection));
113+
}
114+
115+
private static ConfigurationSection toConfigurationSection(List<ConfigurationEntryWithSection> list) {
116+
final ConfigurationEntryWithSection section = list.stream().findFirst().orElseThrow(() -> new IllegalArgumentException("No configuration section found but expected!"));
117+
final List<ConfigurationEntry> entries = list.stream().map(ConfigurationEntryWithSection::entry).collect(Collectors.toList());
118+
return new ConfigurationSection(section.sectionHeading(), section.sectionDescription(), Collections.emptyList(), entries);
96119
}
97120

98121
@Nonnull

0 commit comments

Comments
 (0)