From a45f1908f186e73908e37ac7a3fc6b1172b4f928 Mon Sep 17 00:00:00 2001 From: Andrea Cavalli Date: Thu, 24 Feb 2022 02:24:24 +0100 Subject: [PATCH] Avoid creating itself if the value set is equal --- .../it/cavallium/data/generator/SourcesGenerator.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/it/cavallium/data/generator/SourcesGenerator.java b/src/main/java/it/cavallium/data/generator/SourcesGenerator.java index a2dffaf..554d9b7 100644 --- a/src/main/java/it/cavallium/data/generator/SourcesGenerator.java +++ b/src/main/java/it/cavallium/data/generator/SourcesGenerator.java @@ -2733,6 +2733,14 @@ public class SourcesGenerator { setterMethod.returns(classType); if (!fieldType.isPrimitive()) { setterMethod.addStatement("$T.requireNonNull(" + fieldName + ")", Objects.class); + + setterMethod.beginControlFlow("if ($T.equals(" + fieldName + ", this." + fieldName + "))", Objects.class); + setterMethod.addStatement("return this"); + setterMethod.endControlFlow(); + } else { + setterMethod.beginControlFlow("if (" + fieldName + " == this." + fieldName + ")"); + setterMethod.addStatement("return this"); + setterMethod.endControlFlow(); } setterMethod.addCode("$[return $T.of(\n$]", classType); setterMethod.addCode("$>");