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   * Système d'élevage
36   * C'est l'ensemble des contenants (des enceintes) ou des supports de mollusques.  Exemple = la
37   * poche, la corde, le casier, etc..
38   */
39  // HibernateEntity.vsl annotations merge-point
40  public abstract class BreedingSystem
41      implements Serializable, Comparable<BreedingSystem>
42  {
43      /**
44       * The serial version UID of this class. Needed for serialization.
45       */
46      private static final long serialVersionUID = 6758967807618915978L;
47  
48      // Generate 3 attributes
49      private String breedingSystemCd;
50  
51      /**
52       * Code du système d'élevage
53       * @return this.breedingSystemCd String
54       */
55      public String getBreedingSystemCd()
56      {
57          return this.breedingSystemCd;
58      }
59  
60      /**
61       * Code du système d'élevage
62       * @param breedingSystemCdIn String
63       */
64      public void setBreedingSystemCd(String breedingSystemCdIn)
65      {
66          this.breedingSystemCd = breedingSystemCdIn;
67      }
68  
69      private String breedingSystemNm;
70  
71      /**
72       * Libellé du système d'élevage
73       * @return this.breedingSystemNm String
74       */
75      public String getBreedingSystemNm()
76      {
77          return this.breedingSystemNm;
78      }
79  
80      /**
81       * Libellé du système d'élevage
82       * @param breedingSystemNmIn String
83       */
84      public void setBreedingSystemNm(String breedingSystemNmIn)
85      {
86          this.breedingSystemNm = breedingSystemNmIn;
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 Status status;
177 
178     /**
179      * Liste des états possibles d'un objet.
180      * @return this.status Status
181      */
182     public Status getStatus()
183     {
184         return this.status;
185     }
186 
187     /**
188      * Liste des états possibles d'un objet.
189      * @param statusIn Status
190      */
191     public void setStatus(Status statusIn)
192     {
193         this.status = statusIn;
194     }
195 
196     private Collection<HistoricalAccount> historicalAccounts = new HashSet<HistoricalAccount>();
197 
198     /**
199      * Ligne d'historique
200      * Une population de mollusques a subit différents transferts avant d'être utilisée pour une
201      * étude. Ce
202      * sont ces transferts entre secteurs conchylicoles, par exemple, que l'on veut tracer. Une
203      * ligne
204      * d'historique c'est : * un lieu de surveillance ou * un secteur conchylicole  * une date de
205      * début de
206      * phase * une date de fin de phase * des caractéristiques d'élevage (système + structure) * un
207      * type de
208      * phase d'élevag
209      * @return this.historicalAccounts Collection<HistoricalAccount>
210      */
211     public Collection<HistoricalAccount> getHistoricalAccounts()
212     {
213         return this.historicalAccounts;
214     }
215 
216     /**
217      * Ligne d'historique
218      * Une population de mollusques a subit différents transferts avant d'être utilisée pour une
219      * étude. Ce
220      * sont ces transferts entre secteurs conchylicoles, par exemple, que l'on veut tracer. Une
221      * ligne
222      * d'historique c'est : * un lieu de surveillance ou * un secteur conchylicole  * une date de
223      * début de
224      * phase * une date de fin de phase * des caractéristiques d'élevage (système + structure) * un
225      * type de
226      * phase d'élevag
227      * @param historicalAccountsIn Collection<HistoricalAccount>
228      */
229     public void setHistoricalAccounts(Collection<HistoricalAccount> historicalAccountsIn)
230     {
231         this.historicalAccounts = historicalAccountsIn;
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 elementToAdd HistoricalAccount
246      * @return <tt>true</tt> if this collection changed as a result of the
247      *         call
248      */
249     public boolean addHistoricalAccounts(HistoricalAccount elementToAdd)
250     {
251         return this.historicalAccounts.add(elementToAdd);
252     }
253 
254     /**
255      * Ligne d'historique
256      * Une population de mollusques a subit différents transferts avant d'être utilisée pour une
257      * étude. Ce
258      * sont ces transferts entre secteurs conchylicoles, par exemple, que l'on veut tracer. Une
259      * ligne
260      * d'historique c'est : * un lieu de surveillance ou * un secteur conchylicole  * une date de
261      * début de
262      * phase * une date de fin de phase * des caractéristiques d'élevage (système + structure) * un
263      * type de
264      * phase d'élevag
265      * @param elementToRemove HistoricalAccount
266      * @return <tt>true</tt> if this collection changed as a result of the
267      *         call
268      */
269     public boolean removeHistoricalAccounts(HistoricalAccount elementToRemove)
270     {
271         return this.historicalAccounts.remove(elementToRemove);
272     }
273 
274     /**
275      * Returns <code>true</code> if the argument is an BreedingSystem 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 BreedingSystem))
286         {
287             return false;
288         }
289         final BreedingSystem that = (BreedingSystem)object;
290         if (this.breedingSystemCd == null || that.getBreedingSystemCd() == null || !this.breedingSystemCd.equals(that.getBreedingSystemCd()))
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.breedingSystemCd == null ? 0 : this.breedingSystemCd.hashCode());
305 
306         return hashCode;
307     }
308 
309     /**
310      * Constructs new instances of {@link BreedingSystem}.
311      */
312     public static final class Factory
313     {
314         /**
315          * Constructs a new instance of {@link BreedingSystem}.
316          * @return new BreedingSystemImpl()
317          */
318         public static BreedingSystem newInstance()
319         {
320             return new BreedingSystemImpl();
321         }
322 
323         /**
324          * Constructs a new instance of {@link BreedingSystem}, taking all required and/or
325          * read-only properties as arguments, except for identifiers.
326          * @param breedingSystemNm String
327          * @param status Status
328          * @return newInstance
329          */
330         public static BreedingSystem newInstance(String breedingSystemNm, Status status)
331         {
332             final BreedingSystem entity = new BreedingSystemImpl();
333             entity.setBreedingSystemNm(breedingSystemNm);
334             entity.setStatus(status);
335             return entity;
336         }
337 
338         /**
339          * Constructs a new instance of {@link BreedingSystem}, taking all possible properties
340          * (except the identifier(s))as arguments.
341          * @param breedingSystemNm String
342          * @param updateDt Timestamp
343          * @param batches Collection<Batch>
344          * @param status Status
345          * @param historicalAccounts Collection<HistoricalAccount>
346          * @return newInstance BreedingSystem
347          */
348         public static BreedingSystem newInstance(String breedingSystemNm, Timestamp updateDt, Collection<Batch> batches, Status status, Collection<HistoricalAccount> historicalAccounts)
349         {
350             final BreedingSystem entity = new BreedingSystemImpl();
351             entity.setBreedingSystemNm(breedingSystemNm);
352             entity.setUpdateDt(updateDt);
353             entity.setBatches(batches);
354             entity.setStatus(status);
355             entity.setHistoricalAccounts(historicalAccounts);
356             return entity;
357         }
358     }
359 
360     /**
361      * @see Comparable#compareTo
362      */
363     public int compareTo(BreedingSystem o)
364     {
365         int cmp = 0;
366         if (this.getBreedingSystemCd() != null)
367         {
368             cmp = this.getBreedingSystemCd().compareTo(o.getBreedingSystemCd());
369         }
370         else
371         {
372             if (this.getBreedingSystemNm() != null)
373             {
374                 cmp = (cmp != 0 ? cmp : this.getBreedingSystemNm().compareTo(o.getBreedingSystemNm()));
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 // BreedingSystem.java merge-point
385 }