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