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.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 }