aboutsummaryrefslogtreecommitdiff
path: root/test/transform/resource/after-delombok
diff options
context:
space:
mode:
Diffstat (limited to 'test/transform/resource/after-delombok')
-rw-r--r--test/transform/resource/after-delombok/BuilderSingularToBuilderWithNull.java4
-rw-r--r--test/transform/resource/after-delombok/BuilderWithToBuilder.java77
-rw-r--r--test/transform/resource/after-delombok/EqualsAndHashCodeExplicitInclude.java22
-rw-r--r--test/transform/resource/after-delombok/NoArgsConstructorForce.java1
-rw-r--r--test/transform/resource/after-delombok/SuperBuilderAbstractToBuilder.java168
-rw-r--r--test/transform/resource/after-delombok/SuperBuilderBasicToBuilder.java198
-rw-r--r--test/transform/resource/after-delombok/SuperBuilderCustomized.java102
-rw-r--r--test/transform/resource/after-delombok/SuperBuilderWithGenericsAndToBuilder.java162
-rw-r--r--test/transform/resource/after-delombok/ToStringExplicitInclude.java8
9 files changed, 683 insertions, 59 deletions
diff --git a/test/transform/resource/after-delombok/BuilderSingularToBuilderWithNull.java b/test/transform/resource/after-delombok/BuilderSingularToBuilderWithNull.java
index b0563858..96ffd2dc 100644
--- a/test/transform/resource/after-delombok/BuilderSingularToBuilderWithNull.java
+++ b/test/transform/resource/after-delombok/BuilderSingularToBuilderWithNull.java
@@ -58,6 +58,8 @@ class BuilderSingularToBuilderWithNull {
}
@java.lang.SuppressWarnings("all")
public BuilderSingularToBuilderWithNullBuilder toBuilder() {
- return new BuilderSingularToBuilderWithNullBuilder().elems(this.elems == null ? java.util.Collections.<String>emptyList() : this.elems);
+ final BuilderSingularToBuilderWithNullBuilder builder = new BuilderSingularToBuilderWithNullBuilder();
+ if (this.elems != null) builder.elems(this.elems);
+ return builder;
}
}
diff --git a/test/transform/resource/after-delombok/BuilderWithToBuilder.java b/test/transform/resource/after-delombok/BuilderWithToBuilder.java
index 445a65e5..53256107 100644
--- a/test/transform/resource/after-delombok/BuilderWithToBuilder.java
+++ b/test/transform/resource/after-delombok/BuilderWithToBuilder.java
@@ -86,7 +86,9 @@ class BuilderWithToBuilder<T> {
}
@java.lang.SuppressWarnings("all")
public BuilderWithToBuilderBuilder<T> toBuilder() {
- return new BuilderWithToBuilderBuilder<T>().one(this.mOne).two(this.mTwo).foo(BuilderWithToBuilder.<T>rrr(this)).bars(this.bars == null ? java.util.Collections.<T>emptyList() : this.bars);
+ final BuilderWithToBuilderBuilder<T> builder = new BuilderWithToBuilderBuilder<T>().one(this.mOne).two(this.mTwo).foo(BuilderWithToBuilder.rrr(this));
+ if (this.bars != null) builder.bars(this.bars);
+ return builder;
}
}
class ConstructorWithToBuilder<T> {
@@ -94,15 +96,17 @@ class ConstructorWithToBuilder<T> {
private String mTwo;
private T foo;
@lombok.Singular
- private List<T> bars;
- public ConstructorWithToBuilder(String mOne, T bar) {
+ private com.google.common.collect.ImmutableList<T> bars;
+ public ConstructorWithToBuilder(String mOne, T baz, com.google.common.collect.ImmutableList<T> bars) {
}
@java.lang.SuppressWarnings("all")
public static class ConstructorWithToBuilderBuilder<T> {
@java.lang.SuppressWarnings("all")
private String mOne;
@java.lang.SuppressWarnings("all")
- private T bar;
+ private T baz;
+ @java.lang.SuppressWarnings("all")
+ private com.google.common.collect.ImmutableList<T> bars;
@java.lang.SuppressWarnings("all")
ConstructorWithToBuilderBuilder() {
}
@@ -112,18 +116,23 @@ class ConstructorWithToBuilder<T> {
return this;
}
@java.lang.SuppressWarnings("all")
- public ConstructorWithToBuilderBuilder<T> bar(final T bar) {
- this.bar = bar;
+ public ConstructorWithToBuilderBuilder<T> baz(final T baz) {
+ this.baz = baz;
+ return this;
+ }
+ @java.lang.SuppressWarnings("all")
+ public ConstructorWithToBuilderBuilder<T> bars(final com.google.common.collect.ImmutableList<T> bars) {
+ this.bars = bars;
return this;
}
@java.lang.SuppressWarnings("all")
public ConstructorWithToBuilder<T> build() {
- return new ConstructorWithToBuilder<T>(mOne, bar);
+ return new ConstructorWithToBuilder<T>(mOne, baz, bars);
}
@java.lang.Override
@java.lang.SuppressWarnings("all")
public java.lang.String toString() {
- return "ConstructorWithToBuilder.ConstructorWithToBuilderBuilder(mOne=" + this.mOne + ", bar=" + this.bar + ")";
+ return "ConstructorWithToBuilder.ConstructorWithToBuilderBuilder(mOne=" + this.mOne + ", baz=" + this.baz + ", bars=" + this.bars + ")";
}
}
@java.lang.SuppressWarnings("all")
@@ -132,54 +141,6 @@ class ConstructorWithToBuilder<T> {
}
@java.lang.SuppressWarnings("all")
public ConstructorWithToBuilderBuilder<T> toBuilder() {
- return new ConstructorWithToBuilderBuilder<T>().mOne(this.mOne).bar(this.foo);
+ return new ConstructorWithToBuilderBuilder<T>().mOne(this.mOne).baz(this.foo).bars(this.bars);
}
-}
-class StaticWithToBuilder<T, K> {
- private String mOne;
- private String mTwo;
- private T foo;
- private K bar;
- @lombok.Singular
- private List<T> bars;
- public static <Z> StaticWithToBuilder<Z, String> test(String mOne, Z bar) {
- return new StaticWithToBuilder<Z, String>();
- }
- @java.lang.SuppressWarnings("all")
- public static class StaticWithToBuilderBuilder<Z> {
- @java.lang.SuppressWarnings("all")
- private String mOne;
- @java.lang.SuppressWarnings("all")
- private Z bar;
- @java.lang.SuppressWarnings("all")
- StaticWithToBuilderBuilder() {
- }
- @java.lang.SuppressWarnings("all")
- public StaticWithToBuilderBuilder<Z> mOne(final String mOne) {
- this.mOne = mOne;
- return this;
- }
- @java.lang.SuppressWarnings("all")
- public StaticWithToBuilderBuilder<Z> bar(final Z bar) {
- this.bar = bar;
- return this;
- }
- @java.lang.SuppressWarnings("all")
- public StaticWithToBuilder<Z, String> build() {
- return StaticWithToBuilder.<Z>test(mOne, bar);
- }
- @java.lang.Override
- @java.lang.SuppressWarnings("all")
- public java.lang.String toString() {
- return "StaticWithToBuilder.StaticWithToBuilderBuilder(mOne=" + this.mOne + ", bar=" + this.bar + ")";
- }
- }
- @java.lang.SuppressWarnings("all")
- public static <Z> StaticWithToBuilderBuilder<Z> builder() {
- return new StaticWithToBuilderBuilder<Z>();
- }
- @java.lang.SuppressWarnings("all")
- public StaticWithToBuilderBuilder<T> toBuilder() {
- return new StaticWithToBuilderBuilder<T>().mOne(this.mOne).bar(this.foo);
- }
-}
+} \ No newline at end of file
diff --git a/test/transform/resource/after-delombok/EqualsAndHashCodeExplicitInclude.java b/test/transform/resource/after-delombok/EqualsAndHashCodeExplicitInclude.java
new file mode 100644
index 00000000..7de3d5fe
--- /dev/null
+++ b/test/transform/resource/after-delombok/EqualsAndHashCodeExplicitInclude.java
@@ -0,0 +1,22 @@
+class EqualsAndHashCodeExplicitInclude {
+ int x;
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public boolean equals(final java.lang.Object o) {
+ if (o == this) return true;
+ if (!(o instanceof EqualsAndHashCodeExplicitInclude)) return false;
+ final EqualsAndHashCodeExplicitInclude other = (EqualsAndHashCodeExplicitInclude) o;
+ if (!other.canEqual((java.lang.Object) this)) return false;
+ return true;
+ }
+ @java.lang.SuppressWarnings("all")
+ protected boolean canEqual(final java.lang.Object other) {
+ return other instanceof EqualsAndHashCodeExplicitInclude;
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public int hashCode() {
+ int result = 1;
+ return result;
+ }
+} \ No newline at end of file
diff --git a/test/transform/resource/after-delombok/NoArgsConstructorForce.java b/test/transform/resource/after-delombok/NoArgsConstructorForce.java
index 3336ca19..d4bfcda2 100644
--- a/test/transform/resource/after-delombok/NoArgsConstructorForce.java
+++ b/test/transform/resource/after-delombok/NoArgsConstructorForce.java
@@ -3,6 +3,7 @@ public class NoArgsConstructorForce {
private final int[] i;
private final Object[] o;
private final java.util.List<?>[] fullQualifiedList;
+ private final String alreadyInitialized = "yes";
@java.lang.SuppressWarnings("all")
public NoArgsConstructorForce() {
diff --git a/test/transform/resource/after-delombok/SuperBuilderAbstractToBuilder.java b/test/transform/resource/after-delombok/SuperBuilderAbstractToBuilder.java
new file mode 100644
index 00000000..096bd533
--- /dev/null
+++ b/test/transform/resource/after-delombok/SuperBuilderAbstractToBuilder.java
@@ -0,0 +1,168 @@
+public class SuperBuilderAbstractToBuilder {
+ public static class Parent {
+ int parentField;
+ @java.lang.SuppressWarnings("all")
+ public static abstract class ParentBuilder<C extends Parent, B extends ParentBuilder<C, B>> {
+ @java.lang.SuppressWarnings("all")
+ private int parentField;
+ @java.lang.SuppressWarnings("all")
+ protected B $fillValuesFrom(final C instance) {
+ ParentBuilder.$fillValuesFromInstanceIntoBuilder(instance, this);
+ return self();
+ }
+ @java.lang.SuppressWarnings("all")
+ private static void $fillValuesFromInstanceIntoBuilder(final Parent instance, final ParentBuilder<?, ?> b) {
+ b.parentField(instance.parentField);
+ }
+ @java.lang.SuppressWarnings("all")
+ protected abstract B self();
+ @java.lang.SuppressWarnings("all")
+ public abstract C build();
+ @java.lang.SuppressWarnings("all")
+ public B parentField(final int parentField) {
+ this.parentField = parentField;
+ return self();
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public java.lang.String toString() {
+ return "SuperBuilderAbstractToBuilder.Parent.ParentBuilder(parentField=" + this.parentField + ")";
+ }
+ }
+ @java.lang.SuppressWarnings("all")
+ private static final class ParentBuilderImpl extends ParentBuilder<Parent, ParentBuilderImpl> {
+ @java.lang.SuppressWarnings("all")
+ private ParentBuilderImpl() {
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ protected ParentBuilderImpl self() {
+ return this;
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public Parent build() {
+ return new Parent(this);
+ }
+ }
+ @java.lang.SuppressWarnings("all")
+ protected Parent(final ParentBuilder<?, ?> b) {
+ this.parentField = b.parentField;
+ }
+ @java.lang.SuppressWarnings("all")
+ public static ParentBuilder<?, ?> builder() {
+ return new ParentBuilderImpl();
+ }
+ @java.lang.SuppressWarnings("all")
+ public ParentBuilder<?, ?> toBuilder() {
+ return new ParentBuilderImpl().$fillValuesFrom(this);
+ }
+ }
+ public static abstract class Child extends Parent {
+ double childField;
+ @java.lang.SuppressWarnings("all")
+ public static abstract class ChildBuilder<C extends Child, B extends ChildBuilder<C, B>> extends Parent.ParentBuilder<C, B> {
+ @java.lang.SuppressWarnings("all")
+ private double childField;
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ protected B $fillValuesFrom(final C instance) {
+ super.$fillValuesFrom(instance);
+ ChildBuilder.$fillValuesFromInstanceIntoBuilder(instance, this);
+ return self();
+ }
+ @java.lang.SuppressWarnings("all")
+ private static void $fillValuesFromInstanceIntoBuilder(final Child instance, final ChildBuilder<?, ?> b) {
+ b.childField(instance.childField);
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ protected abstract B self();
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public abstract C build();
+ @java.lang.SuppressWarnings("all")
+ public B childField(final double childField) {
+ this.childField = childField;
+ return self();
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public java.lang.String toString() {
+ return "SuperBuilderAbstractToBuilder.Child.ChildBuilder(super=" + super.toString() + ", childField=" + this.childField + ")";
+ }
+ }
+ @java.lang.SuppressWarnings("all")
+ protected Child(final ChildBuilder<?, ?> b) {
+ super(b);
+ this.childField = b.childField;
+ }
+ }
+ public static class GrandChild extends Child {
+ String grandChildField;
+ @java.lang.SuppressWarnings("all")
+ public static abstract class GrandChildBuilder<C extends GrandChild, B extends GrandChildBuilder<C, B>> extends Child.ChildBuilder<C, B> {
+ @java.lang.SuppressWarnings("all")
+ private String grandChildField;
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ protected B $fillValuesFrom(final C instance) {
+ super.$fillValuesFrom(instance);
+ GrandChildBuilder.$fillValuesFromInstanceIntoBuilder(instance, this);
+ return self();
+ }
+ @java.lang.SuppressWarnings("all")
+ private static void $fillValuesFromInstanceIntoBuilder(final GrandChild instance, final GrandChildBuilder<?, ?> b) {
+ b.grandChildField(instance.grandChildField);
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ protected abstract B self();
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public abstract C build();
+ @java.lang.SuppressWarnings("all")
+ public B grandChildField(final String grandChildField) {
+ this.grandChildField = grandChildField;
+ return self();
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public java.lang.String toString() {
+ return "SuperBuilderAbstractToBuilder.GrandChild.GrandChildBuilder(super=" + super.toString() + ", grandChildField=" + this.grandChildField + ")";
+ }
+ }
+ @java.lang.SuppressWarnings("all")
+ private static final class GrandChildBuilderImpl extends GrandChildBuilder<GrandChild, GrandChildBuilderImpl> {
+ @java.lang.SuppressWarnings("all")
+ private GrandChildBuilderImpl() {
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ protected GrandChildBuilderImpl self() {
+ return this;
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public GrandChild build() {
+ return new GrandChild(this);
+ }
+ }
+ @java.lang.SuppressWarnings("all")
+ protected GrandChild(final GrandChildBuilder<?, ?> b) {
+ super(b);
+ this.grandChildField = b.grandChildField;
+ }
+ @java.lang.SuppressWarnings("all")
+ public static GrandChildBuilder<?, ?> builder() {
+ return new GrandChildBuilderImpl();
+ }
+ @java.lang.SuppressWarnings("all")
+ public GrandChildBuilder<?, ?> toBuilder() {
+ return new GrandChildBuilderImpl().$fillValuesFrom(this);
+ }
+ }
+ public static void test() {
+ GrandChild x = GrandChild.builder().grandChildField("").parentField(5).childField(2.5).build().toBuilder().build();
+ }
+}
diff --git a/test/transform/resource/after-delombok/SuperBuilderBasicToBuilder.java b/test/transform/resource/after-delombok/SuperBuilderBasicToBuilder.java
new file mode 100644
index 00000000..dc0b4e70
--- /dev/null
+++ b/test/transform/resource/after-delombok/SuperBuilderBasicToBuilder.java
@@ -0,0 +1,198 @@
+import java.util.List;
+public class SuperBuilderBasicToBuilder {
+ public static class Parent {
+ private int field1;
+ int obtainViaField;
+ int obtainViaMethod;
+ String obtainViaStaticMethod;
+ List<String> items;
+ private int method() {
+ return 2;
+ }
+ private static String staticMethod(Parent instance) {
+ return "staticMethod";
+ }
+ @java.lang.SuppressWarnings("all")
+ public static abstract class ParentBuilder<C extends Parent, B extends ParentBuilder<C, B>> {
+ @java.lang.SuppressWarnings("all")
+ private int field1;
+ @java.lang.SuppressWarnings("all")
+ private int obtainViaField;
+ @java.lang.SuppressWarnings("all")
+ private int obtainViaMethod;
+ @java.lang.SuppressWarnings("all")
+ private String obtainViaStaticMethod;
+ @java.lang.SuppressWarnings("all")
+ private java.util.ArrayList<String> items;
+ @java.lang.SuppressWarnings("all")
+ protected B $fillValuesFrom(final C instance) {
+ ParentBuilder.$fillValuesFromInstanceIntoBuilder(instance, this);
+ return self();
+ }
+ @java.lang.SuppressWarnings("all")
+ private static void $fillValuesFromInstanceIntoBuilder(final Parent instance, final ParentBuilder<?, ?> b) {
+ b.field1(instance.field1);
+ b.obtainViaField(instance.field1);
+ b.obtainViaMethod(instance.method());
+ b.obtainViaStaticMethod(Parent.staticMethod(instance));
+ b.items(instance.items == null ? java.util.Collections.emptyList() : instance.items);
+ }
+ @java.lang.SuppressWarnings("all")
+ protected abstract B self();
+ @java.lang.SuppressWarnings("all")
+ public abstract C build();
+ @java.lang.SuppressWarnings("all")
+ public B field1(final int field1) {
+ this.field1 = field1;
+ return self();
+ }
+ @java.lang.SuppressWarnings("all")
+ public B obtainViaField(final int obtainViaField) {
+ this.obtainViaField = obtainViaField;
+ return self();
+ }
+ @java.lang.SuppressWarnings("all")
+ public B obtainViaMethod(final int obtainViaMethod) {
+ this.obtainViaMethod = obtainViaMethod;
+ return self();
+ }
+ @java.lang.SuppressWarnings("all")
+ public B obtainViaStaticMethod(final String obtainViaStaticMethod) {
+ this.obtainViaStaticMethod = obtainViaStaticMethod;
+ return self();
+ }
+ @java.lang.SuppressWarnings("all")
+ public B item(final String item) {
+ if (this.items == null) this.items = new java.util.ArrayList<String>();
+ this.items.add(item);
+ return self();
+ }
+ @java.lang.SuppressWarnings("all")
+ public B items(final java.util.Collection<? extends String> items) {
+ if (this.items == null) this.items = new java.util.ArrayList<String>();
+ this.items.addAll(items);
+ return self();
+ }
+ @java.lang.SuppressWarnings("all")
+ public B clearItems() {
+ if (this.items != null) this.items.clear();
+ return self();
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public java.lang.String toString() {
+ return "SuperBuilderBasicToBuilder.Parent.ParentBuilder(field1=" + this.field1 + ", obtainViaField=" + this.obtainViaField + ", obtainViaMethod=" + this.obtainViaMethod + ", obtainViaStaticMethod=" + this.obtainViaStaticMethod + ", items=" + this.items + ")";
+ }
+ }
+ @java.lang.SuppressWarnings("all")
+ private static final class ParentBuilderImpl extends ParentBuilder<Parent, ParentBuilderImpl> {
+ @java.lang.SuppressWarnings("all")
+ private ParentBuilderImpl() {
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ protected ParentBuilderImpl self() {
+ return this;
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public Parent build() {
+ return new Parent(this);
+ }
+ }
+ @java.lang.SuppressWarnings("all")
+ protected Parent(final ParentBuilder<?, ?> b) {
+ this.field1 = b.field1;
+ this.obtainViaField = b.obtainViaField;
+ this.obtainViaMethod = b.obtainViaMethod;
+ this.obtainViaStaticMethod = b.obtainViaStaticMethod;
+ java.util.List<String> items;
+ switch (b.items == null ? 0 : b.items.size()) {
+ case 0:
+ items = java.util.Collections.emptyList();
+ break;
+ case 1:
+ items = java.util.Collections.singletonList(b.items.get(0));
+ break;
+ default:
+ items = java.util.Collections.unmodifiableList(new java.util.ArrayList<String>(b.items));
+ }
+ this.items = items;
+ }
+ @java.lang.SuppressWarnings("all")
+ public static ParentBuilder<?, ?> builder() {
+ return new ParentBuilderImpl();
+ }
+ @java.lang.SuppressWarnings("all")
+ public ParentBuilder<?, ?> toBuilder() {
+ return new ParentBuilderImpl().$fillValuesFrom(this);
+ }
+ }
+ public static class Child extends Parent {
+ private double field3;
+ @java.lang.SuppressWarnings("all")
+ public static abstract class ChildBuilder<C extends Child, B extends ChildBuilder<C, B>> extends Parent.ParentBuilder<C, B> {
+ @java.lang.SuppressWarnings("all")
+ private double field3;
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ protected B $fillValuesFrom(final C instance) {
+ super.$fillValuesFrom(instance);
+ ChildBuilder.$fillValuesFromInstanceIntoBuilder(instance, this);
+ return self();
+ }
+ @java.lang.SuppressWarnings("all")
+ private static void $fillValuesFromInstanceIntoBuilder(final Child instance, final ChildBuilder<?, ?> b) {
+ b.field3(instance.field3);
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ protected abstract B self();
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public abstract C build();
+ @java.lang.SuppressWarnings("all")
+ public B field3(final double field3) {
+ this.field3 = field3;
+ return self();
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public java.lang.String toString() {
+ return "SuperBuilderBasicToBuilder.Child.ChildBuilder(super=" + super.toString() + ", field3=" + this.field3 + ")";
+ }
+ }
+ @java.lang.SuppressWarnings("all")
+ private static final class ChildBuilderImpl extends ChildBuilder<Child, ChildBuilderImpl> {
+ @java.lang.SuppressWarnings("all")
+ private ChildBuilderImpl() {
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ protected ChildBuilderImpl self() {
+ return this;
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public Child build() {
+ return new Child(this);
+ }
+ }
+ @java.lang.SuppressWarnings("all")
+ protected Child(final ChildBuilder<?, ?> b) {
+ super(b);
+ this.field3 = b.field3;
+ }
+ @java.lang.SuppressWarnings("all")
+ public static ChildBuilder<?, ?> builder() {
+ return new ChildBuilderImpl();
+ }
+ @java.lang.SuppressWarnings("all")
+ public ChildBuilder<?, ?> toBuilder() {
+ return new ChildBuilderImpl().$fillValuesFrom(this);
+ }
+ }
+ public static void test() {
+ Child x = Child.builder().field3(0.0).field1(5).item("").build().toBuilder().build();
+ }
+}
diff --git a/test/transform/resource/after-delombok/SuperBuilderCustomized.java b/test/transform/resource/after-delombok/SuperBuilderCustomized.java
new file mode 100644
index 00000000..dcc2613f
--- /dev/null
+++ b/test/transform/resource/after-delombok/SuperBuilderCustomized.java
@@ -0,0 +1,102 @@
+import java.util.List;
+public class SuperBuilderCustomized {
+ public static class Parent {
+ public static abstract class ParentBuilder<C extends Parent, B extends ParentBuilder<C, B>> {
+ @java.lang.SuppressWarnings("all")
+ private int field1;
+ public B resetToDefault() {
+ field1 = 0;
+ return self();
+ }
+ @java.lang.SuppressWarnings("all")
+ protected abstract B self();
+ @java.lang.SuppressWarnings("all")
+ public abstract C build();
+ @java.lang.SuppressWarnings("all")
+ public B field1(final int field1) {
+ this.field1 = field1;
+ return self();
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public java.lang.String toString() {
+ return "SuperBuilderCustomized.Parent.ParentBuilder(field1=" + this.field1 + ")";
+ }
+ }
+ int field1;
+ @java.lang.SuppressWarnings("all")
+ private static final class ParentBuilderImpl extends ParentBuilder<Parent, ParentBuilderImpl> {
+ @java.lang.SuppressWarnings("all")
+ private ParentBuilderImpl() {
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ protected ParentBuilderImpl self() {
+ return this;
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public Parent build() {
+ return new Parent(this);
+ }
+ }
+ @java.lang.SuppressWarnings("all")
+ protected Parent(final ParentBuilder<?, ?> b) {
+ this.field1 = b.field1;
+ }
+ @java.lang.SuppressWarnings("all")
+ public static ParentBuilder<?, ?> builder() {
+ return new ParentBuilderImpl();
+ }
+ }
+ public static class Child extends Parent {
+ private static final class ChildBuilderImpl extends ChildBuilder<Child, ChildBuilderImpl> {
+ @Override
+ public Child build() {
+ this.resetToDefault();
+ return new Child(this);
+ }
+ @java.lang.SuppressWarnings("all")
+ private ChildBuilderImpl() {
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ protected ChildBuilderImpl self() {
+ return this;
+ }
+ }
+ double field2;
+ public static ChildBuilder<?, ?> builder() {
+ return new ChildBuilderImpl().field2(10.0);
+ }
+ @java.lang.SuppressWarnings("all")
+ public static abstract class ChildBuilder<C extends Child, B extends ChildBuilder<C, B>> extends Parent.ParentBuilder<C, B> {
+ @java.lang.SuppressWarnings("all")
+ private double field2;
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ protected abstract B self();
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public abstract C build();
+ @java.lang.SuppressWarnings("all")
+ public B field2(final double field2) {
+ this.field2 = field2;
+ return self();
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public java.lang.String toString() {
+ return "SuperBuilderCustomized.Child.ChildBuilder(super=" + super.toString() + ", field2=" + this.field2 + ")";
+ }
+ }
+ @java.lang.SuppressWarnings("all")
+ protected Child(final ChildBuilder<?, ?> b) {
+ super(b);
+ this.field2 = b.field2;
+ }
+ }
+ public static void test() {
+ Child x = Child.builder().field2(1.0).field1(5).resetToDefault().build();
+ }
+}
diff --git a/test/transform/resource/after-delombok/SuperBuilderWithGenericsAndToBuilder.java b/test/transform/resource/after-delombok/SuperBuilderWithGenericsAndToBuilder.java
new file mode 100644
index 00000000..deb5a223
--- /dev/null
+++ b/test/transform/resource/after-delombok/SuperBuilderWithGenericsAndToBuilder.java
@@ -0,0 +1,162 @@
+import java.util.List;
+public class SuperBuilderWithGenericsAndToBuilder {
+ public static class Parent<A> {
+ A field1;
+ List<String> items;
+ @java.lang.SuppressWarnings("all")
+ public static abstract class ParentBuilder<A, C extends Parent<A>, B extends ParentBuilder<A, C, B>> {
+ @java.lang.SuppressWarnings("all")
+ private A field1;
+ @java.lang.SuppressWarnings("all")
+ private java.util.ArrayList<String> items;
+ @java.lang.SuppressWarnings("all")
+ protected B $fillValuesFrom(final C instance) {
+ ParentBuilder.$fillValuesFromInstanceIntoBuilder(instance, this);
+ return self();
+ }
+ @java.lang.SuppressWarnings("all")
+ private static <A> void $fillValuesFromInstanceIntoBuilder(final Parent<A> instance, final ParentBuilder<A, ?, ?> b) {
+ b.field1(instance.field1);
+ b.items(instance.items == null ? java.util.Collections.emptyList() : instance.items);
+ }
+ @java.lang.SuppressWarnings("all")
+ protected abstract B self();
+ @java.lang.SuppressWarnings("all")
+ public abstract C build();
+ @java.lang.SuppressWarnings("all")
+ public B field1(final A field1) {
+ this.field1 = field1;
+ return self();
+ }
+ @java.lang.SuppressWarnings("all")
+ public B item(final String item) {
+ if (this.items == null) this.items = new java.util.ArrayList<String>();
+ this.items.add(item);
+ return self();
+ }
+ @java.lang.SuppressWarnings("all")
+ public B items(final java.util.Collection<? extends String> items) {
+ if (this.items == null) this.items = new java.util.ArrayList<String>();
+ this.items.addAll(items);
+ return self();
+ }
+ @java.lang.SuppressWarnings("all")
+ public B clearItems() {
+ if (this.items != null) this.items.clear();
+ return self();
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public java.lang.String toString() {
+ return "SuperBuilderWithGenericsAndToBuilder.Parent.ParentBuilder(field1=" + this.field1 + ", items=" + this.items + ")";
+ }
+ }
+ @java.lang.SuppressWarnings("all")
+ private static final class ParentBuilderImpl<A> extends ParentBuilder<A, Parent<A>, ParentBuilderImpl<A>> {
+ @java.lang.SuppressWarnings("all")
+ private ParentBuilderImpl() {
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ protected ParentBuilderImpl<A> self() {
+ return this;
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public Parent<A> build() {
+ return new Parent<A>(this);
+ }
+ }
+ @java.lang.SuppressWarnings("all")
+ protected Parent(final ParentBuilder<A, ?, ?> b) {
+ this.field1 = b.field1;
+ java.util.List<String> items;
+ switch (b.items == null ? 0 : b.items.size()) {
+ case 0:
+ items = java.util.Collections.emptyList();
+ break;
+ case 1:
+ items = java.util.Collections.singletonList(b.items.get(0));
+ break;
+ default:
+ items = java.util.Collections.unmodifiableList(new java.util.ArrayList<String>(b.items));
+ }
+ this.items = items;
+ }
+ @java.lang.SuppressWarnings("all")
+ public static <A> ParentBuilder<A, ?, ?> builder() {
+ return new ParentBuilderImpl<A>();
+ }
+ @java.lang.SuppressWarnings("all")
+ public ParentBuilder<A, ?, ?> toBuilder() {
+ return new ParentBuilderImpl<A>().$fillValuesFrom(this);
+ }
+ }
+ public static class Child<A> extends Parent<A> {
+ double field3;
+ @java.lang.SuppressWarnings("all")
+ public static abstract class ChildBuilder<A, C extends Child<A>, B extends ChildBuilder<A, C, B>> extends Parent.ParentBuilder<A, C, B> {
+ @java.lang.SuppressWarnings("all")
+ private double field3;
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ protected B $fillValuesFrom(final C instance) {
+ super.$fillValuesFrom(instance);
+ ChildBuilder.$fillValuesFromInstanceIntoBuilder(instance, this);
+ return self();
+ }
+ @java.lang.SuppressWarnings("all")
+ private static <A> void $fillValuesFromInstanceIntoBuilder(final Child<A> instance, final ChildBuilder<A, ?, ?> b) {
+ b.field3(instance.field3);
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ protected abstract B self();
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public abstract C build();
+ @java.lang.SuppressWarnings("all")
+ public B field3(final double field3) {
+ this.field3 = field3;
+ return self();
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public java.lang.String toString() {
+ return "SuperBuilderWithGenericsAndToBuilder.Child.ChildBuilder(super=" + super.toString() + ", field3=" + this.field3 + ")";
+ }
+ }
+ @java.lang.SuppressWarnings("all")
+ private static final class ChildBuilderImpl<A> extends ChildBuilder<A, Child<A>, ChildBuilderImpl<A>> {
+ @java.lang.SuppressWarnings("all")
+ private ChildBuilderImpl() {
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ protected ChildBuilderImpl<A> self() {
+ return this;
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public Child<A> build() {
+ return new Child<A>(this);
+ }
+ }
+ @java.lang.SuppressWarnings("all")
+ protected Child(final ChildBuilder<A, ?, ?> b) {
+ super(b);
+ this.field3 = b.field3;
+ }
+ @java.lang.SuppressWarnings("all")
+ public static <A> ChildBuilder<A, ?, ?> builder() {
+ return new ChildBuilderImpl<A>();
+ }
+ @java.lang.SuppressWarnings("all")
+ public ChildBuilder<A, ?, ?> toBuilder() {
+ return new ChildBuilderImpl<A>().$fillValuesFrom(this);
+ }
+ }
+ public static void test() {
+ Child<Integer> x = Child.<Integer>builder().field3(0.0).field1(5).item("").build().toBuilder().build();
+ }
+}
diff --git a/test/transform/resource/after-delombok/ToStringExplicitInclude.java b/test/transform/resource/after-delombok/ToStringExplicitInclude.java
new file mode 100644
index 00000000..e6b4c09a
--- /dev/null
+++ b/test/transform/resource/after-delombok/ToStringExplicitInclude.java
@@ -0,0 +1,8 @@
+class ToStringExplicitInclude {
+ int x;
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public java.lang.String toString() {
+ return "ToStringExplicitInclude()";
+ }
+} \ No newline at end of file