aboutsummaryrefslogtreecommitdiff
path: root/src/lombok/eclipse/HandlerLibrary.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/lombok/eclipse/HandlerLibrary.java')
-rw-r--r--src/lombok/eclipse/HandlerLibrary.java14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/lombok/eclipse/HandlerLibrary.java b/src/lombok/eclipse/HandlerLibrary.java
index 10180963..37610a33 100644
--- a/src/lombok/eclipse/HandlerLibrary.java
+++ b/src/lombok/eclipse/HandlerLibrary.java
@@ -12,6 +12,7 @@ import java.util.ServiceConfigurationError;
import java.util.ServiceLoader;
import lombok.core.AnnotationValues;
+import lombok.core.PrintAST;
import lombok.core.SpiLoadUtil;
import lombok.core.TypeLibrary;
import lombok.core.TypeResolver;
@@ -44,6 +45,8 @@ public class HandlerLibrary {
new HashMap<String, AnnotationHandlerContainer<?>>();
private Collection<EclipseASTVisitor> visitorHandlers = new ArrayList<EclipseASTVisitor>();
+
+ private boolean skipPrintAST;
public static HandlerLibrary load() {
HandlerLibrary lib = new HandlerLibrary();
@@ -93,6 +96,8 @@ public class HandlerLibrary {
if ( rawType == null ) return false;
boolean handled = false;
for ( String fqn : resolver.findTypeMatches(annotationNode, toQualifiedName(annotation.type.getTypeName())) ) {
+ boolean isPrintAST = fqn.equals(PrintAST.class.getName());
+ if ( isPrintAST == skipPrintAST ) continue;
AnnotationHandlerContainer<?> container = annotationHandlers.get(fqn);
if ( container == null ) continue;
@@ -100,6 +105,7 @@ public class HandlerLibrary {
try {
handled |= container.handle(annotation, annotationNode);
} catch ( AnnotationValueDecodeFail fail ) {
+ fail.printStackTrace(); //TODO debug!
fail.owner.setError(fail.getMessage(), fail.idx);
} catch ( Throwable t ) {
Eclipse.error(ast, String.format("Lombok annotation handler %s failed", container.handler.getClass()), t);
@@ -117,4 +123,12 @@ public class HandlerLibrary {
String.format("Lombok visitor handler %s failed", visitor.getClass()), t);
}
}
+
+ public void skipPrintAST() {
+ skipPrintAST = true;
+ }
+
+ public void skipAllButPrintAST() {
+ skipPrintAST = false;
+ }
}