[lombok] added support for lombok 1.18.24 change: "@Accessors now 'cascades'"

GitOrigin-RevId: 6cdfa706f1d0c0925ec250207c01b6adf38ac56c
This commit is contained in:
Michail Plushnikov
2022-10-26 22:04:19 +02:00
committed by intellij-monorepo-bot
parent 7c68d729fe
commit d4642aea1b
23 changed files with 365 additions and 297 deletions

View File

@@ -2,6 +2,7 @@ package de.plushnikov.intellij.plugin.extension;
import com.intellij.psi.*;
import com.intellij.refactoring.rename.RenameJavaVariableProcessor;
import com.intellij.util.containers.ContainerUtil;
import de.plushnikov.intellij.plugin.LombokClassNames;
import de.plushnikov.intellij.plugin.processor.field.AccessorsInfo;
import de.plushnikov.intellij.plugin.processor.handler.singular.BuilderElementHandler;
@@ -24,8 +25,8 @@ public class LombokRenameFieldReferenceProcessor extends RenameJavaVariableProce
if (element instanceof PsiField && !(element instanceof LombokLightFieldBuilder)) {
final PsiClass containingClass = ((PsiField) element).getContainingClass();
if (null != containingClass) {
return Arrays.stream(containingClass.getMethods()).anyMatch(LombokLightMethodBuilder.class::isInstance) ||
Arrays.stream(containingClass.getInnerClasses()).anyMatch(LombokLightClassBuilder.class::isInstance);
return ContainerUtil.exists(containingClass.getMethods(), LombokLightMethodBuilder.class::isInstance) ||
ContainerUtil.exists(containingClass.getInnerClasses(), LombokLightClassBuilder.class::isInstance);
}
}
return false;
@@ -36,10 +37,10 @@ public class LombokRenameFieldReferenceProcessor extends RenameJavaVariableProce
final PsiField psiField = (PsiField) element;
final PsiClass containingClass = psiField.getContainingClass();
final String currentFieldName = psiField.getName();
if (null != containingClass && null != currentFieldName) {
if (null != containingClass) {
final boolean isBoolean = PsiType.BOOLEAN.equals(psiField.getType());
final AccessorsInfo accessorsInfo = AccessorsInfo.build(psiField);
final AccessorsInfo accessorsInfo = AccessorsInfo.buildFor(psiField);
final String getterName = LombokUtils.toGetterName(accessorsInfo, currentFieldName, isBoolean);
final PsiMethod[] psiGetterMethods = containingClass.findMethodsByName(getterName, false);

View File

@@ -82,6 +82,7 @@ public final class GetterProcessor extends AbstractClassProcessor {
final Collection<PsiMethod> classMethods = PsiClassUtil.collectClassMethodsIntern(psiClass);
filterToleratedElements(classMethods);
final AccessorsInfo.AccessorsValues classAccessorsValues = AccessorsInfo.getAccessorsValues(psiClass);
GetterFieldProcessor fieldProcessor = getGetterFieldProcessor();
for (PsiField psiField : psiClass.getFields()) {
boolean createGetter = true;
@@ -94,7 +95,7 @@ public final class GetterProcessor extends AbstractClassProcessor {
//Skip fields that start with $
createGetter &= !psiField.getName().startsWith(LombokUtils.LOMBOK_INTERN_FIELD_MARKER);
//Skip fields if a method with same name and arguments count already exists
final AccessorsInfo accessorsInfo = AccessorsInfo.build(psiField);
final AccessorsInfo accessorsInfo = AccessorsInfo.buildFor(psiField, classAccessorsValues);
final Collection<String> methodNames = LombokUtils.toAllGetterNames(accessorsInfo, psiField.getName(), PsiType.BOOLEAN.equals(psiField.getType()));
for (String methodName : methodNames) {
createGetter &= !PsiMethodUtil.hasSimilarMethod(classMethods, methodName, 0);

View File

@@ -53,7 +53,7 @@ public class WitherProcessor extends AbstractClassProcessor {
protected void generatePsiElements(@NotNull PsiClass psiClass, @NotNull PsiAnnotation psiAnnotation, @NotNull List<? super PsiElement> target) {
final String methodVisibility = LombokProcessorUtil.getMethodModifier(psiAnnotation);
if (methodVisibility != null) {
final AccessorsInfo accessorsInfo = AccessorsInfo.build(psiClass).withFluent(false);
final AccessorsInfo accessorsInfo = AccessorsInfo.buildFor(psiClass).withFluent(false);
target.addAll(createFieldWithers(psiClass, methodVisibility, accessorsInfo));
}
}

View File

@@ -290,7 +290,8 @@ public abstract class AbstractConstructorClassProcessor extends AbstractClassPro
private static boolean isAnyConstructorDefined(@NotNull PsiClass psiClass) {
Collection<PsiMethod> constructors = PsiClassUtil.collectClassConstructorIntern(psiClass);
return constructors.stream().anyMatch(psiMethod -> PsiAnnotationSearchUtil.isNotAnnotatedWith(psiMethod, LombokClassNames.TOLERATE));
return ContainerUtil.exists(constructors,
psiMethod -> PsiAnnotationSearchUtil.isNotAnnotatedWith(psiMethod, LombokClassNames.TOLERATE));
}
private PsiMethod createConstructor(@NotNull PsiClass psiClass, @PsiModifier.ModifierConstant @NotNull String modifier,
@@ -302,9 +303,9 @@ public abstract class AbstractConstructorClassProcessor extends AbstractClassPro
.withModifier(modifier);
final List<String> fieldNames = new ArrayList<>();
final AccessorsInfo classAccessorsInfo = AccessorsInfo.build(psiClass);
final AccessorsInfo.AccessorsValues classAccessorsValues = AccessorsInfo.getAccessorsValues(psiClass);
for (PsiField psiField : params) {
final AccessorsInfo paramAccessorsInfo = AccessorsInfo.build(psiField, classAccessorsInfo);
final AccessorsInfo paramAccessorsInfo = AccessorsInfo.buildFor(psiField, classAccessorsValues);
fieldNames.add(paramAccessorsInfo.removePrefix(psiField.getName()));
}

View File

@@ -144,7 +144,7 @@ public abstract class AbstractFieldProcessor extends AbstractProcessor implement
final List<MethodSignatureBackedByPsiMethod> classMethods = new ArrayList<>(ownSignatures);
final boolean isBoolean = PsiType.BOOLEAN.equals(psiField.getType());
final AccessorsInfo accessorsInfo = AccessorsInfo.build(psiField);
final AccessorsInfo accessorsInfo = AccessorsInfo.buildFor(psiField);
final String fieldName = psiField.getName();
String accessorName = isGetter ? LombokUtils.toGetterName(accessorsInfo, fieldName, isBoolean)
: LombokUtils.toSetterName(accessorsInfo, fieldName, isBoolean);

View File

@@ -3,7 +3,6 @@ package de.plushnikov.intellij.plugin.processor.field;
import com.intellij.psi.PsiAnnotation;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiField;
import com.intellij.psi.PsiVariable;
import com.intellij.util.ArrayUtil;
import de.plushnikov.intellij.plugin.LombokClassNames;
import de.plushnikov.intellij.plugin.lombokconfig.ConfigDiscovery;
@@ -21,6 +20,10 @@ import java.util.Collections;
*/
public class AccessorsInfo {
public static final AccessorsInfo EMPTY = new AccessorsInfo(false, false, false, false);
private static final String CHAIN_VALUE = "chain";
private static final String FLUENT_VALUE = "fluent";
private static final String MAKE_FINAL_VALUE = "makeFinal";
private static final String PREFIX_VALUE = "prefix";
private final boolean fluent;
private final boolean chain;
@@ -37,61 +40,14 @@ public class AccessorsInfo {
}
@NotNull
public static AccessorsInfo build(boolean fluentValue, boolean chainValue, boolean makeFinal, boolean doNotUseIsPrefix, String... prefixes) {
public static AccessorsInfo build(boolean fluentValue,
boolean chainValue,
boolean makeFinal,
boolean doNotUseIsPrefix,
String... prefixes) {
return new AccessorsInfo(fluentValue, chainValue, makeFinal, doNotUseIsPrefix, prefixes);
}
@NotNull
public static AccessorsInfo build(@NotNull PsiField psiField) {
return build(psiField, psiField.getContainingClass());
}
@NotNull
public static AccessorsInfo build(@NotNull PsiVariable psiVariable, @Nullable PsiClass containingClass) {
final PsiAnnotation accessorsFieldAnnotation = PsiAnnotationSearchUtil.findAnnotation(psiVariable, LombokClassNames.ACCESSORS);
if (null != accessorsFieldAnnotation) {
return buildFromAnnotation(accessorsFieldAnnotation, containingClass);
}
else {
return build(containingClass);
}
}
@NotNull
public static AccessorsInfo build(@NotNull PsiField psiField, @NotNull AccessorsInfo classAccessorsInfo) {
final PsiAnnotation accessorsFieldAnnotation = PsiAnnotationSearchUtil.findAnnotation(psiField, LombokClassNames.ACCESSORS);
if (null != accessorsFieldAnnotation) {
return buildFromAnnotation(accessorsFieldAnnotation, psiField.getContainingClass());
}
else {
return classAccessorsInfo;
}
}
@NotNull
public static AccessorsInfo build(@Nullable PsiClass psiClass) {
PsiClass containingClass = psiClass;
while (null != containingClass) {
final PsiAnnotation accessorsClassAnnotation = PsiAnnotationSearchUtil.findAnnotation(containingClass, LombokClassNames.ACCESSORS);
if (null != accessorsClassAnnotation) {
return buildFromAnnotation(accessorsClassAnnotation, containingClass);
}
containingClass = containingClass.getContainingClass();
}
return buildAccessorsInfo(psiClass, null, null, null, Collections.emptySet());
}
@NotNull
private static AccessorsInfo buildFromAnnotation(@NotNull PsiAnnotation accessorsAnnotation, @Nullable PsiClass psiClass) {
Boolean chainDeclaredValue = PsiAnnotationUtil.getDeclaredBooleanAnnotationValue(accessorsAnnotation, "chain");
Boolean fluentDeclaredValue = PsiAnnotationUtil.getDeclaredBooleanAnnotationValue(accessorsAnnotation, "fluent");
Boolean makeFinal = PsiAnnotationUtil.getDeclaredBooleanAnnotationValue(accessorsAnnotation, "makeFinal");
Collection<String> prefixes = PsiAnnotationUtil.getAnnotationValues(accessorsAnnotation, "prefix", String.class);
return buildAccessorsInfo(psiClass, chainDeclaredValue, fluentDeclaredValue, makeFinal, prefixes);
}
@NotNull
private static AccessorsInfo buildAccessorsInfo(@Nullable PsiClass psiClass, @Nullable Boolean chainDeclaredValue,
@Nullable Boolean fluentDeclaredValue,
@@ -147,6 +103,98 @@ public class AccessorsInfo {
return build(isFluent, isChainDeclaredOrImplicit, makeFinal, doNotUseIsPrefix, prefixes);
}
public record AccessorsValues(Boolean chainDeclaredValue, Boolean fluentDeclaredValue, Boolean makeFinalDeclaredValue,
Collection<String> prefixes) {
private AccessorsValues() {
this(null, null, null, Collections.emptyList());
}
private AccessorsValues combine(AccessorsValues defaults) {
Boolean combinedChain = chainDeclaredValue;
Boolean combinedFluent = fluentDeclaredValue;
Boolean combinedMakeFinal = makeFinalDeclaredValue;
Collection<String> combinedPrefixes = prefixes;
if (combinedChain == null && null != defaults.chainDeclaredValue) {
combinedChain = defaults.chainDeclaredValue;
}
if (combinedFluent == null && null != defaults.fluentDeclaredValue) {
combinedFluent = defaults.fluentDeclaredValue;
}
if (combinedMakeFinal == null && null != defaults.makeFinalDeclaredValue) {
combinedMakeFinal = defaults.makeFinalDeclaredValue;
}
if (combinedPrefixes.isEmpty() && !defaults.prefixes.isEmpty()) {
combinedPrefixes = defaults.prefixes;
}
return new AccessorsValues(combinedChain, combinedFluent, combinedMakeFinal, combinedPrefixes);
}
}
private static AccessorsValues collectValues(@NotNull PsiAnnotation accessorsAnnotation) {
Boolean chainDeclaredValue = PsiAnnotationUtil.getDeclaredBooleanAnnotationValue(accessorsAnnotation, CHAIN_VALUE);
Boolean fluentDeclaredValue = PsiAnnotationUtil.getDeclaredBooleanAnnotationValue(accessorsAnnotation, FLUENT_VALUE);
Boolean makeFinalDeclaredValue = PsiAnnotationUtil.getDeclaredBooleanAnnotationValue(accessorsAnnotation, MAKE_FINAL_VALUE);
Collection<String> prefixes = PsiAnnotationUtil.getAnnotationValues(accessorsAnnotation, PREFIX_VALUE, String.class);
return new AccessorsValues(chainDeclaredValue, fluentDeclaredValue, makeFinalDeclaredValue, prefixes);
}
private static AccessorsInfo buildFrom(@Nullable PsiClass psiClass, AccessorsValues values) {
return buildAccessorsInfo(psiClass, values.chainDeclaredValue, values.fluentDeclaredValue, values.makeFinalDeclaredValue,
values.prefixes);
}
@NotNull
public static AccessorsInfo buildFor(@NotNull PsiField psiField) {
final AccessorsValues fieldAccessorsValues = getAccessorsValues(psiField);
final AccessorsValues classAccessorsValues = getAccessorsValues(psiField.getContainingClass());
final AccessorsValues combinedAccessorValues = fieldAccessorsValues.combine(classAccessorsValues);
final PsiClass containingClass = psiField.getContainingClass();
return buildFrom(containingClass, combinedAccessorValues);
}
@NotNull
public static AccessorsInfo buildFor(@NotNull PsiClass psiClass) {
AccessorsValues resultAccessorsValues = getAccessorsValues(psiClass);
return buildFrom(psiClass, resultAccessorsValues);
}
@NotNull
private static AccessorsValues getAccessorsValues(@NotNull PsiField psiField) {
AccessorsValues accessorsValues = new AccessorsValues();
final PsiAnnotation accessorsFieldAnnotation = PsiAnnotationSearchUtil.findAnnotation(psiField, LombokClassNames.ACCESSORS);
if (null != accessorsFieldAnnotation) {
accessorsValues = collectValues(accessorsFieldAnnotation);
}
return accessorsValues;
}
@NotNull
public static AccessorsValues getAccessorsValues(@Nullable PsiClass psiClass) {
AccessorsValues resultAccessorsValues = new AccessorsValues();
PsiClass containingClass = psiClass;
while (null != containingClass) {
final PsiAnnotation accessorsClassAnnotation = PsiAnnotationSearchUtil.findAnnotation(containingClass, LombokClassNames.ACCESSORS);
if (null != accessorsClassAnnotation) {
final AccessorsValues classAccessorsValues = collectValues(accessorsClassAnnotation);
resultAccessorsValues = resultAccessorsValues.combine(classAccessorsValues);
}
containingClass = containingClass.getContainingClass();
}
return resultAccessorsValues;
}
@NotNull
public static AccessorsInfo buildFor(@NotNull PsiField psiField, AccessorsValues classAccessorsValues) {
final AccessorsValues fieldAccessorsValues = getAccessorsValues(psiField);
final AccessorsValues combinedAccessorValues = fieldAccessorsValues.combine(classAccessorsValues);
final PsiClass containingClass = psiField.getContainingClass();
return buildFrom(containingClass, combinedAccessorValues);
}
public boolean isFluent() {
return fluent;
}

View File

@@ -84,7 +84,7 @@ public final class GetterFieldProcessor extends AbstractFieldProcessor {
private static boolean validateAccessorPrefix(@NotNull PsiField psiField, @NotNull ProblemBuilder builder) {
boolean result = true;
if (AccessorsInfo.build(psiField).isPrefixUnDefinedOrNotStartsWith(psiField.getName())) {
if (AccessorsInfo.buildFor(psiField).isPrefixUnDefinedOrNotStartsWith(psiField.getName())) {
builder.addWarning(LombokBundle.message("inspection.message.not.generating.getter.for.this.field"));
result = false;
}
@@ -93,7 +93,7 @@ public final class GetterFieldProcessor extends AbstractFieldProcessor {
@NotNull
public PsiMethod createGetterMethod(@NotNull PsiField psiField, @NotNull PsiClass psiClass, @NotNull String methodModifier) {
final AccessorsInfo accessorsInfo = AccessorsInfo.build(psiField);
final AccessorsInfo accessorsInfo = AccessorsInfo.buildFor(psiField);
final String methodName = LombokUtils.getGetterName(psiField, accessorsInfo);
LombokLightMethodBuilder methodBuilder = new LombokLightMethodBuilder(psiField.getManager(), methodName)

View File

@@ -79,7 +79,7 @@ public final class SetterFieldProcessor extends AbstractFieldProcessor {
private static boolean validateAccessorPrefix(@NotNull PsiField psiField, @NotNull ProblemBuilder builder) {
boolean result = true;
if (AccessorsInfo.build(psiField).isPrefixUnDefinedOrNotStartsWith(psiField.getName())) {
if (AccessorsInfo.buildFor(psiField).isPrefixUnDefinedOrNotStartsWith(psiField.getName())) {
builder.addWarning(LombokBundle.message("inspection.message.not.generating.setter.for.this.field.it"));
result = false;
}
@@ -87,7 +87,7 @@ public final class SetterFieldProcessor extends AbstractFieldProcessor {
}
public Collection<String> getAllSetterNames(@NotNull PsiField psiField, boolean isBoolean) {
final AccessorsInfo accessorsInfo = AccessorsInfo.build(psiField);
final AccessorsInfo accessorsInfo = AccessorsInfo.buildFor(psiField);
return LombokUtils.toAllSetterNames(accessorsInfo, psiField.getName(), isBoolean);
}
@@ -97,10 +97,10 @@ public final class SetterFieldProcessor extends AbstractFieldProcessor {
final PsiType psiFieldType = psiField.getType();
final PsiAnnotation setterAnnotation = PsiAnnotationSearchUtil.findAnnotation(psiField, LombokClassNames.SETTER);
final AccessorsInfo accessorsInfo = AccessorsInfo.build(psiField);
final AccessorsInfo accessorsInfo = AccessorsInfo.buildFor(psiField);
final String methodName = LombokUtils.getSetterName(psiField, accessorsInfo);
PsiType returnType = getReturnType(psiField);
PsiType returnType = getReturnType(psiField, accessorsInfo.isChain());
LombokLightMethodBuilder methodBuilder = new LombokLightMethodBuilder(psiField.getManager(), methodName)
.withMethodReturnType(returnType)
.withContainingClass(psiClass)
@@ -156,9 +156,9 @@ public final class SetterFieldProcessor extends AbstractFieldProcessor {
return codeBlockText;
}
private static PsiType getReturnType(@NotNull PsiField psiField) {
private static PsiType getReturnType(@NotNull PsiField psiField, boolean isChained) {
PsiType result = PsiType.VOID;
if (!psiField.hasModifierProperty(PsiModifier.STATIC) && AccessorsInfo.build(psiField).isChain()) {
if (!psiField.hasModifierProperty(PsiModifier.STATIC) && isChained) {
final PsiClass fieldClass = psiField.getContainingClass();
if (null != fieldClass) {
result = PsiClassUtil.getTypeWithGenerics(fieldClass);

View File

@@ -207,7 +207,7 @@ public final class WitherFieldProcessor extends AbstractFieldProcessor {
}
private static AccessorsInfo buildAccessorsInfo(@NotNull PsiField psiField) {
return AccessorsInfo.build(psiField).withFluent(false);
return AccessorsInfo.buildFor(psiField).withFluent(false);
}
private static String getWitherName(@NotNull AccessorsInfo accessorsInfo, String psiFieldName, PsiType psiFieldType) {

View File

@@ -80,7 +80,7 @@ public class BuilderInfo {
result.fieldInitializer = psiField.getInitializer();
result.hasBuilderDefaultAnnotation = PsiAnnotationSearchUtil.isAnnotatedWith(psiField, BUILDER_DEFAULT_ANNOTATION);
final AccessorsInfo accessorsInfo = AccessorsInfo.build(psiField);
final AccessorsInfo accessorsInfo = AccessorsInfo.buildFor(psiField);
result.fieldInBuilderName = accessorsInfo.removePrefix(psiField.getName());
result.singularAnnotation = PsiAnnotationSearchUtil.findAnnotation(psiField, LombokClassNames.SINGULAR);

View File

@@ -278,7 +278,7 @@ public final class LombokUtils {
"com.fasterxml.jackson.databind.annotation.JsonNaming"};
public static String getGetterName(final @NotNull PsiField psiField) {
final AccessorsInfo accessorsInfo = AccessorsInfo.build(psiField);
final AccessorsInfo accessorsInfo = AccessorsInfo.buildFor(psiField);
return getGetterName(psiField, accessorsInfo);
}
@@ -290,7 +290,7 @@ public final class LombokUtils {
}
public static String getSetterName(@NotNull PsiField psiField) {
final AccessorsInfo accessorsInfo = AccessorsInfo.build(psiField);
final AccessorsInfo accessorsInfo = AccessorsInfo.buildFor(psiField);
return getSetterName(psiField, accessorsInfo);
}

View File

@@ -67,6 +67,10 @@ public class AccessorsTest extends AbstractLombokConfigSystemTestCase {
doTest();
}
////////////
public void testMakefinal$AccessorsMakeFinalLombokConfig() {
doTest();
}
////////////
public void testSuperbuilder$SuperBuilderWithPrefixes() {

View File

@@ -11,6 +11,10 @@ public class AccessorsTest extends AbstractLombokParsingTestCase {
doTest(true);
}
public void testAccessors$AccessorsCascade() {
doTest(true);
}
public void testAccessors$AccessorsMakeFinal() {
doTest(true);
}

View File

@@ -1,178 +1,127 @@
// Generated by delombok at Sat Jun 11 11:12:44 CEST 2016
class AccessorsFluent {
private String fieldName = "";
@java.lang.SuppressWarnings("all")
public String fieldName() {
return this.fieldName;
}
@java.lang.SuppressWarnings("all")
public AccessorsFluent fieldName(final String fieldName) {
this.fieldName = fieldName;
return this;
}
}
class AccessorsFluentOnClass {
private String fieldName = "";
private String otherFieldWithOverride = "";
@java.lang.SuppressWarnings("all")
public String fieldName() {
return this.fieldName;
}
@java.lang.SuppressWarnings("all")
public String getOtherFieldWithOverride() {
return this.otherFieldWithOverride;
}
@java.lang.SuppressWarnings("all")
public AccessorsFluentOnClass fieldName(final String fieldName) {
this.fieldName = fieldName;
return this;
}
}
class AccessorsChain {
private boolean isRunning;
@java.lang.SuppressWarnings("all")
public AccessorsChain setRunning(final boolean isRunning) {
this.isRunning = isRunning;
return this;
}
}
class AccessorsPrefix {
private String fieldName;
private String fActualField;
@java.lang.SuppressWarnings("all")
public void setActualField(final String fActualField) {
this.fActualField = fActualField;
}
}
class AccessorsPrefix2 {
private String fieldName;
private String fActualField;
@java.lang.SuppressWarnings("all")
public void setFieldName(final String fieldName) {
this.fieldName = fieldName;
}
@java.lang.SuppressWarnings("all")
public void setActualField(final String fActualField) {
this.fActualField = fActualField;
}
}
class AccessorsPrefix3 {
private String fName;
private String getName() {
return fName;
}
@java.lang.Override
@java.lang.SuppressWarnings("all")
public java.lang.String toString() {
return "AccessorsPrefix3(fName=" + this.getName() + ")";
}
@java.lang.Override
@java.lang.SuppressWarnings("all")
public boolean equals(final java.lang.Object o) {
if (o == this) return true;
if (!(o instanceof AccessorsPrefix3)) return false;
final AccessorsPrefix3 other = (AccessorsPrefix3) o;
if (!other.canEqual((java.lang.Object) this)) return false;
final java.lang.Object this$fName = this.getName();
final java.lang.Object other$fName = other.getName();
if (this$fName == null ? other$fName != null : !this$fName.equals(other$fName)) return false;
return true;
}
@java.lang.SuppressWarnings("all")
protected boolean canEqual(final java.lang.Object other) {
return other instanceof AccessorsPrefix3;
}
@java.lang.Override
@java.lang.SuppressWarnings("all")
public int hashCode() {
final int PRIME = 59;
int result = 1;
final java.lang.Object $fName = this.getName();
result = result * PRIME + ($fName == null ? 43 : $fName.hashCode());
return result;
}
}
class AccessorsPrefix4 {
private String _underscore;
private String $DollarSign;
private String m_fieldName;
private String foo;
private String bAr;
@java.lang.SuppressWarnings("all")
public void setUnderscore(final String _underscore) {
this._underscore = _underscore;
}
@java.lang.SuppressWarnings("all")
public void setDollarSign(final String $DollarSign) {
this.$DollarSign = $DollarSign;
}
@java.lang.SuppressWarnings("all")
public void setFieldName(final String m_fieldName) {
this.m_fieldName = m_fieldName;
}
@java.lang.SuppressWarnings("all")
public void setAr(final String bAr) {
this.bAr = bAr;
}
}
class AccessorsFluentGenerics<T extends Number> {
private String name;
@java.lang.SuppressWarnings("all")
public AccessorsFluentGenerics<T> name(final String name) {
this.name = name;
return this;
}
}
class AccessorsFluentNoChaining {
private String name;
@java.lang.SuppressWarnings("all")
public void name(final String name) {
this.name = name;
}
}
class AccessorsFluentStatic<T extends Number> {
private static String name;
@java.lang.SuppressWarnings("all")
public static void name(final String name) {
AccessorsFluentStatic.name = name;
}
}
class AccessorNumericStartIssue724 {
private float m3Titanic;
public float get3Titanic() {
return this.m3Titanic;
private String fieldName = "";
@java.lang.SuppressWarnings("all")
public String fieldName() {
return this.fieldName;
}
/**
* @return {@code this}.
*/
@java.lang.SuppressWarnings("all")
public AccessorsFluent fieldName(final String fieldName) {
this.fieldName = fieldName;
return this;
}
}
class AccessorsFluentOnClass {
private String fieldName = "";
private String otherFieldWithOverride = "";
@java.lang.SuppressWarnings("all")
public String fieldName() {
return this.fieldName;
}
@java.lang.SuppressWarnings("all")
public String getOtherFieldWithOverride() {
return this.otherFieldWithOverride;
}
/**
* @return {@code this}.
*/
@java.lang.SuppressWarnings("all")
public AccessorsFluentOnClass fieldName(final String fieldName) {
this.fieldName = fieldName;
return this;
}
}
class AccessorsChain {
private boolean isRunning;
/**
* @return {@code this}.
*/
@java.lang.SuppressWarnings("all")
public AccessorsChain setRunning(final boolean isRunning) {
this.isRunning = isRunning;
return this;
}
}
class AccessorsPrefix {
private String fieldName;
private String fActualField;
@java.lang.SuppressWarnings("all")
public void setActualField(final String fActualField) {
this.fActualField = fActualField;
}
}
class AccessorsPrefix2 {
private String fieldName;
private String fActualField;
@java.lang.SuppressWarnings("all")
public void setFieldName(final String fieldName) {
this.fieldName = fieldName;
}
@java.lang.SuppressWarnings("all")
public void setActualField(final String fActualField) {
this.fActualField = fActualField;
}
}
class AccessorsPrefix3 {
private String fName;
private String getName() {
return fName;
}
@java.lang.Override
@java.lang.SuppressWarnings("all")
public java.lang.String toString() {
return "AccessorsPrefix3(fName=" + this.getName() + ")";
}
@java.lang.Override
@java.lang.SuppressWarnings("all")
public boolean equals(final java.lang.Object o) {
if (o == this) return true;
if (!(o instanceof AccessorsPrefix3)) return false;
final AccessorsPrefix3 other = (AccessorsPrefix3) o;
if (!other.canEqual((java.lang.Object) this)) return false;
final java.lang.Object this$fName = this.getName();
final java.lang.Object other$fName = other.getName();
if (this$fName == null ? other$fName != null : !this$fName.equals(other$fName)) return false;
return true;
}
@java.lang.SuppressWarnings("all")
protected boolean canEqual(final java.lang.Object other) {
return other instanceof AccessorsPrefix3;
}
@java.lang.Override
@java.lang.SuppressWarnings("all")
public int hashCode() {
final int PRIME = 59;
int result = 1;
final java.lang.Object $fName = this.getName();
result = result * PRIME + ($fName == null ? 43 : $fName.hashCode());
return result;
}
}
class AccessorsFluentGenerics<T extends Number> {
private String name;
/**
* @return {@code this}.
*/
@java.lang.SuppressWarnings("all")
public AccessorsFluentGenerics<T> name(final String name) {
this.name = name;
return this;
}
}
class AccessorsFluentNoChaining {
private String name;
@java.lang.SuppressWarnings("all")
public void name(final String name) {
this.name = name;
}
}
class AccessorsFluentStatic<T extends Number> {
private static String name;
@java.lang.SuppressWarnings("all")
public static void name(final String name) {
AccessorsFluentStatic.name = name;
}
}

View File

@@ -0,0 +1,38 @@
class AccessorsOuter {
private String fTest;
private String zTest2;
class AccessorsInner1 {
private String zTest3;
/**
* @return {@code this}.
*/
@java.lang.SuppressWarnings("all")
public AccessorsOuter.AccessorsInner1 setTest3(final String zTest3) {
this.zTest3 = zTest3;
return this;
}
}
class AccessorsInner2 {
private String fTest4;
@java.lang.SuppressWarnings("all")
public void setTest4(final String fTest4) {
this.fTest4 = fTest4;
}
}
/**
* @return {@code this}.
*/
@java.lang.SuppressWarnings("all")
public AccessorsOuter setTest(final String fTest) {
this.fTest = fTest;
return this;
}
/**
* @return {@code this}.
*/
@java.lang.SuppressWarnings("all")
public AccessorsOuter setTest2(final String zTest2) {
this.zTest2 = zTest2;
return this;
}
}

View File

@@ -1,11 +1,11 @@
class AccessorsMakeFinal {
private String test;
/**
* @return {@code this}.
*/
@SuppressWarnings("all")
public final AccessorsMakeFinal test(final String test) {
this.test = test;
return this;
}
class AccessorsMakeFinal1 {
private String test;
/**
* @return {@code this}.
*/
@java.lang.SuppressWarnings("all")
public final AccessorsMakeFinal1 test(final String test) {
this.test = test;
return this;
}
}

View File

@@ -1,65 +1,50 @@
class AccessorsFluent {
@lombok.Getter @lombok.Setter @lombok.experimental.Accessors(fluent=true)
private String fieldName = "";
@lombok.Getter @lombok.Setter @lombok.experimental.Accessors(fluent=true)
private String fieldName = "";
}
@lombok.experimental.Accessors(fluent=true)
@lombok.Getter
class AccessorsFluentOnClass {
@lombok.Setter private String fieldName = "";
@lombok.experimental.Accessors private String otherFieldWithOverride = "";
@lombok.Setter private String fieldName = "";
@lombok.experimental.Accessors(fluent=false) private String otherFieldWithOverride = "";
}
class AccessorsChain {
@lombok.Setter @lombok.experimental.Accessors(chain=true) private boolean isRunning;
@lombok.Setter @lombok.experimental.Accessors(chain=true) private boolean isRunning;
}
@lombok.experimental.Accessors(prefix="f")
class AccessorsPrefix {
@lombok.Setter private String fieldName;
@lombok.Setter private String fActualField;
@lombok.Setter private String fieldName;
@lombok.Setter private String fActualField;
}
@lombok.experimental.Accessors(prefix={"f", ""})
class AccessorsPrefix2 {
@lombok.Setter private String fieldName;
@lombok.Setter private String fActualField;
@lombok.Setter private String fieldName;
@lombok.Setter private String fActualField;
}
@lombok.experimental.Accessors(prefix="f")
@lombok.ToString
@lombok.EqualsAndHashCode
class AccessorsPrefix3 {
private String fName;
private String fName;
private String getName() {
return fName;
}
}
@lombok.experimental.Accessors(prefix={"_", "$", "m_", "f", "b"})
class AccessorsPrefix4 {
@lombok.Setter private String _underscore;
@lombok.Setter private String $DollarSign;
@lombok.Setter private String m_fieldName;
@lombok.Setter private String foo;
@lombok.Setter private String bAr;
private String getName() {
return fName;
}
}
class AccessorsFluentGenerics<T extends Number> {
@lombok.Setter @lombok.experimental.Accessors(fluent=true) private String name;
@lombok.Setter @lombok.experimental.Accessors(fluent=true) private String name;
}
class AccessorsFluentNoChaining {
@lombok.Setter @lombok.experimental.Accessors(fluent=true,chain=false) private String name;
@lombok.Setter @lombok.experimental.Accessors(fluent=true,chain=false) private String name;
}
class AccessorsFluentStatic<T extends Number> {
@lombok.Setter @lombok.experimental.Accessors(fluent=true) private static String name;
}
@lombok.experimental.Accessors(prefix = "m")
class AccessorNumericStartIssue724 {
@lombok.Getter
private float m3Titanic;
}
@lombok.Setter @lombok.experimental.Accessors(fluent=true) private static String name;
}

View File

@@ -0,0 +1,21 @@
@lombok.experimental.Accessors(chain=true, prefix="f")
class AccessorsOuter {
@lombok.Setter
private String fTest;
@lombok.experimental.Accessors(prefix="z")
@lombok.Setter
private String zTest2;
class AccessorsInner1 {
@lombok.experimental.Accessors(prefix="z")
@lombok.Setter
private String zTest3;
}
@lombok.experimental.Accessors(chain=false)
class AccessorsInner2 {
@lombok.Setter
private String fTest4;
}
}

View File

@@ -1,5 +1,5 @@
class AccessorsMakeFinal {
@lombok.Setter
@lombok.experimental.Accessors(fluent = true, makeFinal = true)
private String test;
@lombok.experimental.Accessors(makeFinal = true)
class AccessorsMakeFinal1 {
@lombok.Setter @lombok.experimental.Accessors(fluent = true)
private String test;
}

View File

@@ -0,0 +1,7 @@
class AccessorsMakeFinalLombokConfig {
private String test;
public final void setTest(final String test) {
this.test = test;
}
}

View File

@@ -0,0 +1,6 @@
//CONF: lombok.Accessors.makeFinal = true
class AccessorsMakeFinalLombokConfig {
@lombok.Setter
private String test;
}

View File

@@ -0,0 +1,3 @@
lombok.Accessors.makeFinal = true
config.stopBubbling = true

View File

@@ -6,7 +6,7 @@ import lombok.experimental.Accessors;
public class FindUsageAccessors {
private int mFoo;
@Accessors(prefix = "_")
@Accessors(prefix = "_", fluent = false)
private String _<caret>Bar;
private String bMar;