aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/lombok/javac/handlers/JavacSingularsRecipes.java7
-rw-r--r--test/transform/resource/after-delombok/BuilderSingularGuavaMapsWithSetterPrefix.java94
-rw-r--r--test/transform/resource/after-delombok/BuilderSingularSetsWithSetterPrefix.java (renamed from test/transform/resource/after-delombok/BuilderSingularSetsWithPrefix.java)42
-rw-r--r--test/transform/resource/after-ecj/BuilderSimpleWithSetterPrefix.java2
-rw-r--r--test/transform/resource/before/BuilderSingularGuavaMapsWithSetterPrefix.java (renamed from test/transform/resource/before/BuilderSingularGuavaMapsWithPrefix.java)0
-rw-r--r--test/transform/resource/before/BuilderSingularToBuilderWithNullWithSetterPrefix.java2
-rw-r--r--test/transform/resource/messages-delombok/BuilderSingularNoAutoWithSetterPrefix.java.messages2
7 files changed, 123 insertions, 26 deletions
diff --git a/src/core/lombok/javac/handlers/JavacSingularsRecipes.java b/src/core/lombok/javac/handlers/JavacSingularsRecipes.java
index 56116346..10e6f9b4 100644
--- a/src/core/lombok/javac/handlers/JavacSingularsRecipes.java
+++ b/src/core/lombok/javac/handlers/JavacSingularsRecipes.java
@@ -326,9 +326,10 @@ public class JavacSingularsRecipes {
private void generatePluralMethod(CheckerFrameworkVersion cfv, boolean deprecate, JavacTreeMaker maker, JCExpression returnType, JCStatement returnStatement, SingularData data, JavacNode builderType, JCTree source, boolean fluent, AccessLevel access) {
ListBuffer<JCStatement> statements = generatePluralMethodStatements(maker, data, builderType, source);
Name name = data.getPluralName();
- Name prefixedSingularName = builderType.toName(data.getSetterPrefix());
- name = fluent ? prefixedSingularName : builderType.toName(HandlerUtil.buildAccessorName(
- getAddMethodName() + "All", name.toString()));
+
+ Name prefixedSingularName = data.getSetterPrefix().isEmpty() ? name : builderType.toName(HandlerUtil.buildAccessorName(data.getSetterPrefix(), data.getPluralName().toString()));
+ name = fluent ? prefixedSingularName
+ : builderType.toName(HandlerUtil.buildAccessorName(getAddMethodName() + "All", name.toString()));
JCExpression paramType = getPluralMethodParamType(builderType);
paramType = addTypeArgs(getTypeArgumentsCount(), true, builderType, paramType, data.getTypeArgs(), source);
long paramFlags = JavacHandlerUtil.addFinalIfNeeded(Flags.PARAMETER, builderType.getContext());
diff --git a/test/transform/resource/after-delombok/BuilderSingularGuavaMapsWithSetterPrefix.java b/test/transform/resource/after-delombok/BuilderSingularGuavaMapsWithSetterPrefix.java
new file mode 100644
index 00000000..b3162854
--- /dev/null
+++ b/test/transform/resource/after-delombok/BuilderSingularGuavaMapsWithSetterPrefix.java
@@ -0,0 +1,94 @@
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableBiMap;
+import com.google.common.collect.ImmutableSortedMap;
+class BuilderSingularGuavaMapsWithSetterPrefix<K, V> {
+ private ImmutableMap<K, V> battleaxes;
+ private ImmutableSortedMap<Integer, ? extends V> vertices;
+ @SuppressWarnings("all")
+ private ImmutableBiMap rawMap;
+ @java.lang.SuppressWarnings("all")
+ BuilderSingularGuavaMapsWithSetterPrefix(final ImmutableMap<K, V> battleaxes, final ImmutableSortedMap<Integer, ? extends V> vertices, final ImmutableBiMap rawMap) {
+ this.battleaxes = battleaxes;
+ this.vertices = vertices;
+ this.rawMap = rawMap;
+ }
+ @java.lang.SuppressWarnings("all")
+ public static class BuilderSingularGuavaMapsWithSetterPrefixBuilder<K, V> {
+ @java.lang.SuppressWarnings("all")
+ private com.google.common.collect.ImmutableMap.Builder<K, V> battleaxes;
+ @java.lang.SuppressWarnings("all")
+ private com.google.common.collect.ImmutableSortedMap.Builder<Integer, V> vertices;
+ @java.lang.SuppressWarnings("all")
+ private com.google.common.collect.ImmutableBiMap.Builder<java.lang.Object, java.lang.Object> rawMap;
+ @java.lang.SuppressWarnings("all")
+ BuilderSingularGuavaMapsWithSetterPrefixBuilder() {
+ }
+ @java.lang.SuppressWarnings("all")
+ public BuilderSingularGuavaMapsWithSetterPrefixBuilder<K, V> withBattleaxe(final K key, final V value) {
+ if (this.battleaxes == null) this.battleaxes = com.google.common.collect.ImmutableMap.builder();
+ this.battleaxes.put(key, value);
+ return this;
+ }
+ @java.lang.SuppressWarnings("all")
+ public BuilderSingularGuavaMapsWithSetterPrefixBuilder<K, V> withBattleaxes(final java.util.Map<? extends K, ? extends V> battleaxes) {
+ if (this.battleaxes == null) this.battleaxes = com.google.common.collect.ImmutableMap.builder();
+ this.battleaxes.putAll(battleaxes);
+ return this;
+ }
+ @java.lang.SuppressWarnings("all")
+ public BuilderSingularGuavaMapsWithSetterPrefixBuilder<K, V> clearBattleaxes() {
+ this.battleaxes = null;
+ return this;
+ }
+ @java.lang.SuppressWarnings("all")
+ public BuilderSingularGuavaMapsWithSetterPrefixBuilder<K, V> withVertex(final Integer key, final V value) {
+ if (this.vertices == null) this.vertices = com.google.common.collect.ImmutableSortedMap.naturalOrder();
+ this.vertices.put(key, value);
+ return this;
+ }
+ @java.lang.SuppressWarnings("all")
+ public BuilderSingularGuavaMapsWithSetterPrefixBuilder<K, V> withVertices(final java.util.Map<? extends Integer, ? extends V> vertices) {
+ if (this.vertices == null) this.vertices = com.google.common.collect.ImmutableSortedMap.naturalOrder();
+ this.vertices.putAll(vertices);
+ return this;
+ }
+ @java.lang.SuppressWarnings("all")
+ public BuilderSingularGuavaMapsWithSetterPrefixBuilder<K, V> clearVertices() {
+ this.vertices = null;
+ return this;
+ }
+ @java.lang.SuppressWarnings("all")
+ public BuilderSingularGuavaMapsWithSetterPrefixBuilder<K, V> withRawMap(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);
+ return this;
+ }
+ @java.lang.SuppressWarnings("all")
+ public BuilderSingularGuavaMapsWithSetterPrefixBuilder<K, V> withRawMap(final java.util.Map<?, ?> rawMap) {
+ if (this.rawMap == null) this.rawMap = com.google.common.collect.ImmutableBiMap.builder();
+ this.rawMap.putAll(rawMap);
+ return this;
+ }
+ @java.lang.SuppressWarnings("all")
+ public BuilderSingularGuavaMapsWithSetterPrefixBuilder<K, V> clearRawMap() {
+ this.rawMap = null;
+ return this;
+ }
+ @java.lang.SuppressWarnings("all")
+ public BuilderSingularGuavaMapsWithSetterPrefix<K, V> build() {
+ com.google.common.collect.ImmutableMap<K, V> battleaxes = this.battleaxes == null ? com.google.common.collect.ImmutableMap.<K, V>of() : this.battleaxes.build();
+ com.google.common.collect.ImmutableSortedMap<Integer, V> vertices = this.vertices == null ? com.google.common.collect.ImmutableSortedMap.<Integer, V>of() : this.vertices.build();
+ com.google.common.collect.ImmutableBiMap<java.lang.Object, java.lang.Object> rawMap = this.rawMap == null ? com.google.common.collect.ImmutableBiMap.<java.lang.Object, java.lang.Object>of() : this.rawMap.build();
+ return new BuilderSingularGuavaMapsWithSetterPrefix<K, V>(battleaxes, vertices, rawMap);
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public java.lang.String toString() {
+ return "BuilderSingularGuavaMapsWithSetterPrefix.BuilderSingularGuavaMapsWithSetterPrefixBuilder(battleaxes=" + this.battleaxes + ", vertices=" + this.vertices + ", rawMap=" + this.rawMap + ")";
+ }
+ }
+ @java.lang.SuppressWarnings("all")
+ public static <K, V> BuilderSingularGuavaMapsWithSetterPrefixBuilder<K, V> builder() {
+ return new BuilderSingularGuavaMapsWithSetterPrefixBuilder<K, V>();
+ }
+}
diff --git a/test/transform/resource/after-delombok/BuilderSingularSetsWithPrefix.java b/test/transform/resource/after-delombok/BuilderSingularSetsWithSetterPrefix.java
index e3817b59..9702b850 100644
--- a/test/transform/resource/after-delombok/BuilderSingularSetsWithPrefix.java
+++ b/test/transform/resource/after-delombok/BuilderSingularSetsWithSetterPrefix.java
@@ -1,20 +1,20 @@
import java.util.Set;
import java.util.SortedSet;
-class BuilderSingularSets<T> {
+class BuilderSingularSetsWithSetterPrefix<T> {
private Set<T> dangerMice;
private SortedSet<? extends Number> octopodes;
@SuppressWarnings("all")
private Set rawSet;
private Set<String> stringSet;
@java.lang.SuppressWarnings("all")
- BuilderSingularSets(final Set<T> dangerMice, final SortedSet<? extends Number> octopodes, final Set rawSet, final Set<String> stringSet) {
+ BuilderSingularSetsWithSetterPrefix(final Set<T> dangerMice, final SortedSet<? extends Number> octopodes, final Set rawSet, final Set<String> stringSet) {
this.dangerMice = dangerMice;
this.octopodes = octopodes;
this.rawSet = rawSet;
this.stringSet = stringSet;
}
@java.lang.SuppressWarnings("all")
- public static class BuilderSingularSetsBuilder<T> {
+ public static class BuilderSingularSetsWithSetterPrefixBuilder<T> {
@java.lang.SuppressWarnings("all")
private java.util.ArrayList<T> dangerMice;
@java.lang.SuppressWarnings("all")
@@ -24,78 +24,78 @@ class BuilderSingularSets<T> {
@java.lang.SuppressWarnings("all")
private java.util.ArrayList<String> stringSet;
@java.lang.SuppressWarnings("all")
- BuilderSingularSetsBuilder() {
+ BuilderSingularSetsWithSetterPrefixBuilder() {
}
@java.lang.SuppressWarnings("all")
- public BuilderSingularSetsBuilder<T> withDangerMouse(final T dangerMouse) {
+ public BuilderSingularSetsWithSetterPrefixBuilder<T> withDangerMouse(final T dangerMouse) {
if (this.dangerMice == null) this.dangerMice = new java.util.ArrayList<T>();
this.dangerMice.add(dangerMouse);
return this;
}
@java.lang.SuppressWarnings("all")
- public BuilderSingularSetsBuilder<T> withDangerMice(final java.util.Collection<? extends T> dangerMice) {
+ public BuilderSingularSetsWithSetterPrefixBuilder<T> withDangerMice(final java.util.Collection<? extends T> dangerMice) {
if (this.dangerMice == null) this.dangerMice = new java.util.ArrayList<T>();
this.dangerMice.addAll(dangerMice);
return this;
}
@java.lang.SuppressWarnings("all")
- public BuilderSingularSetsBuilder<T> clearDangerMice() {
+ public BuilderSingularSetsWithSetterPrefixBuilder<T> clearDangerMice() {
if (this.dangerMice != null) this.dangerMice.clear();
return this;
}
@java.lang.SuppressWarnings("all")
- public BuilderSingularSetsBuilder<T> withOctopus(final Number octopus) {
+ public BuilderSingularSetsWithSetterPrefixBuilder<T> withOctopus(final Number octopus) {
if (this.octopodes == null) this.octopodes = new java.util.ArrayList<Number>();
this.octopodes.add(octopus);
return this;
}
@java.lang.SuppressWarnings("all")
- public BuilderSingularSetsBuilder<T> withOctopodes(final java.util.Collection<? extends Number> octopodes) {
+ public BuilderSingularSetsWithSetterPrefixBuilder<T> withOctopodes(final java.util.Collection<? extends Number> octopodes) {
if (this.octopodes == null) this.octopodes = new java.util.ArrayList<Number>();
this.octopodes.addAll(octopodes);
return this;
}
@java.lang.SuppressWarnings("all")
- public BuilderSingularSetsBuilder<T> clearOctopodes() {
+ public BuilderSingularSetsWithSetterPrefixBuilder<T> clearOctopodes() {
if (this.octopodes != null) this.octopodes.clear();
return this;
}
@java.lang.SuppressWarnings("all")
- public BuilderSingularSetsBuilder<T> withRawSet(final java.lang.Object rawSet) {
+ public BuilderSingularSetsWithSetterPrefixBuilder<T> withRawSet(final java.lang.Object rawSet) {
if (this.rawSet == null) this.rawSet = new java.util.ArrayList<java.lang.Object>();
this.rawSet.add(rawSet);
return this;
}
@java.lang.SuppressWarnings("all")
- public BuilderSingularSetsBuilder<T> withRawSet(final java.util.Collection<?> rawSet) {
+ public BuilderSingularSetsWithSetterPrefixBuilder<T> withRawSet(final java.util.Collection<?> rawSet) {
if (this.rawSet == null) this.rawSet = new java.util.ArrayList<java.lang.Object>();
this.rawSet.addAll(rawSet);
return this;
}
@java.lang.SuppressWarnings("all")
- public BuilderSingularSetsBuilder<T> clearRawSet() {
+ public BuilderSingularSetsWithSetterPrefixBuilder<T> clearRawSet() {
if (this.rawSet != null) this.rawSet.clear();
return this;
}
@java.lang.SuppressWarnings("all")
- public BuilderSingularSetsBuilder<T> withStringSet(final String stringSet) {
+ public BuilderSingularSetsWithSetterPrefixBuilder<T> withStringSet(final String stringSet) {
if (this.stringSet == null) this.stringSet = new java.util.ArrayList<String>();
this.stringSet.add(stringSet);
return this;
}
@java.lang.SuppressWarnings("all")
- public BuilderSingularSetsBuilder<T> withStringSet(final java.util.Collection<? extends String> stringSet) {
+ public BuilderSingularSetsWithSetterPrefixBuilder<T> withStringSet(final java.util.Collection<? extends String> stringSet) {
if (this.stringSet == null) this.stringSet = new java.util.ArrayList<String>();
this.stringSet.addAll(stringSet);
return this;
}
@java.lang.SuppressWarnings("all")
- public BuilderSingularSetsBuilder<T> clearStringSet() {
+ public BuilderSingularSetsWithSetterPrefixBuilder<T> clearStringSet() {
if (this.stringSet != null) this.stringSet.clear();
return this;
}
@java.lang.SuppressWarnings("all")
- public BuilderSingularSets<T> build() {
+ public BuilderSingularSetsWithSetterPrefix<T> build() {
java.util.Set<T> dangerMice;
switch (this.dangerMice == null ? 0 : this.dangerMice.size()) {
case 0:
@@ -138,16 +138,16 @@ class BuilderSingularSets<T> {
stringSet.addAll(this.stringSet);
stringSet = java.util.Collections.unmodifiableSet(stringSet);
}
- return new BuilderSingularSets<T>(dangerMice, octopodes, rawSet, stringSet);
+ return new BuilderSingularSetsWithSetterPrefix<T>(dangerMice, octopodes, rawSet, stringSet);
}
@java.lang.Override
@java.lang.SuppressWarnings("all")
public java.lang.String toString() {
- return "BuilderSingularSets.BuilderSingularSetsBuilder(dangerMice=" + this.dangerMice + ", octopodes=" + this.octopodes + ", rawSet=" + this.rawSet + ", stringSet=" + this.stringSet + ")";
+ return "BuilderSingularSetsWithSetterPrefix.BuilderSingularSetsWithSetterPrefixBuilder(dangerMice=" + this.dangerMice + ", octopodes=" + this.octopodes + ", rawSet=" + this.rawSet + ", stringSet=" + this.stringSet + ")";
}
}
@java.lang.SuppressWarnings("all")
- public static <T> BuilderSingularSetsBuilder<T> builder() {
- return new BuilderSingularSetsBuilder<T>();
+ public static <T> BuilderSingularSetsWithSetterPrefixBuilder<T> builder() {
+ return new BuilderSingularSetsWithSetterPrefixBuilder<T>();
}
}
diff --git a/test/transform/resource/after-ecj/BuilderSimpleWithSetterPrefix.java b/test/transform/resource/after-ecj/BuilderSimpleWithSetterPrefix.java
index 3bc8d882..ad3485c6 100644
--- a/test/transform/resource/after-ecj/BuilderSimpleWithSetterPrefix.java
+++ b/test/transform/resource/after-ecj/BuilderSimpleWithSetterPrefix.java
@@ -1,5 +1,5 @@
import java.util.List;
-@lombok.Builder(access = lombok.AccessLevel.PROTECTED,setterPrefix = "with") class BulderSimpleWithSetterPrefix<T> {
+@lombok.Builder(access = lombok.AccessLevel.PROTECTED,setterPrefix = "with") class BuilderSimpleWithSetterPrefix<T> {
protected static @java.lang.SuppressWarnings("all") class BuilderSimpleWithSetterPrefix<T> {
private @java.lang.SuppressWarnings("all") int unprefixed;
@java.lang.SuppressWarnings("all") BuilderWithPrefixBuilder() {
diff --git a/test/transform/resource/before/BuilderSingularGuavaMapsWithPrefix.java b/test/transform/resource/before/BuilderSingularGuavaMapsWithSetterPrefix.java
index a2b48cb3..a2b48cb3 100644
--- a/test/transform/resource/before/BuilderSingularGuavaMapsWithPrefix.java
+++ b/test/transform/resource/before/BuilderSingularGuavaMapsWithSetterPrefix.java
diff --git a/test/transform/resource/before/BuilderSingularToBuilderWithNullWithSetterPrefix.java b/test/transform/resource/before/BuilderSingularToBuilderWithNullWithSetterPrefix.java
index 845b38df..454cac97 100644
--- a/test/transform/resource/before/BuilderSingularToBuilderWithNullWithSetterPrefix.java
+++ b/test/transform/resource/before/BuilderSingularToBuilderWithNullWithSetterPrefix.java
@@ -5,6 +5,6 @@ class BuilderSingularToBuilderWithNullWithSetterPrefix {
@Singular private java.util.List<String> elems;
public static void test() {
- new BuilderSingularToBuilderWithNull(null).toBuilder();
+ new BuilderSingularToBuilderWithNullWithSetterPrefix(null).toBuilder();
}
}
diff --git a/test/transform/resource/messages-delombok/BuilderSingularNoAutoWithSetterPrefix.java.messages b/test/transform/resource/messages-delombok/BuilderSingularNoAutoWithSetterPrefix.java.messages
new file mode 100644
index 00000000..8719789b
--- /dev/null
+++ b/test/transform/resource/messages-delombok/BuilderSingularNoAutoWithSetterPrefix.java.messages
@@ -0,0 +1,2 @@
+8 The singular must be specified explicitly (e.g. @Singular("task")) because auto singularization is disabled.
+10 The singular must be specified explicitly (e.g. @Singular("task")) because auto singularization is disabled.