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.administration.program;
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.administration.strategy.Strategy;
29  import fr.ifremer.quadrige3.core.dao.referential.Status;
30  import fr.ifremer.quadrige3.core.dao.system.ComputeFunction;
31  import java.io.Serializable;
32  import java.sql.Timestamp;
33  import java.util.Collection;
34  import java.util.Date;
35  import java.util.HashSet;
36  
37  /**
38   * Activités à l'origine de la collecte d'un ensemble cohérent de données.
39   */
40  // HibernateEntity.vsl annotations merge-point
41  public abstract class Program
42      implements Serializable, Comparable<Program>
43  {
44      /**
45       * The serial version UID of this class. Needed for serialization.
46       */
47      private static final long serialVersionUID = -5669651419793779683L;
48  
49      // Generate 6 attributes
50      private String progCd;
51  
52      /**
53       * Code unique du programme
54       * @return this.progCd String
55       */
56      public String getProgCd()
57      {
58          return this.progCd;
59      }
60  
61      /**
62       * Code unique du programme
63       * @param progCdIn String
64       */
65      public void setProgCd(String progCdIn)
66      {
67          this.progCd = progCdIn;
68      }
69  
70      private String progNm;
71  
72      /**
73       * Libellé du programme
74       * @return this.progNm String
75       */
76      public String getProgNm()
77      {
78          return this.progNm;
79      }
80  
81      /**
82       * Libellé du programme
83       * @param progNmIn String
84       */
85      public void setProgNm(String progNmIn)
86      {
87          this.progNm = progNmIn;
88      }
89  
90      private String progDc;
91  
92      /**
93       * Description du programme
94       * @return this.progDc String
95       */
96      public String getProgDc()
97      {
98          return this.progDc;
99      }
100 
101     /**
102      * Description du programme
103      * @param progDcIn String
104      */
105     public void setProgDc(String progDcIn)
106     {
107         this.progDc = progDcIn;
108     }
109 
110     private Date progCreationDt;
111 
112     /**
113      * Date de création de l'objet
114      * @return this.progCreationDt Date
115      */
116     public Date getProgCreationDt()
117     {
118         return this.progCreationDt;
119     }
120 
121     /**
122      * Date de création de l'objet
123      * @param progCreationDtIn Date
124      */
125     public void setProgCreationDt(Date progCreationDtIn)
126     {
127         this.progCreationDt = progCreationDtIn;
128     }
129 
130     private Timestamp updateDt;
131 
132     /**
133      * Date de mise à jour de l'objet
134      * @return this.updateDt Timestamp
135      */
136     public Timestamp getUpdateDt()
137     {
138         return this.updateDt;
139     }
140 
141     /**
142      * Date de mise à jour de l'objet
143      * @param updateDtIn Timestamp
144      */
145     public void setUpdateDt(Timestamp updateDtIn)
146     {
147         this.updateDt = updateDtIn;
148     }
149 
150     private String progCm;
151 
152     /**
153      * 
154      * @return this.progCm String
155      */
156     public String getProgCm()
157     {
158         return this.progCm;
159     }
160 
161     /**
162      * 
163      * @param progCmIn String
164      */
165     public void setProgCm(String progCmIn)
166     {
167         this.progCm = progCmIn;
168     }
169 
170     // Generate 18 associations
171     private Status status;
172 
173     /**
174      * Liste des états possibles d'un objet.
175      * @return this.status Status
176      */
177     public Status getStatus()
178     {
179         return this.status;
180     }
181 
182     /**
183      * Liste des états possibles d'un objet.
184      * @param statusIn Status
185      */
186     public void setStatus(Status statusIn)
187     {
188         this.status = statusIn;
189     }
190 
191     private Collection<MonLocProg> monLocProgs = new HashSet<MonLocProg>();
192 
193     /**
194      * Liste des lieux surveillés par un programme.
195      * @return this.monLocProgs Collection<MonLocProg>
196      */
197     public Collection<MonLocProg> getMonLocProgs()
198     {
199         return this.monLocProgs;
200     }
201 
202     /**
203      * Liste des lieux surveillés par un programme.
204      * @param monLocProgsIn Collection<MonLocProg>
205      */
206     public void setMonLocProgs(Collection<MonLocProg> monLocProgsIn)
207     {
208         this.monLocProgs = monLocProgsIn;
209     }
210 
211     /**
212      * Liste des lieux surveillés par un programme.
213      * @param elementToAdd MonLocProg
214      * @return <tt>true</tt> if this collection changed as a result of the
215      *         call
216      */
217     public boolean addMonLocProgs(MonLocProg elementToAdd)
218     {
219         return this.monLocProgs.add(elementToAdd);
220     }
221 
222     /**
223      * Liste des lieux surveillés par un programme.
224      * @param elementToRemove MonLocProg
225      * @return <tt>true</tt> if this collection changed as a result of the
226      *         call
227      */
228     public boolean removeMonLocProgs(MonLocProg elementToRemove)
229     {
230         return this.monLocProgs.remove(elementToRemove);
231     }
232 
233     private Collection<ProgQuserProgPriv> progQuserProgPrivs = new HashSet<ProgQuserProgPriv>();
234 
235     /**
236      * Liste des droits d'un utilisateur pour un programme particulier.
237      * @return this.progQuserProgPrivs Collection<ProgQuserProgPriv>
238      */
239     public Collection<ProgQuserProgPriv> getProgQuserProgPrivs()
240     {
241         return this.progQuserProgPrivs;
242     }
243 
244     /**
245      * Liste des droits d'un utilisateur pour un programme particulier.
246      * @param progQuserProgPrivsIn Collection<ProgQuserProgPriv>
247      */
248     public void setProgQuserProgPrivs(Collection<ProgQuserProgPriv> progQuserProgPrivsIn)
249     {
250         this.progQuserProgPrivs = progQuserProgPrivsIn;
251     }
252 
253     /**
254      * Liste des droits d'un utilisateur pour un programme particulier.
255      * @param elementToAdd ProgQuserProgPriv
256      * @return <tt>true</tt> if this collection changed as a result of the
257      *         call
258      */
259     public boolean addProgQuserProgPrivs(ProgQuserProgPriv elementToAdd)
260     {
261         return this.progQuserProgPrivs.add(elementToAdd);
262     }
263 
264     /**
265      * Liste des droits d'un utilisateur pour un programme particulier.
266      * @param elementToRemove ProgQuserProgPriv
267      * @return <tt>true</tt> if this collection changed as a result of the
268      *         call
269      */
270     public boolean removeProgQuserProgPrivs(ProgQuserProgPriv elementToRemove)
271     {
272         return this.progQuserProgPrivs.remove(elementToRemove);
273     }
274 
275     private Collection<Moratorium> moratoria = new HashSet<Moratorium>();
276 
277     /**
278      * Moratoire sur la restriction d'accès aux données
279      * @return this.moratoria Collection<Moratorium>
280      */
281     public Collection<Moratorium> getMoratoria()
282     {
283         return this.moratoria;
284     }
285 
286     /**
287      * Moratoire sur la restriction d'accès aux données
288      * @param moratoriaIn Collection<Moratorium>
289      */
290     public void setMoratoria(Collection<Moratorium> moratoriaIn)
291     {
292         this.moratoria = moratoriaIn;
293     }
294 
295     /**
296      * Moratoire sur la restriction d'accès aux données
297      * @param elementToAdd Moratorium
298      * @return <tt>true</tt> if this collection changed as a result of the
299      *         call
300      */
301     public boolean addMoratoria(Moratorium elementToAdd)
302     {
303         return this.moratoria.add(elementToAdd);
304     }
305 
306     /**
307      * Moratoire sur la restriction d'accès aux données
308      * @param elementToRemove Moratorium
309      * @return <tt>true</tt> if this collection changed as a result of the
310      *         call
311      */
312     public boolean removeMoratoria(Moratorium elementToRemove)
313     {
314         return this.moratoria.remove(elementToRemove);
315     }
316 
317     private Collection<ComputeFunction> compFunctionCds = new HashSet<ComputeFunction>();
318 
319     /**
320      * Contient les différentes fonction de calcul pour les paramètres
321      * @return this.compFunctionCds Collection<ComputeFunction>
322      */
323     public Collection<ComputeFunction> getCompFunctionCds()
324     {
325         return this.compFunctionCds;
326     }
327 
328     /**
329      * Contient les différentes fonction de calcul pour les paramètres
330      * @param compFunctionCdsIn Collection<ComputeFunction>
331      */
332     public void setCompFunctionCds(Collection<ComputeFunction> compFunctionCdsIn)
333     {
334         this.compFunctionCds = compFunctionCdsIn;
335     }
336 
337     /**
338      * Contient les différentes fonction de calcul pour les paramètres
339      * @param elementToAdd ComputeFunction
340      * @return <tt>true</tt> if this collection changed as a result of the
341      *         call
342      */
343     public boolean addCompFunctionCds(ComputeFunction elementToAdd)
344     {
345         return this.compFunctionCds.add(elementToAdd);
346     }
347 
348     /**
349      * Contient les différentes fonction de calcul pour les paramètres
350      * @param elementToRemove ComputeFunction
351      * @return <tt>true</tt> if this collection changed as a result of the
352      *         call
353      */
354     public boolean removeCompFunctionCds(ComputeFunction elementToRemove)
355     {
356         return this.compFunctionCds.remove(elementToRemove);
357     }
358 
359     private Collection<ProgDepProgPriv> progDepProgPrivs = new HashSet<ProgDepProgPriv>();
360 
361     /**
362      * Liste des droits d'un service pour un programme particulier.
363      * @return this.progDepProgPrivs Collection<ProgDepProgPriv>
364      */
365     public Collection<ProgDepProgPriv> getProgDepProgPrivs()
366     {
367         return this.progDepProgPrivs;
368     }
369 
370     /**
371      * Liste des droits d'un service pour un programme particulier.
372      * @param progDepProgPrivsIn Collection<ProgDepProgPriv>
373      */
374     public void setProgDepProgPrivs(Collection<ProgDepProgPriv> progDepProgPrivsIn)
375     {
376         this.progDepProgPrivs = progDepProgPrivsIn;
377     }
378 
379     /**
380      * Liste des droits d'un service pour un programme particulier.
381      * @param elementToAdd ProgDepProgPriv
382      * @return <tt>true</tt> if this collection changed as a result of the
383      *         call
384      */
385     public boolean addProgDepProgPrivs(ProgDepProgPriv elementToAdd)
386     {
387         return this.progDepProgPrivs.add(elementToAdd);
388     }
389 
390     /**
391      * Liste des droits d'un service pour un programme particulier.
392      * @param elementToRemove ProgDepProgPriv
393      * @return <tt>true</tt> if this collection changed as a result of the
394      *         call
395      */
396     public boolean removeProgDepProgPrivs(ProgDepProgPriv elementToRemove)
397     {
398         return this.progDepProgPrivs.remove(elementToRemove);
399     }
400 
401     private Collection<Strategy> strategies = new HashSet<Strategy>();
402 
403     /**
404      * Définie les paramètres à mesurer dans un programme particulier.
405      * @return this.strategies Collection<Strategy>
406      */
407     public Collection<Strategy> getStrategies()
408     {
409         return this.strategies;
410     }
411 
412     /**
413      * Définie les paramètres à mesurer dans un programme particulier.
414      * @param strategiesIn Collection<Strategy>
415      */
416     public void setStrategies(Collection<Strategy> strategiesIn)
417     {
418         this.strategies = strategiesIn;
419     }
420 
421     /**
422      * Définie les paramètres à mesurer dans un programme particulier.
423      * @param elementToAdd Strategy
424      * @return <tt>true</tt> if this collection changed as a result of the
425      *         call
426      */
427     public boolean addStrategies(Strategy elementToAdd)
428     {
429         return this.strategies.add(elementToAdd);
430     }
431 
432     /**
433      * Définie les paramètres à mesurer dans un programme particulier.
434      * @param elementToRemove Strategy
435      * @return <tt>true</tt> if this collection changed as a result of the
436      *         call
437      */
438     public boolean removeStrategies(Strategy elementToRemove)
439     {
440         return this.strategies.remove(elementToRemove);
441     }
442 
443     /**
444      * Returns <code>true</code> if the argument is an Program instance and all identifiers for this entity
445      * equal the identifiers of the argument entity. Returns <code>false</code> otherwise.
446      */
447     @Override
448     public boolean equals(Object object)
449     {
450         if (this == object)
451         {
452             return true;
453         }
454         if (!(object instanceof Program))
455         {
456             return false;
457         }
458         final Program that = (Program)object;
459         if (this.progCd == null || that.getProgCd() == null || !this.progCd.equals(that.getProgCd()))
460         {
461             return false;
462         }
463         return true;
464     }
465 
466     /**
467      * Returns a hash code based on this entity's identifiers.
468      */
469     @Override
470     public int hashCode()
471     {
472         int hashCode = 0;
473         hashCode = 29 * hashCode + (this.progCd == null ? 0 : this.progCd.hashCode());
474 
475         return hashCode;
476     }
477 
478     /**
479      * Constructs new instances of {@link Program}.
480      */
481     public static final class Factory
482     {
483         /**
484          * Constructs a new instance of {@link Program}.
485          * @return new ProgramImpl()
486          */
487         public static Program newInstance()
488         {
489             return new ProgramImpl();
490         }
491 
492         /**
493          * Constructs a new instance of {@link Program}, taking all required and/or
494          * read-only properties as arguments, except for identifiers.
495          * @param progNm String
496          * @param status Status
497          * @return newInstance
498          */
499         public static Program newInstance(String progNm, Status status)
500         {
501             final Program entity = new ProgramImpl();
502             entity.setProgNm(progNm);
503             entity.setStatus(status);
504             return entity;
505         }
506 
507         /**
508          * Constructs a new instance of {@link Program}, taking all possible properties
509          * (except the identifier(s))as arguments.
510          * @param progNm String
511          * @param progDc String
512          * @param progCreationDt Date
513          * @param updateDt Timestamp
514          * @param progCm String
515          * @param status Status
516          * @param monLocProgs Collection<MonLocProg>
517          * @param progQuserProgPrivs Collection<ProgQuserProgPriv>
518          * @param moratoria Collection<Moratorium>
519          * @param compFunctionCds Collection<ComputeFunction>
520          * @param progDepProgPrivs Collection<ProgDepProgPriv>
521          * @param strategies Collection<Strategy>
522          * @return newInstance Program
523          */
524         public static Program newInstance(String progNm, String progDc, Date progCreationDt, Timestamp updateDt, String progCm, Status status, Collection<MonLocProg> monLocProgs, Collection<ProgQuserProgPriv> progQuserProgPrivs, Collection<Moratorium> moratoria, Collection<ComputeFunction> compFunctionCds, Collection<ProgDepProgPriv> progDepProgPrivs, Collection<Strategy> strategies)
525         {
526             final Program entity = new ProgramImpl();
527             entity.setProgNm(progNm);
528             entity.setProgDc(progDc);
529             entity.setProgCreationDt(progCreationDt);
530             entity.setUpdateDt(updateDt);
531             entity.setProgCm(progCm);
532             entity.setStatus(status);
533             entity.setMonLocProgs(monLocProgs);
534             entity.setProgQuserProgPrivs(progQuserProgPrivs);
535             entity.setMoratoria(moratoria);
536             entity.setCompFunctionCds(compFunctionCds);
537             entity.setProgDepProgPrivs(progDepProgPrivs);
538             entity.setStrategies(strategies);
539             return entity;
540         }
541     }
542 
543     /**
544      * @see Comparable#compareTo
545      */
546     public int compareTo(Program o)
547     {
548         int cmp = 0;
549         if (this.getProgCd() != null)
550         {
551             cmp = this.getProgCd().compareTo(o.getProgCd());
552         }
553         else
554         {
555             if (this.getProgNm() != null)
556             {
557                 cmp = (cmp != 0 ? cmp : this.getProgNm().compareTo(o.getProgNm()));
558             }
559             if (this.getProgDc() != null)
560             {
561                 cmp = (cmp != 0 ? cmp : this.getProgDc().compareTo(o.getProgDc()));
562             }
563             if (this.getProgCreationDt() != null)
564             {
565                 cmp = (cmp != 0 ? cmp : this.getProgCreationDt().compareTo(o.getProgCreationDt()));
566             }
567             if (this.getUpdateDt() != null)
568             {
569                 cmp = (cmp != 0 ? cmp : this.getUpdateDt().compareTo(o.getUpdateDt()));
570             }
571             if (this.getProgCm() != null)
572             {
573                 cmp = (cmp != 0 ? cmp : this.getProgCm().compareTo(o.getProgCm()));
574             }
575         }
576         return cmp;
577     }
578 // HibernateEntity.vsl merge-point
579 // Program.java merge-point
580 }