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 }