23
23
import static org .inferred .freebuilder .processor .BuilderMethods .getBuilderMethod ;
24
24
import static org .inferred .freebuilder .processor .BuilderMethods .mutator ;
25
25
import static org .inferred .freebuilder .processor .BuilderMethods .setter ;
26
+ import static org .inferred .freebuilder .processor .util .Block .methodBody ;
26
27
import static org .inferred .freebuilder .processor .util .ModelUtils .asElement ;
27
28
import static org .inferred .freebuilder .processor .util .ModelUtils .findAnnotationMirror ;
28
29
import static org .inferred .freebuilder .processor .util .ModelUtils .maybeDeclared ;
34
35
35
36
import org .inferred .freebuilder .processor .Metadata .Property ;
36
37
import org .inferred .freebuilder .processor .util .Block ;
38
+ import org .inferred .freebuilder .processor .util .Excerpt ;
37
39
import org .inferred .freebuilder .processor .util .ParameterizedType ;
38
40
import org .inferred .freebuilder .processor .util .PreconditionExcerpts ;
39
41
import org .inferred .freebuilder .processor .util .SourceBuilder ;
@@ -188,7 +190,7 @@ private BuildableProperty(
188
190
@ Override
189
191
public void addBuilderFieldDeclaration (SourceBuilder code ) {
190
192
code .addLine ("private final %s %s = %s;" ,
191
- builderType , property .getName (), builderFactory .newBuilder (builderType , INFERRED_TYPES ));
193
+ builderType , property .getField (), builderFactory .newBuilder (builderType , INFERRED_TYPES ));
192
194
}
193
195
194
196
@ Override
@@ -214,10 +216,11 @@ private void addSetter(SourceBuilder code, Metadata metadata) {
214
216
setter (property ),
215
217
property .getType (),
216
218
property .getName ())
217
- .add (PreconditionExcerpts .checkNotNull (property .getName ()))
218
- .addLine (" this.%s.clear();" , property .getName ())
219
- .addLine (" this.%1$s.mergeFrom(%1$s);" , property .getName ())
220
- .addLine (" return (%s) this;" , metadata .getBuilder ())
219
+ .add (methodBody (code , property .getName ())
220
+ .add (PreconditionExcerpts .checkNotNull (property .getName ()))
221
+ .addLine (" %s.clear();" , property .getField ())
222
+ .addLine (" %s.mergeFrom(%s);" , property .getField (), property .getName ())
223
+ .addLine (" return (%s) this;" , metadata .getBuilder ()))
221
224
.addLine ("}" );
222
225
}
223
226
@@ -260,8 +263,9 @@ private void addMutate(SourceBuilder code, Metadata metadata) {
260
263
mutator (property ),
261
264
consumer .getQualifiedName (),
262
265
builderType )
263
- .addLine (" mutator.accept(%s);" , property .getName ())
264
- .addLine (" return (%s) this;" , metadata .getBuilder ())
266
+ .add (methodBody (code , "mutator" )
267
+ .addLine (" mutator.accept(%s);" , property .getField ())
268
+ .addLine (" return (%s) this;" , metadata .getBuilder ()))
265
269
.addLine ("}" );
266
270
}
267
271
@@ -272,36 +276,28 @@ private void addGetter(SourceBuilder code, Metadata metadata) {
272
276
metadata .getType ().javadocNoArgMethodLink (property .getGetterName ()))
273
277
.addLine (" */" )
274
278
.addLine ("public %s %s() {" , builderType , getBuilderMethod (property ))
275
- .addLine (" return %s;" , property .getName ())
279
+ .addLine (" return %s;" , property .getField ())
276
280
.addLine ("}" );
277
281
}
278
282
279
283
@ Override
280
- public void addFinalFieldAssignment (SourceBuilder code , String finalField , String builder ) {
281
- code .addLine ("%s = %s.%s. build();" , finalField , builder , property .getName ( ));
284
+ public void addFinalFieldAssignment (SourceBuilder code , Excerpt finalField , String builder ) {
285
+ code .addLine ("%s = %s.build();" , finalField , property .getField (). on ( builder ));
282
286
}
283
287
284
288
@ Override
285
- public void addPartialFieldAssignment (SourceBuilder code , String finalField , String builder ) {
286
- code .addLine ("%s = %s.%s. buildPartial();" , finalField , builder , property .getName ( ));
289
+ public void addPartialFieldAssignment (SourceBuilder code , Excerpt finalField , String builder ) {
290
+ code .addLine ("%s = %s.buildPartial();" , finalField , property .getField (). on ( builder ));
287
291
}
288
292
289
293
@ Override
290
294
public void addMergeFromValue (Block code , String value ) {
291
- String propertyName = property .getName ();
292
- if (propertyName .equals (value )) {
293
- propertyName = "this." + propertyName ; // see issue #78
294
- }
295
- code .addLine ("%s.mergeFrom(%s.%s());" , propertyName , value , property .getGetterName ());
295
+ code .addLine ("%s.mergeFrom(%s.%s());" , property .getField (), value , property .getGetterName ());
296
296
}
297
297
298
298
@ Override
299
299
public void addMergeFromBuilder (Block code , String builder ) {
300
- String propertyName = property .getName ();
301
- if (propertyName .equals (builder )) {
302
- propertyName = "this." + propertyName ; // see issue #78
303
- }
304
- code .add ("%s.mergeFrom(%s.%s()" , propertyName , builder , getBuilderMethod (property ));
300
+ code .add ("%s.mergeFrom(%s.%s()" , property .getField (), builder , getBuilderMethod (property ));
305
301
if (mergeFromBuilderMethod == MergeBuilderMethod .BUILD_PARTIAL_AND_MERGE ) {
306
302
code .add (".buildPartial()" );
307
303
}
@@ -312,21 +308,21 @@ public void addMergeFromBuilder(Block code, String builder) {
312
308
public void addSetBuilderFromPartial (Block code , String builder ) {
313
309
if (partialToBuilderMethod == PartialToBuilderMethod .TO_BUILDER_AND_MERGE ) {
314
310
code .add ("%s.%s().mergeFrom(%s.toBuilder());" ,
315
- builder , getBuilderMethod (property ), setter ( property ), property . getName ());
311
+ builder , getBuilderMethod (property ), property . getField ());
316
312
} else {
317
313
code .add ("%s.%s().mergeFrom(%s);" ,
318
- builder , getBuilderMethod (property ), setter ( property ), property . getName ());
314
+ builder , getBuilderMethod (property ), property . getField ());
319
315
}
320
316
}
321
317
322
318
@ Override
323
- public void addSetFromResult (SourceBuilder code , String builder , String variable ) {
319
+ public void addSetFromResult (SourceBuilder code , Excerpt builder , Excerpt variable ) {
324
320
code .addLine ("%s.%s(%s);" , builder , setter (property ), variable );
325
321
}
326
322
327
323
@ Override
328
324
public void addClearField (Block code ) {
329
- code .addLine ("%s.clear();" , property .getName ());
325
+ code .addLine ("%s.clear();" , property .getField ());
330
326
}
331
327
332
328
private static final class IsCallableMethod implements Predicate <ExecutableElement > {
0 commit comments