From 9e4292dae4ab63439315b3a4015085fe4913170e Mon Sep 17 00:00:00 2001 From: Roel Spilker Date: Fri, 6 Jan 2017 01:05:16 +0100 Subject: add `@lombok.Generated` to generated classes, methods and fields --- doc/changelog.markdown | 1 + src/core/lombok/ConfigurationKeys.java | 25 ++++++- src/core/lombok/core/handlers/HandlerUtil.java | 8 ++- .../eclipse/handlers/EclipseHandlerUtil.java | 24 ++++--- .../lombok/javac/handlers/JavacHandlerUtil.java | 19 ++++-- .../resource/after-delombok/Accessors.java | 16 +++++ .../after-delombok/AccessorsConfiguration.java | 4 ++ .../after-delombok/BuilderChainAndFluent.java | 8 +++ .../resource/after-delombok/BuilderComplex.java | 13 ++++ .../after-delombok/BuilderInstanceMethod.java | 13 ++++ .../resource/after-delombok/BuilderSimple.java | 10 +++ .../BuilderSingularGuavaListsSets.java | 26 ++++++++ .../after-delombok/BuilderSingularGuavaMaps.java | 18 +++++ .../after-delombok/BuilderSingularLists.java | 18 +++++ .../after-delombok/BuilderSingularNoAuto.java | 18 +++++ .../BuilderSingularRedirectToGuava.java | 18 +++++ .../after-delombok/BuilderSingularSets.java | 22 +++++++ .../BuilderSingularWithPrefixes.java | 10 +++ .../resource/after-delombok/BuilderValueData.java | 21 ++++++ .../after-delombok/BuilderWithAccessors.java | 14 ++++ .../BuilderWithExistingBuilderClass.java | 8 +++ .../after-delombok/BuilderWithToBuilder.java | 37 +++++++++++ .../after-delombok/BuilderWithTolerate.java | 7 ++ .../after-delombok/ClassNamedAfterGetter.java | 1 + .../after-delombok/CommentsInterspersed.java | 1 + .../ConflictingStaticConstructorNames.java | 5 ++ .../resource/after-delombok/Constructors.java | 13 ++++ .../after-delombok/ConstructorsConfiguration.java | 2 + .../after-delombok/ConstructorsWithAccessors.java | 1 + .../resource/after-delombok/DataConfiguration.java | 6 ++ .../resource/after-delombok/DataExtended.java | 7 ++ .../resource/after-delombok/DataIgnore.java | 6 ++ .../resource/after-delombok/DataOnEnum.java | 3 + .../resource/after-delombok/DataOnLocalClass.java | 21 ++++++ .../resource/after-delombok/DataPlain.java | 38 +++++++++++ .../resource/after-delombok/DataWithGetter.java | 10 +++ .../after-delombok/DataWithGetterNone.java | 7 ++ .../resource/after-delombok/DelegateOnGetter.java | 3 + .../after-delombok/DelegateOnGetterNone.java | 2 + .../resource/after-delombok/DelegateOnMethods.java | 2 + .../after-delombok/DelegateTypesAndExcludes.java | 4 ++ .../after-delombok/DelegateWithDeprecated.java | 3 + .../after-delombok/DelegateWithVarargs.java | 4 ++ .../resource/after-delombok/EncodingUsAscii.java | 1 + .../resource/after-delombok/EncodingUtf8.java | 1 + .../resource/after-delombok/EqualsAndHashCode.java | 11 ++++ .../EqualsAndHashCodeConfigKeys1.java | 6 ++ .../EqualsAndHashCodeConfigKeys2.java | 6 ++ .../EqualsAndHashCodeWithExistingMethods.java | 2 + .../EqualsAndHashCodeWithOnParam.java | 3 + .../after-delombok/EqualsAndHashcodeOfExclude.java | 4 ++ ...efaultsViaConfigAndRequiredArgsConstructor.java | 1 + .../after-delombok/GenerateSuppressFBWarnings.java | 1 + .../after-delombok/GeneratedGlobalOff.java | 7 ++ .../after-delombok/GeneratedGlobalOffJavaxOn.java | 8 +++ .../after-delombok/GeneratedGlobalOffLombokOn.java | 8 +++ .../resource/after-delombok/GeneratedJavaxOff.java | 8 +++ .../after-delombok/GeneratedLombokOff.java | 8 +++ .../resource/after-delombok/GetterAccessLevel.java | 9 +++ .../after-delombok/GetterAlreadyExists.java | 10 +++ .../resource/after-delombok/GetterBoolean.java | 4 ++ .../resource/after-delombok/GetterDeprecated.java | 2 + .../resource/after-delombok/GetterEnum.java | 3 + .../resource/after-delombok/GetterLazy.java | 1 + .../resource/after-delombok/GetterLazyBoolean.java | 6 ++ .../after-delombok/GetterLazyEahcToString.java | 8 +++ .../resource/after-delombok/GetterLazyInvalid.java | 1 + .../resource/after-delombok/GetterLazyNative.java | 9 +++ .../after-delombok/GetterLazyTransient.java | 2 + .../resource/after-delombok/GetterNone.java | 1 + .../resource/after-delombok/GetterOnClass.java | 8 +++ .../resource/after-delombok/GetterOnMethod.java | 3 + .../after-delombok/GetterOnMethodErrors.java | 1 + .../after-delombok/GetterOnMethodErrors2.java | 8 +++ .../resource/after-delombok/GetterOnStatic.java | 2 + .../resource/after-delombok/GetterPlain.java | 2 + .../after-delombok/GetterSetterJavadoc.java | 15 +++++ .../resource/after-delombok/GetterWithDollar.java | 3 + .../resource/after-delombok/InjectField.java | 7 ++ .../resource/after-delombok/LoggerCommons.java | 3 + .../resource/after-delombok/LoggerConfig.java | 1 + .../resource/after-delombok/LoggerJBossLog.java | 4 ++ .../resource/after-delombok/LoggerJul.java | 3 + .../resource/after-delombok/LoggerLog4j.java | 3 + .../resource/after-delombok/LoggerLog4j2.java | 3 + .../resource/after-delombok/LoggerSlf4j.java | 4 ++ .../resource/after-delombok/LoggerSlf4jTypes.java | 3 + .../after-delombok/LoggerSlf4jWithPackage.java | 2 + .../resource/after-delombok/LoggerXSlf4j.java | 3 + .../resource/after-delombok/MixGetterVal.java | 1 + .../resource/after-delombok/MultiFieldGetter.java | 4 ++ .../after-delombok/NoArgsConstructorForce.java | 1 + .../resource/after-delombok/NonNullPlain.java | 7 ++ .../NonNullWithAlternateException.java | 1 + .../resource/after-delombok/SetterAccessLevel.java | 5 ++ .../after-delombok/SetterAlreadyExists.java | 2 + .../resource/after-delombok/SetterDeprecated.java | 2 + .../resource/after-delombok/SetterOnClass.java | 8 +++ .../after-delombok/SetterOnMethodOnParam.java | 3 + .../resource/after-delombok/SetterOnStatic.java | 2 + .../resource/after-delombok/SetterPlain.java | 2 + .../resource/after-delombok/SetterWithDollar.java | 5 ++ .../after-delombok/SimpleTypeResolution.java | 1 + .../resource/after-delombok/SynchronizedPlain.java | 2 + .../after-delombok/ToStringConfiguration.java | 5 ++ .../resource/after-delombok/ToStringInner.java | 4 ++ .../resource/after-delombok/ToStringPlain.java | 2 + .../resource/after-delombok/Tolerate.java | 9 +++ .../after-delombok/TrickyTypeResolution.java | 1 + .../resource/after-delombok/UtilityClass.java | 4 ++ .../resource/after-delombok/ValueCallSuper.java | 5 ++ .../resource/after-delombok/ValueExperimental.java | 8 +++ .../ValueExperimentalStarImport.java | 4 ++ .../resource/after-delombok/ValuePlain.java | 19 ++++++ .../resource/after-delombok/ValueStaticField.java | 4 ++ .../resource/after-delombok/WitherAccessLevel.java | 5 ++ .../after-delombok/WitherAlreadyExists.java | 2 + .../WitherAndAllArgsConstructor.java | 3 + .../resource/after-delombok/WitherDeprecated.java | 2 + .../resource/after-delombok/WitherOnClass.java | 6 ++ .../resource/after-delombok/WitherPlain.java | 2 + .../after-delombok/WitherWithAbstract.java | 1 + .../after-delombok/WitherWithGenerics.java | 3 + test/transform/resource/after-ecj/Accessors.java | 32 ++++----- .../resource/after-ecj/AccessorsConfiguration.java | 8 +-- .../resource/after-ecj/BuilderChainAndFluent.java | 16 ++--- .../resource/after-ecj/BuilderComplex.java | 26 ++++---- .../resource/after-ecj/BuilderInstanceMethod.java | 26 ++++---- .../resource/after-ecj/BuilderSimple.java | 20 +++--- .../after-ecj/BuilderSingularGuavaListsSets.java | 52 +++++++-------- .../after-ecj/BuilderSingularGuavaMaps.java | 36 +++++----- .../resource/after-ecj/BuilderSingularLists.java | 36 +++++----- .../resource/after-ecj/BuilderSingularMaps.java | 52 +++++++-------- .../resource/after-ecj/BuilderSingularNoAuto.java | 36 +++++----- .../after-ecj/BuilderSingularRedirectToGuava.java | 36 +++++----- .../resource/after-ecj/BuilderSingularSets.java | 44 ++++++------- .../after-ecj/BuilderSingularWithPrefixes.java | 20 +++--- .../resource/after-ecj/BuilderValueData.java | 42 ++++++------ .../resource/after-ecj/BuilderWithAccessors.java | 28 ++++---- .../after-ecj/BuilderWithExistingBuilderClass.java | 16 ++--- .../resource/after-ecj/BuilderWithToBuilder.java | 74 ++++++++++----------- .../resource/after-ecj/BuilderWithTolerate.java | 14 ++-- .../resource/after-ecj/ClassNamedAfterGetter.java | 2 +- .../resource/after-ecj/CommentsInterspersed.java | 2 +- .../ConflictingStaticConstructorNames.java | 10 +-- .../transform/resource/after-ecj/Constructors.java | 26 ++++---- .../after-ecj/ConstructorsConfiguration.java | 4 +- .../after-ecj/ConstructorsWithAccessors.java | 2 +- .../resource/after-ecj/DataConfiguration.java | 12 ++-- .../transform/resource/after-ecj/DataExtended.java | 14 ++-- test/transform/resource/after-ecj/DataIgnore.java | 12 ++-- test/transform/resource/after-ecj/DataOnEnum.java | 6 +- .../resource/after-ecj/DataOnLocalClass.java | 42 ++++++------ test/transform/resource/after-ecj/DataPlain.java | 76 +++++++++++----------- .../resource/after-ecj/DataWithGetter.java | 20 +++--- .../resource/after-ecj/DataWithGetterNone.java | 14 ++-- .../resource/after-ecj/DelegateOnGetter.java | 6 +- .../resource/after-ecj/DelegateOnGetterNone.java | 4 +- .../resource/after-ecj/DelegateOnMethods.java | 2 +- .../after-ecj/DelegateTypesAndExcludes.java | 4 +- .../resource/after-ecj/DelegateWithDeprecated.java | 6 +- .../resource/after-ecj/DelegateWithVarargs.java | 8 +-- .../resource/after-ecj/EqualsAndHashCode.java | 22 +++---- .../after-ecj/EqualsAndHashCodeConfigKeys1.java | 12 ++-- .../after-ecj/EqualsAndHashCodeConfigKeys2.java | 12 ++-- .../EqualsAndHashCodeWithExistingMethods.java | 4 +- .../after-ecj/EqualsAndHashCodeWithOnParam.java | 6 +- .../after-ecj/EqualsAndHashcodeOfExclude.java | 8 +-- ...efaultsViaConfigAndRequiredArgsConstructor.java | 2 +- .../after-ecj/GenerateSuppressFBWarnings.java | 2 +- .../resource/after-ecj/GeneratedGlobalOff.java | 9 +++ .../after-ecj/GeneratedGlobalOffJavaxOn.java | 9 +++ .../after-ecj/GeneratedGlobalOffLombokOn.java | 9 +++ .../resource/after-ecj/GeneratedJavaxOff.java | 9 +++ .../resource/after-ecj/GeneratedLombokOff.java | 9 +++ .../resource/after-ecj/GetterAccessLevel.java | 18 ++--- .../resource/after-ecj/GetterAlreadyExists.java | 20 +++--- .../resource/after-ecj/GetterBoolean.java | 8 +-- .../resource/after-ecj/GetterDeprecated.java | 4 +- test/transform/resource/after-ecj/GetterEnum.java | 6 +- test/transform/resource/after-ecj/GetterLazy.java | 2 +- .../resource/after-ecj/GetterLazyBoolean.java | 12 ++-- .../resource/after-ecj/GetterLazyEahcToString.java | 12 ++-- .../resource/after-ecj/GetterLazyInvalid.java | 2 +- .../resource/after-ecj/GetterLazyNative.java | 18 ++--- .../resource/after-ecj/GetterLazyTransient.java | 4 +- test/transform/resource/after-ecj/GetterNone.java | 2 +- .../resource/after-ecj/GetterOnClass.java | 16 ++--- .../resource/after-ecj/GetterOnMethod.java | 6 +- .../resource/after-ecj/GetterOnMethodErrors.java | 2 +- .../resource/after-ecj/GetterOnMethodErrors2.java | 16 ++--- .../resource/after-ecj/GetterOnStatic.java | 4 +- test/transform/resource/after-ecj/GetterPlain.java | 4 +- .../resource/after-ecj/GetterSetterJavadoc.java | 30 ++++----- .../resource/after-ecj/GetterWithDollar.java | 6 +- .../transform/resource/after-ecj/MixGetterVal.java | 2 +- .../resource/after-ecj/MultiFieldGetter.java | 8 +-- .../resource/after-ecj/NoArgsConstructorForce.java | 2 +- .../transform/resource/after-ecj/NonNullPlain.java | 14 ++-- .../after-ecj/NonNullWithAlternateException.java | 2 +- .../resource/after-ecj/SetterAccessLevel.java | 10 +-- .../resource/after-ecj/SetterAlreadyExists.java | 4 +- .../resource/after-ecj/SetterDeprecated.java | 4 +- .../resource/after-ecj/SetterOnClass.java | 16 ++--- .../resource/after-ecj/SetterOnMethod.java | 12 ++-- .../resource/after-ecj/SetterOnMethodOnParam.java | 6 +- .../resource/after-ecj/SetterOnParam.java | 12 ++-- .../after-ecj/SetterOnParamAndOnMethod.java | 2 +- .../resource/after-ecj/SetterOnStatic.java | 4 +- test/transform/resource/after-ecj/SetterPlain.java | 4 +- .../resource/after-ecj/SetterWithDollar.java | 6 +- .../resource/after-ecj/SimpleTypeResolution.java | 2 +- .../resource/after-ecj/ToStringConfiguration.java | 10 +-- .../resource/after-ecj/ToStringInner.java | 8 +-- .../resource/after-ecj/ToStringPlain.java | 4 +- test/transform/resource/after-ecj/Tolerate.java | 10 +-- .../resource/after-ecj/TrickyTypeResolution.java | 2 +- .../transform/resource/after-ecj/UtilityClass.java | 8 +-- .../resource/after-ecj/ValueCallSuper.java | 10 +-- .../resource/after-ecj/ValueExperimental.java | 16 ++--- .../after-ecj/ValueExperimentalStarImport.java | 8 +-- test/transform/resource/after-ecj/ValuePlain.java | 38 +++++------ .../resource/after-ecj/ValueStaticField.java | 8 +-- .../resource/after-ecj/WitherAccessLevel.java | 10 +-- .../resource/after-ecj/WitherAlreadyExists.java | 4 +- .../after-ecj/WitherAndAllArgsConstructor.java | 6 +- .../resource/after-ecj/WitherDeprecated.java | 4 +- .../resource/after-ecj/WitherOnClass.java | 12 ++-- test/transform/resource/after-ecj/WitherPlain.java | 4 +- .../resource/after-ecj/WitherWithAbstract.java | 2 +- .../resource/after-ecj/WitherWithGenerics.java | 6 +- .../resource/before/GeneratedGlobalOff.java | 5 ++ .../resource/before/GeneratedGlobalOffJavaxOn.java | 6 ++ .../before/GeneratedGlobalOffLombokOn.java | 6 ++ .../resource/before/GeneratedJavaxOff.java | 5 ++ .../resource/before/GeneratedLombokOff.java | 5 ++ .../messages-idempotent/NonNullPlain.java.messages | 4 +- 237 files changed, 1610 insertions(+), 733 deletions(-) create mode 100644 test/transform/resource/after-delombok/GeneratedGlobalOff.java create mode 100644 test/transform/resource/after-delombok/GeneratedGlobalOffJavaxOn.java create mode 100644 test/transform/resource/after-delombok/GeneratedGlobalOffLombokOn.java create mode 100644 test/transform/resource/after-delombok/GeneratedJavaxOff.java create mode 100644 test/transform/resource/after-delombok/GeneratedLombokOff.java create mode 100644 test/transform/resource/after-ecj/GeneratedGlobalOff.java create mode 100644 test/transform/resource/after-ecj/GeneratedGlobalOffJavaxOn.java create mode 100644 test/transform/resource/after-ecj/GeneratedGlobalOffLombokOn.java create mode 100644 test/transform/resource/after-ecj/GeneratedJavaxOff.java create mode 100644 test/transform/resource/after-ecj/GeneratedLombokOff.java create mode 100644 test/transform/resource/before/GeneratedGlobalOff.java create mode 100644 test/transform/resource/before/GeneratedGlobalOffJavaxOn.java create mode 100644 test/transform/resource/before/GeneratedGlobalOffLombokOn.java create mode 100644 test/transform/resource/before/GeneratedJavaxOff.java create mode 100644 test/transform/resource/before/GeneratedLombokOff.java diff --git a/doc/changelog.markdown b/doc/changelog.markdown index d5aa7ba1..47fdda9a 100644 --- a/doc/changelog.markdown +++ b/doc/changelog.markdown @@ -3,6 +3,7 @@ Lombok Changelog ### v1.16.13 "Edgy Guinea Pig" * v1.16.12 is the latest stable release of Project Lombok. +* FEATURE: Generated classes, methods and fields are now also annotated with `@lombok.Generated`[Issue #1014](https://github.com/rzwitserloot/lombok/issues/1014) ### v1.16.12 (December 5th, 2016) * FEATURE: `var` is the mutable sister of `val`. For now experimental, and opt-in using `ALLOW` in the flagUsage configuration key. Thanks for the contribution, Bulgakov Alexander. diff --git a/src/core/lombok/ConfigurationKeys.java b/src/core/lombok/ConfigurationKeys.java index 132bde8d..ff17ca09 100644 --- a/src/core/lombok/ConfigurationKeys.java +++ b/src/core/lombok/ConfigurationKeys.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013-2014 The Project Lombok Authors. + * Copyright (C) 2013-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 @@ -41,10 +41,31 @@ public class ConfigurationKeys { /** * lombok configuration: {@code lombok.addGeneratedAnnotation} = {@code true} | {@code false}. * - * If unset or {@code true}, lombok generates {@code @javax.annotation.Generated("lombok")} on all fields, methods, and types that are generated. + * If unset or {@code true}, lombok generates various annotations to mark generated code like {@code @javax.annotation.Generated("lombok")} and {@code @lombok.Generated}. + * + * @see ConfigurationKeys#ADD_JAVAX_GENERATED_ANNOTATIONS + * @see ConfigurationKeys#ADD_LOMBOK_GENERATED_ANNOTATIONS */ public static final ConfigurationKey ADD_GENERATED_ANNOTATIONS = new ConfigurationKey("lombok.addGeneratedAnnotation", "Generate @javax.annotation.Generated on all generated code (default: true).") {}; + /** + * lombok configuration: {@code lombok.addJavaxGeneratedAnnotation} = {@code true} | {@code false}. + * + * If unset or {@code true}, lombok generates {@code @javax.annotation.Generated("lombok")} on all fields, methods, and types that are generated, unless {@code lombok.addGeneratedAnnotation} is set to {@code false}. + * + * @see ConfigurationKeys#ADD_GENERATED_ANNOTATIONS + */ + public static final ConfigurationKey ADD_JAVAX_GENERATED_ANNOTATIONS = new ConfigurationKey("lombok.addJavaxGeneratedAnnotation", "Generate @javax.annotation.Generated on all generated code (default: follow lombok.addGeneratedAnnotation).") {}; + + /** + * lombok configuration: {@code lombok.addLombokGeneratedAnnotation} = {@code true} | {@code false}. + * + * If unset or {@code true}, lombok generates {@code @lombok.Generated} on all fields, methods, and types that are generated, unless {@code lombok.addGeneratedAnnotation} is set to {@code false}. + * + * @see ConfigurationKeys#ADD_GENERATED_ANNOTATIONS + */ + public static final ConfigurationKey ADD_LOMBOK_GENERATED_ANNOTATIONS = new ConfigurationKey("lombok.addLombokGeneratedAnnotation", "Generate @lombok.Generated on all generated code (default: follow lombok.addGeneratedAnnotation).") {}; + /** * lombok configuration: {@code lombok.extern.findbugs.addSuppressFBWarnings} = {@code true} | {@code false}. * diff --git a/src/core/lombok/core/handlers/HandlerUtil.java b/src/core/lombok/core/handlers/HandlerUtil.java index ef4ac7d6..a05578d4 100644 --- a/src/core/lombok/core/handlers/HandlerUtil.java +++ b/src/core/lombok/core/handlers/HandlerUtil.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013-2015 The Project Lombok Authors. + * Copyright (C) 2013-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 @@ -109,6 +109,12 @@ public class HandlerUtil { } } + public static boolean shouldAddGenerated(LombokNode node, ConfigurationKey key) { + Boolean add = node.getAst().readConfiguration(key); + if (add != null) return add; + return !Boolean.FALSE.equals(node.getAst().readConfiguration(ConfigurationKeys.ADD_GENERATED_ANNOTATIONS)); + } + public static void handleExperimentalFlagUsage(LombokNode node, ConfigurationKey key, String featureName) { handleFlagUsage(node, key, featureName, ConfigurationKeys.EXPERIMENTAL_FLAG_USAGE, "any lombok.experimental feature"); } diff --git a/src/core/lombok/eclipse/handlers/EclipseHandlerUtil.java b/src/core/lombok/eclipse/handlers/EclipseHandlerUtil.java index 59d8f587..6ef413ec 100644 --- a/src/core/lombok/eclipse/handlers/EclipseHandlerUtil.java +++ b/src/core/lombok/eclipse/handlers/EclipseHandlerUtil.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2015 The Project Lombok Authors. + * Copyright (C) 2009-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 @@ -1329,6 +1329,7 @@ public class EclipseHandlerUtil { private static final char[] GENERATED_CODE = "generated code".toCharArray(); private static final char[] LOMBOK = "lombok".toCharArray(); private static final char[][] JAVAX_ANNOTATION_GENERATED = Eclipse.fromQualifiedName("javax.annotation.Generated"); + private static final char[][] LOMBOK_GENERATED = Eclipse.fromQualifiedName("lombok.Generated"); private static final char[][] EDU_UMD_CS_FINDBUGS_ANNOTATIONS_SUPPRESSFBWARNINGS = Eclipse.fromQualifiedName("edu.umd.cs.findbugs.annotations.SuppressFBWarnings"); public static Annotation[] addSuppressWarningsAll(EclipseNode node, ASTNode source, Annotation[] originalAnnotationArray) { @@ -1343,24 +1344,29 @@ public class EclipseHandlerUtil { } public static Annotation[] addGenerated(EclipseNode node, ASTNode source, Annotation[] originalAnnotationArray) { - if (Boolean.FALSE.equals(node.getAst().readConfiguration(ConfigurationKeys.ADD_GENERATED_ANNOTATIONS))) return originalAnnotationArray; - return addAnnotation(source, originalAnnotationArray, JAVAX_ANNOTATION_GENERATED, new StringLiteral(LOMBOK, 0, 0, 0)); + Annotation[] result = originalAnnotationArray; + if (HandlerUtil.shouldAddGenerated(node, ConfigurationKeys.ADD_JAVAX_GENERATED_ANNOTATIONS)) { + result = addAnnotation(source, result, JAVAX_ANNOTATION_GENERATED, new StringLiteral(LOMBOK, 0, 0, 0)); + } + if (HandlerUtil.shouldAddGenerated(node, ConfigurationKeys.ADD_LOMBOK_GENERATED_ANNOTATIONS)) { + result = addAnnotation(source, result, LOMBOK_GENERATED, null); + } + return result; } private static Annotation[] addAnnotation(ASTNode source, Annotation[] originalAnnotationArray, char[][] annotationTypeFqn, ASTNode arg) { char[] simpleName = annotationTypeFqn[annotationTypeFqn.length - 1]; if (originalAnnotationArray != null) for (Annotation ann : originalAnnotationArray) { - char[] lastToken = null; - if (ann.type instanceof QualifiedTypeReference) { char[][] t = ((QualifiedTypeReference) ann.type).tokens; - lastToken = t[t.length - 1]; - } else if (ann.type instanceof SingleTypeReference) { - lastToken = ((SingleTypeReference) ann.type).token; + if (Arrays.deepEquals(t, annotationTypeFqn)) return originalAnnotationArray; } - if (lastToken != null && Arrays.equals(simpleName, lastToken)) return originalAnnotationArray; + if (ann.type instanceof SingleTypeReference) { + char[] lastToken = ((SingleTypeReference) ann.type).token; + if (Arrays.equals(lastToken, simpleName)) return originalAnnotationArray; + } } int pS = source.sourceStart, pE = source.sourceEnd; diff --git a/src/core/lombok/javac/handlers/JavacHandlerUtil.java b/src/core/lombok/javac/handlers/JavacHandlerUtil.java index efa67604..98c6a340 100644 --- a/src/core/lombok/javac/handlers/JavacHandlerUtil.java +++ b/src/core/lombok/javac/handlers/JavacHandlerUtil.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2015 The Project Lombok Authors. + * Copyright (C) 2009-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 @@ -999,9 +999,12 @@ public class JavacHandlerUtil { public static void addGenerated(JCModifiers mods, JavacNode node, int pos, JCTree source, Context context) { if (!LombokOptionsFactory.getDelombokOptions(context).getFormatPreferences().generateGenerated()) return; - if (!Boolean.FALSE.equals(node.getAst().readConfiguration(ConfigurationKeys.ADD_GENERATED_ANNOTATIONS))) { + if (HandlerUtil.shouldAddGenerated(node, ConfigurationKeys.ADD_JAVAX_GENERATED_ANNOTATIONS)) { addAnnotation(mods, node, pos, source, context, "javax.annotation.Generated", node.getTreeMaker().Literal("lombok")); } + if (HandlerUtil.shouldAddGenerated(node, ConfigurationKeys.ADD_LOMBOK_GENERATED_ANNOTATIONS)) { + addAnnotation(mods, node, pos, source, context, "lombok.Generated", null); + } } private static void addAnnotation(JCModifiers mods, JavacNode node, int pos, JCTree source, Context context, String annotationTypeFqn, JCExpression arg) { @@ -1015,12 +1018,16 @@ public class JavacHandlerUtil { for (JCAnnotation ann : mods.annotations) { JCTree annType = ann.getAnnotationType(); - Name lastPart = null; - if (annType instanceof JCIdent) lastPart = ((JCIdent) annType).name; - else if (annType instanceof JCFieldAccess) lastPart = ((JCFieldAccess) annType).name; + if (annType instanceof JCIdent) { + Name lastPart = ((JCIdent) annType).name; + if (lastPart.contentEquals(simpleName)) return; + } - if (lastPart != null && lastPart.contentEquals(simpleName)) return; + if (annType instanceof JCFieldAccess) { + if (annType.toString().equals(annotationTypeFqn)) return; + } } + JavacTreeMaker maker = node.getTreeMaker(); JCExpression annType = isJavaLangBased ? genJavaLangTypeRef(node, simpleName) : chainDotsString(node, annotationTypeFqn); annType.pos = pos; diff --git a/test/transform/resource/after-delombok/Accessors.java b/test/transform/resource/after-delombok/Accessors.java index a04ea171..8dee33ad 100644 --- a/test/transform/resource/after-delombok/Accessors.java +++ b/test/transform/resource/after-delombok/Accessors.java @@ -2,11 +2,13 @@ class AccessorsFluent { private String fieldName = ""; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public String fieldName() { return this.fieldName; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public AccessorsFluent fieldName(final String fieldName) { this.fieldName = fieldName; return this; @@ -17,16 +19,19 @@ class AccessorsFluentOnClass { private String otherFieldWithOverride = ""; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public String fieldName() { return this.fieldName; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public String getOtherFieldWithOverride() { return this.otherFieldWithOverride; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public AccessorsFluentOnClass fieldName(final String fieldName) { this.fieldName = fieldName; return this; @@ -36,6 +41,7 @@ class AccessorsChain { private boolean isRunning; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public AccessorsChain setRunning(final boolean isRunning) { this.isRunning = isRunning; return this; @@ -46,6 +52,7 @@ class AccessorsPrefix { private String fActualField; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public void setActualField(final String fActualField) { this.fActualField = fActualField; } @@ -55,11 +62,13 @@ class AccessorsPrefix2 { private String fActualField; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public void setFieldName(final String fieldName) { this.fieldName = fieldName; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public void setActualField(final String fActualField) { this.fActualField = fActualField; } @@ -72,12 +81,14 @@ class AccessorsPrefix3 { @java.lang.Override @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public java.lang.String toString() { return "AccessorsPrefix3(fName=" + this.getName() + ")"; } @java.lang.Override @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public boolean equals(final java.lang.Object o) { if (o == this) return true; if (!(o instanceof AccessorsPrefix3)) return false; @@ -90,12 +101,14 @@ class AccessorsPrefix3 { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated protected boolean canEqual(final java.lang.Object other) { return other instanceof AccessorsPrefix3; } @java.lang.Override @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public int hashCode() { final int PRIME = 59; int result = 1; @@ -108,6 +121,7 @@ class AccessorsFluentGenerics { private String name; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public AccessorsFluentGenerics name(final String name) { this.name = name; return this; @@ -117,6 +131,7 @@ class AccessorsFluentNoChaining { private String name; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public void name(final String name) { this.name = name; } @@ -125,6 +140,7 @@ class AccessorsFluentStatic { private static String name; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public static void name(final String name) { AccessorsFluentStatic.name = name; } diff --git a/test/transform/resource/after-delombok/AccessorsConfiguration.java b/test/transform/resource/after-delombok/AccessorsConfiguration.java index 84a686c8..f98b7939 100644 --- a/test/transform/resource/after-delombok/AccessorsConfiguration.java +++ b/test/transform/resource/after-delombok/AccessorsConfiguration.java @@ -2,11 +2,13 @@ class AccessorsConfiguration { private String m_FieldName = ""; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public String fieldName() { return this.m_FieldName; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public void fieldName(final String m_FieldName) { this.m_FieldName = m_FieldName; } @@ -15,6 +17,7 @@ class AccessorsConfiguration2 { private String m_FieldName = ""; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public void setM_FieldName(final String m_FieldName) { this.m_FieldName = m_FieldName; } @@ -23,6 +26,7 @@ class AccessorsConfiguration3 { private String fFieldName = ""; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public AccessorsConfiguration3 setFieldName(final String fFieldName) { this.fFieldName = fFieldName; return this; diff --git a/test/transform/resource/after-delombok/BuilderChainAndFluent.java b/test/transform/resource/after-delombok/BuilderChainAndFluent.java index dd3a347a..7a1f487e 100644 --- a/test/transform/resource/after-delombok/BuilderChainAndFluent.java +++ b/test/transform/resource/after-delombok/BuilderChainAndFluent.java @@ -2,38 +2,46 @@ class BuilderChainAndFluent { private final int yes; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated BuilderChainAndFluent(final int yes) { this.yes = yes; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public static class BuilderChainAndFluentBuilder { @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated private int yes; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated BuilderChainAndFluentBuilder() { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public void setYes(final int yes) { this.yes = yes; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderChainAndFluent build() { return new BuilderChainAndFluent(yes); } @java.lang.Override @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public java.lang.String toString() { return "BuilderChainAndFluent.BuilderChainAndFluentBuilder(yes=" + this.yes + ")"; } } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public static BuilderChainAndFluentBuilder builder() { return new BuilderChainAndFluentBuilder(); } diff --git a/test/transform/resource/after-delombok/BuilderComplex.java b/test/transform/resource/after-delombok/BuilderComplex.java index 76e0add1..15d4e25c 100644 --- a/test/transform/resource/after-delombok/BuilderComplex.java +++ b/test/transform/resource/after-delombok/BuilderComplex.java @@ -4,61 +4,74 @@ class BuilderComplex { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public static class VoidBuilder { @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated private T number; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated private int arg2; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated private String arg3; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated private BuilderComplex selfRef; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated VoidBuilder() { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public VoidBuilder number(final T number) { this.number = number; return this; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public VoidBuilder arg2(final int arg2) { this.arg2 = arg2; return this; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public VoidBuilder arg3(final String arg3) { this.arg3 = arg3; return this; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public VoidBuilder selfRef(final BuilderComplex selfRef) { this.selfRef = selfRef; return this; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public void execute() { BuilderComplex.testVoidWithGenerics(number, arg2, arg3, selfRef); } @java.lang.Override @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public java.lang.String toString() { return "BuilderComplex.VoidBuilder(number=" + this.number + ", arg2=" + this.arg2 + ", arg3=" + this.arg3 + ", selfRef=" + this.selfRef + ")"; } } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public static VoidBuilder builder() { return new VoidBuilder(); } diff --git a/test/transform/resource/after-delombok/BuilderInstanceMethod.java b/test/transform/resource/after-delombok/BuilderInstanceMethod.java index 61e237d0..668977ab 100644 --- a/test/transform/resource/after-delombok/BuilderInstanceMethod.java +++ b/test/transform/resource/after-delombok/BuilderInstanceMethod.java @@ -5,61 +5,74 @@ class BuilderInstanceMethod { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public class StringBuilder { @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated private int show; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated private int yes; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated private List also; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated private int $andMe; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated StringBuilder() { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public StringBuilder show(final int show) { this.show = show; return this; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public StringBuilder yes(final int yes) { this.yes = yes; return this; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public StringBuilder also(final List also) { this.also = also; return this; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public StringBuilder $andMe(final int $andMe) { this.$andMe = $andMe; return this; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public String build() { return BuilderInstanceMethod.this.create(show, yes, also, $andMe); } @java.lang.Override @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public java.lang.String toString() { return "BuilderInstanceMethod.StringBuilder(show=" + this.show + ", yes=" + this.yes + ", also=" + this.also + ", $andMe=" + this.$andMe + ")"; } } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public StringBuilder builder() { return new StringBuilder(); } diff --git a/test/transform/resource/after-delombok/BuilderSimple.java b/test/transform/resource/after-delombok/BuilderSimple.java index a12ad047..ecf74aa3 100644 --- a/test/transform/resource/after-delombok/BuilderSimple.java +++ b/test/transform/resource/after-delombok/BuilderSimple.java @@ -6,49 +6,59 @@ class BuilderSimple { private int $butNotMe; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated BuilderSimple(final int yes, final List also) { this.yes = yes; this.also = also; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public static class BuilderSimpleBuilder { @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated private int yes; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated private List also; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated BuilderSimpleBuilder() { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSimpleBuilder yes(final int yes) { this.yes = yes; return this; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSimpleBuilder also(final List also) { this.also = also; return this; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSimple build() { return new BuilderSimple(yes, also); } @java.lang.Override @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public java.lang.String toString() { return "BuilderSimple.BuilderSimpleBuilder(yes=" + this.yes + ", also=" + this.also + ")"; } } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public static BuilderSimpleBuilder builder() { return new BuilderSimpleBuilder(); } diff --git a/test/transform/resource/after-delombok/BuilderSingularGuavaListsSets.java b/test/transform/resource/after-delombok/BuilderSingularGuavaListsSets.java index 79ffbc8b..851fc3db 100644 --- a/test/transform/resource/after-delombok/BuilderSingularGuavaListsSets.java +++ b/test/transform/resource/after-delombok/BuilderSingularGuavaListsSets.java @@ -12,6 +12,7 @@ class BuilderSingularGuavaListsSets { private ImmutableTable users; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated BuilderSingularGuavaListsSets(final ImmutableList cards, final ImmutableCollection frogs, final ImmutableSet rawSet, final ImmutableSortedSet passes, final ImmutableTable users) { this.cards = cards; this.frogs = frogs; @@ -21,28 +22,36 @@ class BuilderSingularGuavaListsSets { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public static class BuilderSingularGuavaListsSetsBuilder { @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated private com.google.common.collect.ImmutableList.Builder cards; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated private com.google.common.collect.ImmutableList.Builder frogs; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated private com.google.common.collect.ImmutableSet.Builder rawSet; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated private com.google.common.collect.ImmutableSortedSet.Builder passes; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated private com.google.common.collect.ImmutableTable.Builder users; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated BuilderSingularGuavaListsSetsBuilder() { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularGuavaListsSetsBuilder card(final T card) { if (this.cards == null) this.cards = com.google.common.collect.ImmutableList.builder(); this.cards.add(card); @@ -50,6 +59,7 @@ class BuilderSingularGuavaListsSets { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularGuavaListsSetsBuilder cards(final java.lang.Iterable cards) { if (this.cards == null) this.cards = com.google.common.collect.ImmutableList.builder(); this.cards.addAll(cards); @@ -57,12 +67,14 @@ class BuilderSingularGuavaListsSets { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularGuavaListsSetsBuilder clearCards() { this.cards = null; return this; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularGuavaListsSetsBuilder frog(final Number frog) { if (this.frogs == null) this.frogs = com.google.common.collect.ImmutableList.builder(); this.frogs.add(frog); @@ -70,6 +82,7 @@ class BuilderSingularGuavaListsSets { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularGuavaListsSetsBuilder frogs(final java.lang.Iterable frogs) { if (this.frogs == null) this.frogs = com.google.common.collect.ImmutableList.builder(); this.frogs.addAll(frogs); @@ -77,12 +90,14 @@ class BuilderSingularGuavaListsSets { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularGuavaListsSetsBuilder clearFrogs() { this.frogs = null; return this; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularGuavaListsSetsBuilder rawSet(final java.lang.Object rawSet) { if (this.rawSet == null) this.rawSet = com.google.common.collect.ImmutableSet.builder(); this.rawSet.add(rawSet); @@ -90,6 +105,7 @@ class BuilderSingularGuavaListsSets { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularGuavaListsSetsBuilder rawSet(final java.lang.Iterable rawSet) { if (this.rawSet == null) this.rawSet = com.google.common.collect.ImmutableSet.builder(); this.rawSet.addAll(rawSet); @@ -97,12 +113,14 @@ class BuilderSingularGuavaListsSets { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularGuavaListsSetsBuilder clearRawSet() { this.rawSet = null; return this; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularGuavaListsSetsBuilder pass(final String pass) { if (this.passes == null) this.passes = com.google.common.collect.ImmutableSortedSet.naturalOrder(); this.passes.add(pass); @@ -110,6 +128,7 @@ class BuilderSingularGuavaListsSets { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularGuavaListsSetsBuilder passes(final java.lang.Iterable passes) { if (this.passes == null) this.passes = com.google.common.collect.ImmutableSortedSet.naturalOrder(); this.passes.addAll(passes); @@ -117,12 +136,14 @@ class BuilderSingularGuavaListsSets { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularGuavaListsSetsBuilder clearPasses() { this.passes = null; return this; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularGuavaListsSetsBuilder user(final Number rowKey, final Number columnKey, final String value) { if (this.users == null) this.users = com.google.common.collect.ImmutableTable.builder(); this.users.put(rowKey, columnKey, value); @@ -130,6 +151,7 @@ class BuilderSingularGuavaListsSets { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularGuavaListsSetsBuilder users(final com.google.common.collect.Table users) { if (this.users == null) this.users = com.google.common.collect.ImmutableTable.builder(); this.users.putAll(users); @@ -137,12 +159,14 @@ class BuilderSingularGuavaListsSets { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularGuavaListsSetsBuilder clearUsers() { this.users = null; return this; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularGuavaListsSets build() { com.google.common.collect.ImmutableList cards = this.cards == null ? com.google.common.collect.ImmutableList.of() : this.cards.build(); com.google.common.collect.ImmutableCollection frogs = this.frogs == null ? com.google.common.collect.ImmutableList.of() : this.frogs.build(); @@ -154,12 +178,14 @@ class BuilderSingularGuavaListsSets { @java.lang.Override @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public java.lang.String toString() { return "BuilderSingularGuavaListsSets.BuilderSingularGuavaListsSetsBuilder(cards=" + this.cards + ", frogs=" + this.frogs + ", rawSet=" + this.rawSet + ", passes=" + this.passes + ", users=" + this.users + ")"; } } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public static BuilderSingularGuavaListsSetsBuilder builder() { return new BuilderSingularGuavaListsSetsBuilder(); } diff --git a/test/transform/resource/after-delombok/BuilderSingularGuavaMaps.java b/test/transform/resource/after-delombok/BuilderSingularGuavaMaps.java index 1ad8fa83..22a4a750 100644 --- a/test/transform/resource/after-delombok/BuilderSingularGuavaMaps.java +++ b/test/transform/resource/after-delombok/BuilderSingularGuavaMaps.java @@ -8,6 +8,7 @@ class BuilderSingularGuavaMaps { private ImmutableBiMap rawMap; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated BuilderSingularGuavaMaps(final ImmutableMap battleaxes, final ImmutableSortedMap vertices, final ImmutableBiMap rawMap) { this.battleaxes = battleaxes; this.vertices = vertices; @@ -15,22 +16,28 @@ class BuilderSingularGuavaMaps { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public static class BuilderSingularGuavaMapsBuilder { @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated private com.google.common.collect.ImmutableMap.Builder battleaxes; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated private com.google.common.collect.ImmutableSortedMap.Builder vertices; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated private com.google.common.collect.ImmutableBiMap.Builder rawMap; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated BuilderSingularGuavaMapsBuilder() { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularGuavaMapsBuilder battleaxe(final K key, final V value) { if (this.battleaxes == null) this.battleaxes = com.google.common.collect.ImmutableMap.builder(); this.battleaxes.put(key, value); @@ -38,6 +45,7 @@ class BuilderSingularGuavaMaps { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularGuavaMapsBuilder battleaxes(final java.util.Map battleaxes) { if (this.battleaxes == null) this.battleaxes = com.google.common.collect.ImmutableMap.builder(); this.battleaxes.putAll(battleaxes); @@ -45,12 +53,14 @@ class BuilderSingularGuavaMaps { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularGuavaMapsBuilder clearBattleaxes() { this.battleaxes = null; return this; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularGuavaMapsBuilder vertex(final Integer key, final V value) { if (this.vertices == null) this.vertices = com.google.common.collect.ImmutableSortedMap.naturalOrder(); this.vertices.put(key, value); @@ -58,6 +68,7 @@ class BuilderSingularGuavaMaps { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularGuavaMapsBuilder vertices(final java.util.Map vertices) { if (this.vertices == null) this.vertices = com.google.common.collect.ImmutableSortedMap.naturalOrder(); this.vertices.putAll(vertices); @@ -65,12 +76,14 @@ class BuilderSingularGuavaMaps { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularGuavaMapsBuilder clearVertices() { this.vertices = null; return this; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularGuavaMapsBuilder rawMap(final java.lang.Object key, final java.lang.Object value) { if (this.rawMap == null) this.rawMap = com.google.common.collect.ImmutableBiMap.builder(); this.rawMap.put(key, value); @@ -78,6 +91,7 @@ class BuilderSingularGuavaMaps { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularGuavaMapsBuilder rawMap(final java.util.Map rawMap) { if (this.rawMap == null) this.rawMap = com.google.common.collect.ImmutableBiMap.builder(); this.rawMap.putAll(rawMap); @@ -85,12 +99,14 @@ class BuilderSingularGuavaMaps { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularGuavaMapsBuilder clearRawMap() { this.rawMap = null; return this; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularGuavaMaps build() { com.google.common.collect.ImmutableMap battleaxes = this.battleaxes == null ? com.google.common.collect.ImmutableMap.of() : this.battleaxes.build(); com.google.common.collect.ImmutableSortedMap vertices = this.vertices == null ? com.google.common.collect.ImmutableSortedMap.of() : this.vertices.build(); @@ -100,12 +116,14 @@ class BuilderSingularGuavaMaps { @java.lang.Override @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public java.lang.String toString() { return "BuilderSingularGuavaMaps.BuilderSingularGuavaMapsBuilder(battleaxes=" + this.battleaxes + ", vertices=" + this.vertices + ", rawMap=" + this.rawMap + ")"; } } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public static BuilderSingularGuavaMapsBuilder builder() { return new BuilderSingularGuavaMapsBuilder(); } diff --git a/test/transform/resource/after-delombok/BuilderSingularLists.java b/test/transform/resource/after-delombok/BuilderSingularLists.java index 9b409404..03b6ced7 100644 --- a/test/transform/resource/after-delombok/BuilderSingularLists.java +++ b/test/transform/resource/after-delombok/BuilderSingularLists.java @@ -7,6 +7,7 @@ class BuilderSingularLists { private List rawList; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated BuilderSingularLists(final List children, final Collection scarves, final List rawList) { this.children = children; this.scarves = scarves; @@ -14,22 +15,28 @@ class BuilderSingularLists { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public static class BuilderSingularListsBuilder { @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated private java.util.ArrayList children; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated private java.util.ArrayList scarves; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated private java.util.ArrayList rawList; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated BuilderSingularListsBuilder() { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularListsBuilder child(final T child) { if (this.children == null) this.children = new java.util.ArrayList(); this.children.add(child); @@ -37,6 +44,7 @@ class BuilderSingularLists { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularListsBuilder children(final java.util.Collection children) { if (this.children == null) this.children = new java.util.ArrayList(); this.children.addAll(children); @@ -44,12 +52,14 @@ class BuilderSingularLists { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularListsBuilder clearChildren() { if (this.children != null) this.children.clear(); return this; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularListsBuilder scarf(final Number scarf) { if (this.scarves == null) this.scarves = new java.util.ArrayList(); this.scarves.add(scarf); @@ -57,6 +67,7 @@ class BuilderSingularLists { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularListsBuilder scarves(final java.util.Collection scarves) { if (this.scarves == null) this.scarves = new java.util.ArrayList(); this.scarves.addAll(scarves); @@ -64,12 +75,14 @@ class BuilderSingularLists { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularListsBuilder clearScarves() { if (this.scarves != null) this.scarves.clear(); return this; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularListsBuilder rawList(final java.lang.Object rawList) { if (this.rawList == null) this.rawList = new java.util.ArrayList(); this.rawList.add(rawList); @@ -77,6 +90,7 @@ class BuilderSingularLists { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularListsBuilder rawList(final java.util.Collection rawList) { if (this.rawList == null) this.rawList = new java.util.ArrayList(); this.rawList.addAll(rawList); @@ -84,12 +98,14 @@ class BuilderSingularLists { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularListsBuilder clearRawList() { if (this.rawList != null) this.rawList.clear(); return this; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularLists build() { java.util.List children; switch (this.children == null ? 0 : this.children.size()) { @@ -129,12 +145,14 @@ class BuilderSingularLists { @java.lang.Override @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public java.lang.String toString() { return "BuilderSingularLists.BuilderSingularListsBuilder(children=" + this.children + ", scarves=" + this.scarves + ", rawList=" + this.rawList + ")"; } } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public static BuilderSingularListsBuilder builder() { return new BuilderSingularListsBuilder(); } diff --git a/test/transform/resource/after-delombok/BuilderSingularNoAuto.java b/test/transform/resource/after-delombok/BuilderSingularNoAuto.java index d5cd8f41..7e9e1680 100644 --- a/test/transform/resource/after-delombok/BuilderSingularNoAuto.java +++ b/test/transform/resource/after-delombok/BuilderSingularNoAuto.java @@ -5,6 +5,7 @@ class BuilderSingularNoAuto { private List items; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated BuilderSingularNoAuto(final List things, final List widgets, final List items) { this.things = things; this.widgets = widgets; @@ -12,22 +13,28 @@ class BuilderSingularNoAuto { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public static class BuilderSingularNoAutoBuilder { @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated private java.util.ArrayList things; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated private java.util.ArrayList widgets; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated private java.util.ArrayList items; @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated BuilderSingularNoAutoBuilder() { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularNoAutoBuilder things(final String things) { if (this.things == null) this.things = new java.util.ArrayList(); this.things.add(things); @@ -35,6 +42,7 @@ class BuilderSingularNoAuto { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularNoAutoBuilder things(final java.util.Collection things) { if (this.things == null) this.things = new java.util.ArrayList(); this.things.addAll(things); @@ -42,12 +50,14 @@ class BuilderSingularNoAuto { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularNoAutoBuilder clearThings() { if (this.things != null) this.things.clear(); return this; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularNoAutoBuilder widget(final String widget) { if (this.widgets == null) this.widgets = new java.util.ArrayList(); this.widgets.add(widget); @@ -55,6 +65,7 @@ class BuilderSingularNoAuto { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularNoAutoBuilder widgets(final java.util.Collection widgets) { if (this.widgets == null) this.widgets = new java.util.ArrayList(); this.widgets.addAll(widgets); @@ -62,12 +73,14 @@ class BuilderSingularNoAuto { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularNoAutoBuilder clearWidgets() { if (this.widgets != null) this.widgets.clear(); return this; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularNoAutoBuilder items(final String items) { if (this.items == null) this.items = new java.util.ArrayList(); this.items.add(items); @@ -75,6 +88,7 @@ class BuilderSingularNoAuto { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularNoAutoBuilder items(final java.util.Collection items) { if (this.items == null) this.items = new java.util.ArrayList(); this.items.addAll(items); @@ -82,12 +96,14 @@ class BuilderSingularNoAuto { } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularNoAutoBuilder clearItems() { if (this.items != null) this.items.clear(); return this; } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public BuilderSingularNoAuto build() { java.util.List things; switch (this.things == null ? 0 : this.things.size()) { @@ -127,12 +143,14 @@ class BuilderSingularNoAuto { @java.lang.Override @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public java.lang.String toString() { return "BuilderSingularNoAuto.BuilderSingularNoAutoBuilder(things=" + this.things + ", widgets=" + this.widgets + ", items=" + this.items + ")"; } } @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") + @lombok.Generated public static BuilderSingularNoAutoBuilder builder() { return new BuilderSingularNoA