Skip to content

Commit a655354

Browse files
committed
Made logger order alphabetical,
changed getLoggedTypes() to be only called once
1 parent 92cc005 commit a655354

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

epilogue-processor/src/main/java/edu/wpi/first/epilogue/processor/AnnotationProcessor.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,7 @@
88
import edu.wpi.first.epilogue.Logged;
99
import edu.wpi.first.epilogue.NotLogged;
1010
import java.io.IOException;
11-
import java.util.ArrayList;
12-
import java.util.Comparator;
13-
import java.util.HashMap;
14-
import java.util.List;
15-
import java.util.Map;
16-
import java.util.Set;
11+
import java.util.*;
1712
import java.util.stream.Collectors;
1813
import java.util.stream.Stream;
1914
import javax.annotation.processing.AbstractProcessor;
@@ -91,6 +86,8 @@ public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment
9186
"Custom logger classes should have a @CustomLoggerFor annotation",
9287
e);
9388
});
89+
90+
var loggedTypes = getLoggedTypes(roundEnv);
9491

9592
// Handlers are declared in order of priority. If an element could be logged in more than one
9693
// way (eg a class implements both Sendable and StructSerializable), the order of the handlers
@@ -99,7 +96,7 @@ public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment
9996
List.of(
10097
new LoggableHandler(
10198
processingEnv,
102-
getLoggedTypes(roundEnv)), // prioritize epilogue logging over Sendable
99+
loggedTypes), // prioritize epilogue logging over Sendable
103100
new ConfiguredLoggerHandler(
104101
processingEnv, customLoggers), // then customized logging configs
105102
new ArrayHandler(processingEnv),
@@ -119,7 +116,7 @@ public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment
119116
.findAny()
120117
.ifPresent(
121118
epilogue -> {
122-
processEpilogue(roundEnv, epilogue);
119+
processEpilogue(roundEnv, epilogue, loggedTypes);
123120
});
124121

125122
return false;
@@ -147,7 +144,8 @@ private Set<TypeElement> getLoggedTypes(RoundEnvironment roundEnv) {
147144
.map(e -> e.getEnclosingElement())
148145
.filter(e -> e instanceof TypeElement)
149146
.map(e -> (TypeElement) e))
150-
.collect(Collectors.toSet()); // Collect to a set to avoid duplicates
147+
.sorted(Comparator.comparing(e -> e.getSimpleName().toString()))
148+
.collect(Collectors.toCollection(LinkedHashSet::new)); // Collect to a set to avoid duplicates
151149
}
152150

153151
private boolean validateFields(Set<? extends Element> annotatedElements) {
@@ -356,7 +354,11 @@ private Map<DeclaredType, DeclaredType> processCustomLoggers(
356354
return customLoggers;
357355
}
358356

359-
private void processEpilogue(RoundEnvironment roundEnv, TypeElement epilogueAnnotation) {
357+
private void processEpilogue(
358+
RoundEnvironment roundEnv,
359+
TypeElement epilogueAnnotation,
360+
Set<TypeElement> loggedTypes
361+
) {
360362
var annotatedElements = roundEnv.getElementsAnnotatedWith(epilogueAnnotation);
361363

362364
List<String> loggerClassNames = new ArrayList<>();
@@ -374,9 +376,7 @@ private void processEpilogue(RoundEnvironment roundEnv, TypeElement epilogueAnno
374376
return;
375377
}
376378

377-
var classes = getLoggedTypes(roundEnv);
378-
379-
for (TypeElement clazz : classes) {
379+
for (TypeElement clazz : loggedTypes) {
380380
try {
381381
warnOfNonLoggableElements(clazz);
382382
m_loggerGenerator.writeLoggerFile(clazz);

0 commit comments

Comments
 (0)