Skip to content

Commit 6664b02

Browse files
committed
code cleanup
1 parent ecdcf9b commit 6664b02

File tree

1 file changed

+29
-8
lines changed

1 file changed

+29
-8
lines changed

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

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,19 @@
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 {
21-
/**
22-
* This class is linked from the datanode pom.xml and generates conf.example and csv documentation.
23-
*/
28+
2429
public static void main(String[] args) throws IOException {
2530
final ConfigurationDocsGenerator generator = new ConfigurationDocsGenerator();
2631
generator.generateDocumentation(parseDocumentationFormat(args), ConfigurationBeansSPI::loadConfigurationBeans);
@@ -88,11 +93,27 @@ private static ConfigurationSection beanToConfigSections(Object configurationBea
8893

8994
@Nonnull
9095
private static List<ConfigurationSection> sectionsFromEntries(List<ConfigurationEntryWithSection> entries) {
91-
final Collection<ConfigurationSection> sections = entries.stream()
96+
return entries.stream()
9297
.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();
98+
.collect(groupBySection())
99+
.values()
100+
.stream()
101+
.sorted(sortByPriority())
102+
.toList();
103+
}
104+
105+
private static Comparator<ConfigurationSection> sortByPriority() {
106+
return Comparator.comparing(ConfigurationSection::hasPriority, Comparator.reverseOrder());
107+
}
108+
109+
private static Collector<ConfigurationEntryWithSection, ?, Map<String, ConfigurationSection>> groupBySection() {
110+
return Collectors.groupingBy(ConfigurationEntryWithSection::sectionHeading, Collectors.collectingAndThen(Collectors.toList(), ConfigurationDocsGenerator::toConfigurationSection));
111+
}
112+
113+
private static ConfigurationSection toConfigurationSection(List<ConfigurationEntryWithSection> list) {
114+
final ConfigurationEntryWithSection section = list.stream().findFirst().orElseThrow(() -> new IllegalArgumentException("No configuration section found but expected!"));
115+
final List<ConfigurationEntry> entries = list.stream().map(ConfigurationEntryWithSection::entry).collect(Collectors.toList());
116+
return new ConfigurationSection(section.sectionHeading(), section.sectionDescription(), Collections.emptyList(), entries);
96117
}
97118

98119
@Nonnull

0 commit comments

Comments
 (0)