aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/ftbsc/lll/processor/tools/ASTUtils.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/ftbsc/lll/processor/tools/ASTUtils.java')
-rw-r--r--src/main/java/ftbsc/lll/processor/tools/ASTUtils.java8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/main/java/ftbsc/lll/processor/tools/ASTUtils.java b/src/main/java/ftbsc/lll/processor/tools/ASTUtils.java
index c35e008..fb6806e 100644
--- a/src/main/java/ftbsc/lll/processor/tools/ASTUtils.java
+++ b/src/main/java/ftbsc/lll/processor/tools/ASTUtils.java
@@ -13,6 +13,7 @@ import javax.lang.model.type.MirroredTypeException;
import javax.lang.model.type.TypeMirror;
import java.lang.annotation.Annotation;
import java.util.List;
+import java.util.function.Function;
import java.util.stream.Collectors;
/**
@@ -137,13 +138,14 @@ public class ASTUtils {
* Safely converts a {@link Class} to its fully qualified name. See
* <a href="https://area-51.blog/2009/02/13/getting-class-values-from-annotations-in-an-annotationprocessor">this blogpost</a>
* for more information.
- * @param clazz the class to get the name for
+ * @param ann the annotation containing the class
+ * @param fun the annotation function returning the class
* @return the fully qualified name of the given class
* @since 0.3.0
*/
- public static String getClassFullyQualifiedName(Class<?> clazz) {
+ public static <T extends Annotation> String getClassFullyQualifiedName(T ann, Function<Annotation, Class<?>> fun) {
try {
- return clazz.getCanonicalName();
+ return fun.apply(ann).getCanonicalName();
} catch(MirroredTypeException e) {
return e.getTypeMirror().toString();
}