Properly order subclasses to ensure generation
ci/woodpecker/push/woodpecker Pipeline was successful
Details
ci/woodpecker/push/woodpecker Pipeline was successful
Details
This commit is contained in:
parent
943d9134b3
commit
3f86f09606
|
@ -114,7 +114,13 @@ public class GsonCompileProcessor extends AbstractProcessor2 {
|
|||
}
|
||||
}
|
||||
for (var entry : seen.keySet().stream().collect(Collectors.groupingBy(ClassName::packageName)).entrySet()) {
|
||||
Map<List<String>, TypeSpec.Builder> known = entry.value.stream().collect(Collectors.toMap(ClassName::simpleNames, seen::get));
|
||||
Map<List<String>, TypeSpec.Builder> known = entry.value.stream()
|
||||
.collect(Collectors.toMap(
|
||||
ClassName::simpleNames,
|
||||
seen::get,
|
||||
(u, v) -> u,
|
||||
() -> new TreeMap<>(StringListComparator.INSTANCE.reversed())
|
||||
));
|
||||
// Generate additional parent classes
|
||||
for (List<String> klazz : known.keySet().stream().toList()) {
|
||||
List<String> current = new LinkedList<>();
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
package io.gitlab.jfronny.gson.compile.processor;
|
||||
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
public enum StringListComparator implements Comparator<List<String>> {
|
||||
INSTANCE;
|
||||
|
||||
@Override
|
||||
public int compare(List<String> left, List<String> right) {
|
||||
int dif = left.size() - right.size();
|
||||
if (dif != 0) return dif;
|
||||
for (int i = 0; i < left.size(); i++) {
|
||||
dif = left.get(i).compareTo(right.get(i));
|
||||
if (dif != 0) return dif;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue