mirror of
https://github.com/tiennm99/lombok.git
synced 2026-10-13 14:16:11 +00:00
added conf keys (and implementation to make them work) for lombok.getter.lazy.flagUsage and lombok.equalsAndHashCode.doNotUseGetters.
This commit is contained in:
1 parent
29c5558052
commit
0e673c6b30
5 files changed
+26
-8
No files matched your search
@@ -103,6 +103,13 @@ public class ConfigurationKeys {
|
||||
*/
|
||||
public static final ConfigurationKey<FlagUsageType> GETTER_FLAG_USAGE = new ConfigurationKey<FlagUsageType>("lombok.getter.flagUsage", "Emit a warning or error if @Getter is used.") {};
|
||||
|
||||
/**
|
||||
* lombok configuration: {@code lombok.getter.lazy.flagUsage} = {@code WARNING} | {@code ERROR}.
|
||||
*
|
||||
* If set, <em>any</em> usage of {@code @Getter(lazy=true)} results in a warning / error.
|
||||
*/
|
||||
public static final ConfigurationKey<FlagUsageType> GETTER_LAZY_FLAG_USAGE = new ConfigurationKey<FlagUsageType>("lombok.getter.lazy.flagUsage", "Emit a warning or error if @Getter(lazy=true) is used.") {};
|
||||
|
||||
// ----- Setter -----
|
||||
|
||||
/**
|
||||
@@ -114,6 +121,13 @@ public class ConfigurationKeys {
|
||||
|
||||
// ----- EqualsAndHashCode -----
|
||||
|
||||
/**
|
||||
* lombok configuration: {@code lombok.equalsAndHashCode.doNotUseGetters} = {@code true} | {@code false}.
|
||||
*
|
||||
* For any class without an {@code @EqualsAndHashCode} that explicitly defines the {@code doNotUseGetters} option, this value is used.
|
||||
*/
|
||||
public static final ConfigurationKey<Boolean> EQUALS_AND_HASH_CODE_DO_NOT_USE_GETTERS = new ConfigurationKey<Boolean>("lombok.equalsAndHashCode.doNotUseGetters", "Don't call the getters but use the fields directly in the generated equalsAndHashCode method.") {};
|
||||
|
||||
/**
|
||||
* lombok configuration: {@code lombok.equalsAndHashCode.flagUsage} = {@code WARNING} | {@code ERROR}.
|
||||
*
|
||||
|
||||
@@ -140,7 +140,9 @@ public class HandleEqualsAndHashCode extends EclipseAnnotationHandler<EqualsAndH
|
||||
annotation.setWarning("exclude", "exclude and of are mutually exclusive; the 'exclude' parameter will be ignored.");
|
||||
}
|
||||
|
||||
FieldAccess fieldAccess = ann.doNotUseGetters() ? FieldAccess.PREFER_FIELD : FieldAccess.GETTER;
|
||||
Boolean doNotUseGettersConfiguration = annotationNode.getAst().readConfiguration(ConfigurationKeys.EQUALS_AND_HASH_CODE_DO_NOT_USE_GETTERS);
|
||||
boolean doNotUseGetters = annotation.isExplicit("doNotUseGetters") || doNotUseGettersConfiguration == null ? ann.doNotUseGetters() : doNotUseGettersConfiguration;
|
||||
FieldAccess fieldAccess = doNotUseGetters ? FieldAccess.PREFER_FIELD : FieldAccess.GETTER;
|
||||
|
||||
generateMethods(typeNode, annotationNode, excludes, includes, callSuper, true, fieldAccess, onParam);
|
||||
}
|
||||
|
||||
@@ -139,10 +139,10 @@ public class HandleGetter extends EclipseAnnotationHandler<Getter> {
|
||||
Getter annotationInstance = annotation.getInstance();
|
||||
AccessLevel level = annotationInstance.value();
|
||||
boolean lazy = annotationInstance.lazy();
|
||||
if (lazy) handleFlagUsage(annotationNode, ConfigurationKeys.GETTER_LAZY_FLAG_USAGE, "@Getter(lazy=true)");
|
||||
|
||||
if (level == AccessLevel.NONE) {
|
||||
if (lazy) {
|
||||
annotationNode.addWarning("'lazy' does not work with AccessLevel.NONE.");
|
||||
}
|
||||
if (lazy) annotationNode.addWarning("'lazy' does not work with AccessLevel.NONE.");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -107,7 +107,9 @@ public class HandleEqualsAndHashCode extends JavacAnnotationHandler<EqualsAndHas
|
||||
annotation.setWarning("exclude", "exclude and of are mutually exclusive; the 'exclude' parameter will be ignored.");
|
||||
}
|
||||
|
||||
FieldAccess fieldAccess = ann.doNotUseGetters() ? FieldAccess.PREFER_FIELD : FieldAccess.GETTER;
|
||||
Boolean doNotUseGettersConfiguration = annotationNode.getAst().readConfiguration(ConfigurationKeys.EQUALS_AND_HASH_CODE_DO_NOT_USE_GETTERS);
|
||||
boolean doNotUseGetters = annotation.isExplicit("doNotUseGetters") || doNotUseGettersConfiguration == null ? ann.doNotUseGetters() : doNotUseGettersConfiguration;
|
||||
FieldAccess fieldAccess = doNotUseGetters ? FieldAccess.PREFER_FIELD : FieldAccess.GETTER;
|
||||
|
||||
generateMethods(typeNode, annotationNode, excludes, includes, callSuper, true, fieldAccess, onParam);
|
||||
}
|
||||
|
||||
@@ -137,10 +137,10 @@ public class HandleGetter extends JavacAnnotationHandler<Getter> {
|
||||
Getter annotationInstance = annotation.getInstance();
|
||||
AccessLevel level = annotationInstance.value();
|
||||
boolean lazy = annotationInstance.lazy();
|
||||
if (lazy) handleFlagUsage(annotationNode, ConfigurationKeys.GETTER_LAZY_FLAG_USAGE, "@Getter(lazy=true)");
|
||||
|
||||
if (level == AccessLevel.NONE) {
|
||||
if (lazy) {
|
||||
annotationNode.addWarning("'lazy' does not work with AccessLevel.NONE.");
|
||||
}
|
||||
if (lazy) annotationNode.addWarning("'lazy' does not work with AccessLevel.NONE.");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user