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 package info.magnolia.poc.customer;
35
36 import java.io.Serializable;
37 import java.time.LocalDate;
38 import java.util.ArrayList;
39 import java.util.List;
40
41
42
43
44
45 public class Customer implements Serializable, Cloneable {
46
47 private Long id;
48
49 private String firstName = "";
50
51 private String lastName = "";
52
53 private LocalDate birthDate;
54
55 private CustomerStatus status;
56
57 private String email = "";
58
59 private List<Customer> children = new ArrayList<>();
60
61 public Long getId() {
62 return id;
63 }
64
65 public void setId(Long id) {
66 this.id = id;
67 }
68
69
70
71
72
73
74 public String getEmail() {
75 return email;
76 }
77
78
79
80
81
82
83
84 public void setEmail(String email) {
85 this.email = email;
86 }
87
88
89
90
91
92
93 public CustomerStatus getStatus() {
94 return status;
95 }
96
97
98
99
100
101
102
103 public void setStatus(CustomerStatus status) {
104 this.status = status;
105 }
106
107
108
109
110
111
112 public LocalDate getBirthDate() {
113 return birthDate;
114 }
115
116
117
118
119
120
121
122 public void setBirthDate(LocalDate birthDate) {
123 this.birthDate = birthDate;
124 }
125
126
127
128
129
130
131 public String getLastName() {
132 return lastName;
133 }
134
135
136
137
138
139
140
141 public void setLastName(String lastName) {
142 this.lastName = lastName;
143 }
144
145
146
147
148
149
150 public String getFirstName() {
151 return firstName;
152 }
153
154
155
156
157
158
159
160 public void setFirstName(String firstName) {
161 this.firstName = firstName;
162 }
163
164 public boolean isPersisted() {
165 return id != null;
166 }
167
168 public List<Customer> getChildren() {
169 return children;
170 }
171
172 public void setChildren(List<Customer> children) {
173 this.children = children;
174 }
175
176 @Override
177 public boolean equals(Object obj) {
178 if (this == obj) {
179 return true;
180 }
181 if (this.id == null) {
182 return false;
183 }
184
185 if (obj instanceof Customer && obj.getClass().equals(getClass())) {
186 return this.id.equals(((Customer) obj).id);
187 }
188
189 return false;
190 }
191
192 @Override
193 public int hashCode() {
194 int hash = 5;
195 hash = 43 * hash + (id == null ? 0 : id.hashCode());
196 return hash;
197 }
198
199 @Override
200 public Customer clone() throws CloneNotSupportedException {
201 return (Customer) super.clone();
202 }
203
204 @Override
205 public String toString() {
206 return firstName + " " + lastName;
207 }
208 }