2022-12-13 23:04:41 +01:00
|
|
|
package io.gitlab.jfronny.gson.compile.processor.core;
|
2022-10-31 20:52:48 +01:00
|
|
|
|
|
|
|
import javax.annotation.processing.AbstractProcessor;
|
|
|
|
import javax.annotation.processing.SupportedAnnotationTypes;
|
|
|
|
import java.util.*;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
public abstract class AbstractProcessor2 extends AbstractProcessor {
|
|
|
|
@Override
|
|
|
|
public Set<String> getSupportedAnnotationTypes() {
|
|
|
|
return Optional.ofNullable(this.getClass().getAnnotation(SupportedAnnotationTypes.class))
|
|
|
|
.map(SupportedAnnotationTypes::value)
|
|
|
|
.map(Set::of)
|
|
|
|
.or(() -> Optional.ofNullable(this.getClass().getAnnotation(SupportedAnnotationTypes2.class))
|
|
|
|
.map(SupportedAnnotationTypes2::value)
|
|
|
|
.map(Arrays::stream)
|
|
|
|
.map(s -> s.map(Class::getCanonicalName).collect(Collectors.toSet()))
|
|
|
|
).orElse(Set.of());
|
|
|
|
}
|
|
|
|
}
|