gson-compile/gson-compile-processor/src/main/java/io/gitlab/jfronny/gson/compile/processor/util/AbstractProcessor2.java

21 lines
904 B
Java

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<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());
}
}