1 // license-header java merge-point
2 //
3 // Attention: Generated code! Do not modify by hand!
4 // Generated by: hibernate/HibernateEntity.vsl in andromda-hibernate-cartridge.
5 //
6 package fr.ifremer.quadrige3.core.dao.data.aquaculture;
7
8 /*-
9 * #%L
10 * Quadrige3 Core :: Client API
11 * %%
12 * Copyright (C) 2017 - 2024 Ifremer
13 * %%
14 * This program is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Affero General Public License as published by
16 * the Free Software Foundation, either version 3 of the License, or
17 * (at your option) any later version.
18 *
19 * This program is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU General Public License for more details.
23 *
24 * You should have received a copy of the GNU Affero General Public License
25 * along with this program. If not, see <http://www.gnu.org/licenses/>.
26 * #L%
27 */
28 import fr.ifremer.quadrige3.core.dao.referential.Status;
29 import java.io.Serializable;
30 import java.sql.Timestamp;
31 import java.util.Collection;
32 import java.util.HashSet;
33
34 /**
35 * Structure d'élevage
36 * C'est l'ensemble des structures qui tiennent les systèmes. Exemple : la filière, la table, le
37 * bouchot, etc..
38 */
39 // HibernateEntity.vsl annotations merge-point
40 public abstract class BreedingStructure
41 implements Serializable, Comparable<BreedingStructure>
42 {
43 /**
44 * The serial version UID of this class. Needed for serialization.
45 */
46 private static final long serialVersionUID = -1192222427068277120L;
47
48 // Generate 3 attributes
49 private String breedingStructCd;
50
51 /**
52 * Code de la structure d'élevage
53 * @return this.breedingStructCd String
54 */
55 public String getBreedingStructCd()
56 {
57 return this.breedingStructCd;
58 }
59
60 /**
61 * Code de la structure d'élevage
62 * @param breedingStructCdIn String
63 */
64 public void setBreedingStructCd(String breedingStructCdIn)
65 {
66 this.breedingStructCd = breedingStructCdIn;
67 }
68
69 private String breedingStructNm;
70
71 /**
72 * Libellé de la structure d'élevage
73 * @return this.breedingStructNm String
74 */
75 public String getBreedingStructNm()
76 {
77 return this.breedingStructNm;
78 }
79
80 /**
81 * Libellé de la structure d'élevage
82 * @param breedingStructNmIn String
83 */
84 public void setBreedingStructNm(String breedingStructNmIn)
85 {
86 this.breedingStructNm = breedingStructNmIn;
87 }
88
89 private Timestamp updateDt;
90
91 /**
92 * Date de maj
93 * @return this.updateDt Timestamp
94 */
95 public Timestamp getUpdateDt()
96 {
97 return this.updateDt;
98 }
99
100 /**
101 * Date de maj
102 * @param updateDtIn Timestamp
103 */
104 public void setUpdateDt(Timestamp updateDtIn)
105 {
106 this.updateDt = updateDtIn;
107 }
108
109 // Generate 3 associations
110 private Collection<Batch> batches = new HashSet<Batch>();
111
112 /**
113 * Un lot est un groupe d'animaux issu d'une même population initiale et suivi sur un même point
114 * dans
115 * des conditions d'élevage similaires (conditions expérimentales). Un lot est défini par : *
116 * une
117 * population initiale * un lieu de surveillance * des caractéristiques d'élevage (système +
118 * structure)
119 * * un niveau Ce lot de mollusques est positionné sur le terrain.
120 * @return this.batches Collection<Batch>
121 */
122 public Collection<Batch> getBatches()
123 {
124 return this.batches;
125 }
126
127 /**
128 * Un lot est un groupe d'animaux issu d'une même population initiale et suivi sur un même point
129 * dans
130 * des conditions d'élevage similaires (conditions expérimentales). Un lot est défini par : *
131 * une
132 * population initiale * un lieu de surveillance * des caractéristiques d'élevage (système +
133 * structure)
134 * * un niveau Ce lot de mollusques est positionné sur le terrain.
135 * @param batchesIn Collection<Batch>
136 */
137 public void setBatches(Collection<Batch> batchesIn)
138 {
139 this.batches = batchesIn;
140 }
141
142 /**
143 * Un lot est un groupe d'animaux issu d'une même population initiale et suivi sur un même point
144 * dans
145 * des conditions d'élevage similaires (conditions expérimentales). Un lot est défini par : *
146 * une
147 * population initiale * un lieu de surveillance * des caractéristiques d'élevage (système +
148 * structure)
149 * * un niveau Ce lot de mollusques est positionné sur le terrain.
150 * @param elementToAdd Batch
151 * @return <tt>true</tt> if this collection changed as a result of the
152 * call
153 */
154 public boolean addBatches(Batch elementToAdd)
155 {
156 return this.batches.add(elementToAdd);
157 }
158
159 /**
160 * Un lot est un groupe d'animaux issu d'une même population initiale et suivi sur un même point
161 * dans
162 * des conditions d'élevage similaires (conditions expérimentales). Un lot est défini par : *
163 * une
164 * population initiale * un lieu de surveillance * des caractéristiques d'élevage (système +
165 * structure)
166 * * un niveau Ce lot de mollusques est positionné sur le terrain.
167 * @param elementToRemove Batch
168 * @return <tt>true</tt> if this collection changed as a result of the
169 * call
170 */
171 public boolean removeBatches(Batch elementToRemove)
172 {
173 return this.batches.remove(elementToRemove);
174 }
175
176 private Collection<HistoricalAccount> historicalAccounts = new HashSet<HistoricalAccount>();
177
178 /**
179 * Ligne d'historique
180 * Une population de mollusques a subit différents transferts avant d'être utilisée pour une
181 * étude. Ce
182 * sont ces transferts entre secteurs conchylicoles, par exemple, que l'on veut tracer. Une
183 * ligne
184 * d'historique c'est : * un lieu de surveillance ou * un secteur conchylicole * une date de
185 * début de
186 * phase * une date de fin de phase * des caractéristiques d'élevage (système + structure) * un
187 * type de
188 * phase d'élevag
189 * @return this.historicalAccounts Collection<HistoricalAccount>
190 */
191 public Collection<HistoricalAccount> getHistoricalAccounts()
192 {
193 return this.historicalAccounts;
194 }
195
196 /**
197 * Ligne d'historique
198 * Une population de mollusques a subit différents transferts avant d'être utilisée pour une
199 * étude. Ce
200 * sont ces transferts entre secteurs conchylicoles, par exemple, que l'on veut tracer. Une
201 * ligne
202 * d'historique c'est : * un lieu de surveillance ou * un secteur conchylicole * une date de
203 * début de
204 * phase * une date de fin de phase * des caractéristiques d'élevage (système + structure) * un
205 * type de
206 * phase d'élevag
207 * @param historicalAccountsIn Collection<HistoricalAccount>
208 */
209 public void setHistoricalAccounts(Collection<HistoricalAccount> historicalAccountsIn)
210 {
211 this.historicalAccounts = historicalAccountsIn;
212 }
213
214 /**
215 * Ligne d'historique
216 * Une population de mollusques a subit différents transferts avant d'être utilisée pour une
217 * étude. Ce
218 * sont ces transferts entre secteurs conchylicoles, par exemple, que l'on veut tracer. Une
219 * ligne
220 * d'historique c'est : * un lieu de surveillance ou * un secteur conchylicole * une date de
221 * début de
222 * phase * une date de fin de phase * des caractéristiques d'élevage (système + structure) * un
223 * type de
224 * phase d'élevag
225 * @param elementToAdd HistoricalAccount
226 * @return <tt>true</tt> if this collection changed as a result of the
227 * call
228 */
229 public boolean addHistoricalAccounts(HistoricalAccount elementToAdd)
230 {
231 return this.historicalAccounts.add(elementToAdd);
232 }
233
234 /**
235 * Ligne d'historique
236 * Une population de mollusques a subit différents transferts avant d'être utilisée pour une
237 * étude. Ce
238 * sont ces transferts entre secteurs conchylicoles, par exemple, que l'on veut tracer. Une
239 * ligne
240 * d'historique c'est : * un lieu de surveillance ou * un secteur conchylicole * une date de
241 * début de
242 * phase * une date de fin de phase * des caractéristiques d'élevage (système + structure) * un
243 * type de
244 * phase d'élevag
245 * @param elementToRemove HistoricalAccount
246 * @return <tt>true</tt> if this collection changed as a result of the
247 * call
248 */
249 public boolean removeHistoricalAccounts(HistoricalAccount elementToRemove)
250 {
251 return this.historicalAccounts.remove(elementToRemove);
252 }
253
254 private Status status;
255
256 /**
257 * Liste des états possibles d'un objet.
258 * @return this.status Status
259 */
260 public Status getStatus()
261 {
262 return this.status;
263 }
264
265 /**
266 * Liste des états possibles d'un objet.
267 * @param statusIn Status
268 */
269 public void setStatus(Status statusIn)
270 {
271 this.status = statusIn;
272 }
273
274 /**
275 * Returns <code>true</code> if the argument is an BreedingStructure instance and all identifiers for this entity
276 * equal the identifiers of the argument entity. Returns <code>false</code> otherwise.
277 */
278 @Override
279 public boolean equals(Object object)
280 {
281 if (this == object)
282 {
283 return true;
284 }
285 if (!(object instanceof BreedingStructure))
286 {
287 return false;
288 }
289 final BreedingStructure that = (BreedingStructure)object;
290 if (this.breedingStructCd == null || that.getBreedingStructCd() == null || !this.breedingStructCd.equals(that.getBreedingStructCd()))
291 {
292 return false;
293 }
294 return true;
295 }
296
297 /**
298 * Returns a hash code based on this entity's identifiers.
299 */
300 @Override
301 public int hashCode()
302 {
303 int hashCode = 0;
304 hashCode = 29 * hashCode + (this.breedingStructCd == null ? 0 : this.breedingStructCd.hashCode());
305
306 return hashCode;
307 }
308
309 /**
310 * Constructs new instances of {@link BreedingStructure}.
311 */
312 public static final class Factory
313 {
314 /**
315 * Constructs a new instance of {@link BreedingStructure}.
316 * @return new BreedingStructureImpl()
317 */
318 public static BreedingStructure newInstance()
319 {
320 return new BreedingStructureImpl();
321 }
322
323 /**
324 * Constructs a new instance of {@link BreedingStructure}, taking all required and/or
325 * read-only properties as arguments, except for identifiers.
326 * @param breedingStructNm String
327 * @param status Status
328 * @return newInstance
329 */
330 public static BreedingStructure newInstance(String breedingStructNm, Status status)
331 {
332 final BreedingStructure entity = new BreedingStructureImpl();
333 entity.setBreedingStructNm(breedingStructNm);
334 entity.setStatus(status);
335 return entity;
336 }
337
338 /**
339 * Constructs a new instance of {@link BreedingStructure}, taking all possible properties
340 * (except the identifier(s))as arguments.
341 * @param breedingStructNm String
342 * @param updateDt Timestamp
343 * @param batches Collection<Batch>
344 * @param historicalAccounts Collection<HistoricalAccount>
345 * @param status Status
346 * @return newInstance BreedingStructure
347 */
348 public static BreedingStructure newInstance(String breedingStructNm, Timestamp updateDt, Collection<Batch> batches, Collection<HistoricalAccount> historicalAccounts, Status status)
349 {
350 final BreedingStructure entity = new BreedingStructureImpl();
351 entity.setBreedingStructNm(breedingStructNm);
352 entity.setUpdateDt(updateDt);
353 entity.setBatches(batches);
354 entity.setHistoricalAccounts(historicalAccounts);
355 entity.setStatus(status);
356 return entity;
357 }
358 }
359
360 /**
361 * @see Comparable#compareTo
362 */
363 public int compareTo(BreedingStructure o)
364 {
365 int cmp = 0;
366 if (this.getBreedingStructCd() != null)
367 {
368 cmp = this.getBreedingStructCd().compareTo(o.getBreedingStructCd());
369 }
370 else
371 {
372 if (this.getBreedingStructNm() != null)
373 {
374 cmp = (cmp != 0 ? cmp : this.getBreedingStructNm().compareTo(o.getBreedingStructNm()));
375 }
376 if (this.getUpdateDt() != null)
377 {
378 cmp = (cmp != 0 ? cmp : this.getUpdateDt().compareTo(o.getUpdateDt()));
379 }
380 }
381 return cmp;
382 }
383 // HibernateEntity.vsl merge-point
384 // BreedingStructure.java merge-point
385 }