in dataenum-processor/src/main/java/com/spotify/dataenum/processor/parser/MembersParser.java [130:156]
public ClassifiedElements get(List<? extends Element> elements) {
// predicate: isValue
final Predicate<ExecutableElement> isValue =
x -> ValueParser.isValueSpecMarker(x.getReturnType(), ctx.get());
// predicate: isAdtMethod
final Predicate<ExecutableElement> isAdtMethod =
x -> x.getModifiers().contains(Modifier.DEFAULT);
final Map<String, ? extends List<? extends Element>> xs =
elements
.stream()
.collect(
Collectors.groupingBy(
e -> {
if (e instanceof ExecutableElement) {
final ExecutableElement el = (ExecutableElement) e;
if (isValue.test(el)) return VALUE;
else if (isAdtMethod.test(el)) return ADT_METHOD;
else return NOT_SUPPORTED_METHOD;
} else {
return NOT_SUPPORTED_TYPE;
}
}));
return new ClassifiedElements(xs);
}