View Javadoc
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 }