diff options
author | Reinier Zwitserloot <reinier@zwitserloot.com> | 2017-01-19 23:33:57 +0100 |
---|---|---|
committer | Reinier Zwitserloot <reinier@zwitserloot.com> | 2017-01-19 23:33:57 +0100 |
commit | 5a7f02ca05ecfdd3578b2133de7d66ba7a745b1d (patch) | |
tree | 90935a758faa2e7c474e2b14e7486932f3f5a841 /src/launch | |
parent | 5cbdd357446b0805d337c0b96933a54b50570a3e (diff) | |
download | lombok-5a7f02ca05ecfdd3578b2133de7d66ba7a745b1d.tar.gz lombok-5a7f02ca05ecfdd3578b2133de7d66ba7a745b1d.tar.bz2 lombok-5a7f02ca05ecfdd3578b2133de7d66ba7a745b1d.zip |
Added support for MapStructu’s AstModifyingAnnotationProcessor SPI system. Also removed log statements.
Diffstat (limited to 'src/launch')
-rw-r--r-- | src/launch/lombok/launch/AnnotationProcessor.java | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/src/launch/lombok/launch/AnnotationProcessor.java b/src/launch/lombok/launch/AnnotationProcessor.java index eb1f9b2c..05c900ab 100644 --- a/src/launch/lombok/launch/AnnotationProcessor.java +++ b/src/launch/lombok/launch/AnnotationProcessor.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2014-2016 The Project Lombok Authors. + * Copyright (C) 2014-2017 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 @@ -33,14 +33,23 @@ import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.Element; import javax.lang.model.element.ExecutableElement; import javax.lang.model.element.TypeElement; +import javax.lang.model.type.TypeMirror; + +import org.mapstruct.ap.spi.AstModifyingAnnotationProcessor; class AnnotationProcessorHider { - public static class AnnotationProcessor extends AbstractProcessor { - private static final long START = System.currentTimeMillis(); - - private void log(String txt) { - System.out.printf("***[%3d]: %s\n", System.currentTimeMillis() - START, txt); + public static class AstModificationNotifier implements AstModifyingAnnotationProcessor { + @Override public boolean isTypeComplete(TypeMirror type) { + if (System.getProperty("lombok.disable") != null) return true; + return AstModificationNotifierData.lombokInvoked; } + } + + static class AstModificationNotifierData { + volatile static boolean lombokInvoked = false; + } + + public static class AnnotationProcessor extends AbstractProcessor { private final AbstractProcessor instance = createWrappedInstance(); @Override public Set<String> getSupportedOptions() { @@ -56,15 +65,12 @@ class AnnotationProcessorHider { } @Override public void init(ProcessingEnvironment processingEnv) { - log("Lombok in init"); + AstModificationNotifierData.lombokInvoked = true; instance.init(processingEnv); super.init(processingEnv); } - private int roundCounter = 0; @Override public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) { - roundCounter++; - log("Lombok in round " + roundCounter); return instance.process(annotations, roundEnv); } |