1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
import java.util.Set;
public class BuilderWithRecursiveGenerics {
interface Inter<T, U extends Inter<T, U>> {
}
public static final class Test<Foo, Bar extends Set<Foo>, Quz extends Inter<Bar, Quz>> {
private final Foo foo;
private final Bar bar;
@java.lang.SuppressWarnings("all")
Test(final Foo foo, final Bar bar) {
this.foo = foo;
this.bar = bar;
}
@java.lang.SuppressWarnings("all")
public static class TestBuilder<Foo, Bar extends Set<Foo>, Quz extends Inter<Bar, Quz>> {
@java.lang.SuppressWarnings("all")
private Foo foo;
@java.lang.SuppressWarnings("all")
private Bar bar;
@java.lang.SuppressWarnings("all")
TestBuilder() {
}
/**
* @return {@code this}.
*/
@java.lang.SuppressWarnings("all")
public BuilderWithRecursiveGenerics.Test.TestBuilder<Foo, Bar, Quz> foo(final Foo foo) {
this.foo = foo;
return this;
}
/**
* @return {@code this}.
*/
@java.lang.SuppressWarnings("all")
public BuilderWithRecursiveGenerics.Test.TestBuilder<Foo, Bar, Quz> bar(final Bar bar) {
this.bar = bar;
return this;
}
@java.lang.SuppressWarnings("all")
public BuilderWithRecursiveGenerics.Test<Foo, Bar, Quz> build() {
return new BuilderWithRecursiveGenerics.Test<Foo, Bar, Quz>(this.foo, this.bar);
}
@java.lang.Override
@java.lang.SuppressWarnings("all")
public java.lang.String toString() {
return "BuilderWithRecursiveGenerics.Test.TestBuilder(foo=" + this.foo + ", bar=" + this.bar + ")";
}
}
@java.lang.SuppressWarnings("all")
public static <Foo, Bar extends Set<Foo>, Quz extends Inter<Bar, Quz>> BuilderWithRecursiveGenerics.Test.TestBuilder<Foo, Bar, Quz> builder() {
return new BuilderWithRecursiveGenerics.Test.TestBuilder<Foo, Bar, Quz>();
}
@java.lang.SuppressWarnings("all")
public Foo getFoo() {
return this.foo;
}
@java.lang.SuppressWarnings("all")
public Bar getBar() {
return this.bar;
}
@java.lang.Override
@java.lang.SuppressWarnings("all")
public boolean equals(final java.lang.Object o) {
if (o == this) return true;
if (!(o instanceof BuilderWithRecursiveGenerics.Test)) return false;
final BuilderWithRecursiveGenerics.Test<?, ?, ?> other = (BuilderWithRecursiveGenerics.Test<?, ?, ?>) o;
final java.lang.Object this$foo = this.getFoo();
final java.lang.Object other$foo = other.getFoo();
if (this$foo == null ? other$foo != null : !this$foo.equals(other$foo)) return false;
final java.lang.Object this$bar = this.getBar();
final java.lang.Object other$bar = other.getBar();
if (this$bar == null ? other$bar != null : !this$bar.equals(other$bar)) return false;
return true;
}
@java.lang.Override
@java.lang.SuppressWarnings("all")
public int hashCode() {
final int PRIME = 59;
int result = 1;
final java.lang.Object $foo = this.getFoo();
result = result * PRIME + ($foo == null ? 43 : $foo.hashCode());
final java.lang.Object $bar = this.getBar();
result = result * PRIME + ($bar == null ? 43 : $bar.hashCode());
return result;
}
@java.lang.Override
@java.lang.SuppressWarnings("all")
public java.lang.String toString() {
return "BuilderWithRecursiveGenerics.Test(foo=" + this.getFoo() + ", bar=" + this.getBar() + ")";
}
}
}
|