package io.gitlab.jfronny.gson.compile.processor.util; 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 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()); } }