Philipp Eichhorn's patch to allow non-top-level annotations to work with lombok's annotation framework.

This commit is contained in:
Reinier Zwitserloot committed 2012-04-03 00:04:31 +02:00
1 parent c900526ebf
commit 5e0e78d57e
3 files changed
+8 -5

No files matched your search

+2 -1
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2009-2011 The Project Lombok Authors.
* Copyright (C) 2009-2012 The Project Lombok Authors.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -76,6 +76,7 @@ public class TypeLibrary {
if (idx == -1) throw new IllegalArgumentException(
"Only fully qualified types are allowed (and stuff in the default package is not palatable to us either!)");
fullyQualifiedTypeName = fullyQualifiedTypeName.replace("$", ".");
final String simpleName = fullyQualifiedTypeName.substring(idx +1);
final String packageName = fullyQualifiedTypeName.substring(0, idx);
+3 -2
View File
@@ -113,8 +113,9 @@ public class HandlerLibrary {
Class<? extends Annotation> annotationClass =
SpiLoadUtil.findAnnotationClass(handler.getClass(), EclipseAnnotationHandler.class);
AnnotationHandlerContainer<?> container = new AnnotationHandlerContainer(handler, annotationClass);
if (lib.annotationHandlers.put(container.annotationClass.getName(), container) != null) {
error(null, "Duplicate handlers for annotation type: " + container.annotationClass.getName(), null);
String annotationClassName = container.annotationClass.getName().replace("$", ".");
if (lib.annotationHandlers.put(annotationClassName, container) != null) {
error(null, "Duplicate handlers for annotation type: " + annotationClassName, null);
}
lib.typeLibrary.addType(container.annotationClass.getName());
} catch (Throwable t) {
+3 -2
View File
@@ -108,8 +108,9 @@ public class HandlerLibrary {
Class<? extends Annotation> annotationClass =
SpiLoadUtil.findAnnotationClass(handler.getClass(), JavacAnnotationHandler.class);
AnnotationHandlerContainer<?> container = new AnnotationHandlerContainer(handler, annotationClass);
if (lib.annotationHandlers.put(container.annotationClass.getName(), container) != null) {
lib.javacWarning("Duplicate handlers for annotation type: " + container.annotationClass.getName());
String annotationClassName = container.annotationClass.getName().replace("$", ".");
if (lib.annotationHandlers.put(annotationClassName, container) != null) {
lib.javacWarning("Duplicate handlers for annotation type: " + annotationClassName);
}
lib.typeLibrary.addType(container.annotationClass.getName());
}