001// license-header java merge-point
002//
003// Attention: Generated code! Do not modify by hand!
004// Generated by: hibernate/HibernateEntity.vsl in andromda-hibernate-cartridge.
005//
006package fr.ifremer.adagio.core.dao.data.measure;
007
008/*
009 * #%L
010 * SIH-Adagio :: Core
011 * $Id:$
012 * $HeadURL:$
013 * %%
014 * Copyright (C) 2012 - 2014 Ifremer
015 * %%
016 * This program is free software: you can redistribute it and/or modify
017 * it under the terms of the GNU Affero General Public License as published by
018 * the Free Software Foundation, either version 3 of the License, or
019 * (at your option) any later version.
020 * 
021 * This program is distributed in the hope that it will be useful,
022 * but WITHOUT ANY WARRANTY; without even the implied warranty of
023 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
024 * GNU General Public License for more details.
025 * 
026 * You should have received a copy of the GNU Affero General Public License
027 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
028 * #L%
029 */
030
031import fr.ifremer.adagio.core.dao.administration.user.Department;
032import fr.ifremer.adagio.core.dao.data.survey.activity.ActivityCalendar;
033import fr.ifremer.adagio.core.dao.data.survey.activity.DailyActivityCalendar;
034import fr.ifremer.adagio.core.dao.data.survey.declaration.DeclaredDocumentReference;
035import fr.ifremer.adagio.core.dao.data.survey.economy.EconomicalSurvey;
036import fr.ifremer.adagio.core.dao.data.survey.fishingEffort.FishingEffortCalendar;
037import fr.ifremer.adagio.core.dao.data.survey.fishingTrip.FishingTrip;
038import fr.ifremer.adagio.core.dao.data.survey.landing.Landing;
039import fr.ifremer.adagio.core.dao.data.survey.physicalGear.PhysicalGearSurvey;
040import fr.ifremer.adagio.core.dao.data.survey.sale.Sale;
041import fr.ifremer.adagio.core.dao.data.transshipment.Transshipment;
042import fr.ifremer.adagio.core.dao.referential.AnalysisInstrument;
043import fr.ifremer.adagio.core.dao.referential.NumericalPrecision;
044import fr.ifremer.adagio.core.dao.referential.PrecisionType;
045import fr.ifremer.adagio.core.dao.referential.QualityFlag;
046import fr.ifremer.adagio.core.dao.referential.pmfm.AggregationLevel;
047import fr.ifremer.adagio.core.dao.referential.pmfm.Pmfm;
048import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValue;
049import java.util.Date;
050
051/**
052 * 
053 */
054// HibernateEntity.vsl annotations merge-point
055public abstract class SurveyMeasurement
056    extends MeasurementImpl
057{
058    /**
059     * The serial version UID of this class. Needed for serialization.
060     */
061    private static final long serialVersionUID = -1870938358102565731L;
062
063    // Generate 0 attributes
064    // Generate 10 associations
065    private DeclaredDocumentReference declaredDocumentReference;
066
067    /**
068     * Référence du document déclaratif. Utile pour les données issu du log book électronique (flux
069     * SACAPT.)
070     * @return this.declaredDocumentReference DeclaredDocumentReference
071     */
072    public DeclaredDocumentReference getDeclaredDocumentReference()
073    {
074        return this.declaredDocumentReference;
075    }
076
077    /**
078     * Référence du document déclaratif. Utile pour les données issu du log book électronique (flux
079     * SACAPT.)
080     * @param declaredDocumentReferenceIn DeclaredDocumentReference
081     */
082    public void setDeclaredDocumentReference(DeclaredDocumentReference declaredDocumentReferenceIn)
083    {
084        this.declaredDocumentReference = declaredDocumentReferenceIn;
085    }
086
087    private ActivityCalendar activityCalendar;
088
089    /**
090     * 
091     * @return this.activityCalendar ActivityCalendar
092     */
093    public ActivityCalendar getActivityCalendar()
094    {
095        return this.activityCalendar;
096    }
097
098    /**
099     * 
100     * @param activityCalendarIn ActivityCalendar
101     */
102    public void setActivityCalendar(ActivityCalendar activityCalendarIn)
103    {
104        this.activityCalendar = activityCalendarIn;
105    }
106
107    private DailyActivityCalendar dailyActivityCalendar;
108
109    /**
110     * <html>
111     * <head>
112     * </head>
113     * <body>
114     * Calendrier d'activit&#233; journalier.
115     * <br>
116     * <br>Par exemple, donn&#233;es collect&#233;es par l'action d'&#233;chantillonnage au
117     * d&#233;barquement (SIH-ObsDeb).
118     * <br>
119     * <br>Le calendrier concerne une plage de jour cons&#233;cutif (g&#233;n&#233;ralement 7
120     * jours), durant laquelle l'activit&#233; est renseign&#233;e pour chaque jour.
121     * </body>
122     * </html>
123     * @return this.dailyActivityCalendar DailyActivityCalendar
124     */
125    public DailyActivityCalendar getDailyActivityCalendar()
126    {
127        return this.dailyActivityCalendar;
128    }
129
130    /**
131     * <html>
132     * <head>
133     * </head>
134     * <body>
135     * Calendrier d'activit&#233; journalier.
136     * <br>
137     * <br>Par exemple, donn&#233;es collect&#233;es par l'action d'&#233;chantillonnage au
138     * d&#233;barquement (SIH-ObsDeb).
139     * <br>
140     * <br>Le calendrier concerne une plage de jour cons&#233;cutif (g&#233;n&#233;ralement 7
141     * jours), durant laquelle l'activit&#233; est renseign&#233;e pour chaque jour.
142     * </body>
143     * </html>
144     * @param dailyActivityCalendarIn DailyActivityCalendar
145     */
146    public void setDailyActivityCalendar(DailyActivityCalendar dailyActivityCalendarIn)
147    {
148        this.dailyActivityCalendar = dailyActivityCalendarIn;
149    }
150
151    private Landing landing;
152
153    /**
154     * Débarquement à la suite d'une marée en mer.
155     * @return this.landing Landing
156     */
157    public Landing getLanding()
158    {
159        return this.landing;
160    }
161
162    /**
163     * Débarquement à la suite d'une marée en mer.
164     * @param landingIn Landing
165     */
166    public void setLanding(Landing landingIn)
167    {
168        this.landing = landingIn;
169    }
170
171    private EconomicalSurvey economicalSurvey;
172
173    /**
174     * Enquete economique.
175     * Une enquete économique peut etre rattaché à un usager de la ressource (Vessel) ou encore à un
176     * propriétaire de navire (aramateur).
177     * @return this.economicalSurvey EconomicalSurvey
178     */
179    public EconomicalSurvey getEconomicalSurvey()
180    {
181        return this.economicalSurvey;
182    }
183
184    /**
185     * Enquete economique.
186     * Une enquete économique peut etre rattaché à un usager de la ressource (Vessel) ou encore à un
187     * propriétaire de navire (aramateur).
188     * @param economicalSurveyIn EconomicalSurvey
189     */
190    public void setEconomicalSurvey(EconomicalSurvey economicalSurveyIn)
191    {
192        this.economicalSurvey = economicalSurveyIn;
193    }
194
195    private Sale sale;
196
197    /**
198     * Vente liée à un navire, effectuée en un lieu et une date données. Une vente regroupe
199     * plusieurs
200     * produits vendus (Produce).
201     * Attention : une vente est ponctuelle dans le temps. Si l'on souhaite recencer une vente qui
202     * s'étale
203     * sur plusieurs jours,
204     * @return this.sale Sale
205     */
206    public Sale getSale()
207    {
208        return this.sale;
209    }
210
211    /**
212     * Vente liée à un navire, effectuée en un lieu et une date données. Une vente regroupe
213     * plusieurs
214     * produits vendus (Produce).
215     * Attention : une vente est ponctuelle dans le temps. Si l'on souhaite recencer une vente qui
216     * s'étale
217     * sur plusieurs jours,
218     * @param saleIn Sale
219     */
220    public void setSale(Sale saleIn)
221    {
222        this.sale = saleIn;
223    }
224
225    private PhysicalGearSurvey physicalGearSurvey;
226
227    /**
228     * Enquete sur les engins physiques d'un navire et leurs caractéristiques.
229     * @return this.physicalGearSurvey PhysicalGearSurvey
230     */
231    public PhysicalGearSurvey getPhysicalGearSurvey()
232    {
233        return this.physicalGearSurvey;
234    }
235
236    /**
237     * Enquete sur les engins physiques d'un navire et leurs caractéristiques.
238     * @param physicalGearSurveyIn PhysicalGearSurvey
239     */
240    public void setPhysicalGearSurvey(PhysicalGearSurvey physicalGearSurveyIn)
241    {
242        this.physicalGearSurvey = physicalGearSurveyIn;
243    }
244
245    private FishingEffortCalendar fishingEffortCalendar;
246
247    /**
248     * Enquete d'effort de peche (Calendrier d'effort de peche) d'un navire.
249     * @return this.fishingEffortCalendar FishingEffortCalendar
250     */
251    public FishingEffortCalendar getFishingEffortCalendar()
252    {
253        return this.fishingEffortCalendar;
254    }
255
256    /**
257     * Enquete d'effort de peche (Calendrier d'effort de peche) d'un navire.
258     * @param fishingEffortCalendarIn FishingEffortCalendar
259     */
260    public void setFishingEffortCalendar(FishingEffortCalendar fishingEffortCalendarIn)
261    {
262        this.fishingEffortCalendar = fishingEffortCalendarIn;
263    }
264
265    private FishingTrip fishingTrip;
266
267    /**
268     * Voyage en mer, ayant pour vocation une activité de peche (peut etre une campagnes halieutique
269     * ou une
270     * marée d'un navire professionnel, etc.)
271     * Un voyage peut représenter type de données :
272     * - Une marée observée (en mer, au débarquement), qui désigne une marée de pêche
273     * professionnelle au
274     * cours de laquelle des relevés sont effectués par un observateur.
275     * - Une marée déclarée. Principalement issue du log book électronique (flux SACAPT). Une marée
276     * déclarée peut etre un ensemble de marée ou de sous-ensembles de marée (Exemple de la fiche de
277     * peche)
278     * - une sortie effectuée lors d"une campagne scientifique
279     * @return this.fishingTrip FishingTrip
280     */
281    public FishingTrip getFishingTrip()
282    {
283        return this.fishingTrip;
284    }
285
286    /**
287     * Voyage en mer, ayant pour vocation une activité de peche (peut etre une campagnes halieutique
288     * ou une
289     * marée d'un navire professionnel, etc.)
290     * Un voyage peut représenter type de données :
291     * - Une marée observée (en mer, au débarquement), qui désigne une marée de pêche
292     * professionnelle au
293     * cours de laquelle des relevés sont effectués par un observateur.
294     * - Une marée déclarée. Principalement issue du log book électronique (flux SACAPT). Une marée
295     * déclarée peut etre un ensemble de marée ou de sous-ensembles de marée (Exemple de la fiche de
296     * peche)
297     * - une sortie effectuée lors d"une campagne scientifique
298     * @param fishingTripIn FishingTrip
299     */
300    public void setFishingTrip(FishingTrip fishingTripIn)
301    {
302        this.fishingTrip = fishingTripIn;
303    }
304
305    private Transshipment transshipment;
306
307    /**
308     * Transbordement d'un produit (capturé) d'un navire à l'autre.
309     * Pour connaitre le navire d'origine des produits (celui qui les possédait avant le
310     * transbordement),
311     * il faut utiliser les liens vers FishingTrip ou MetaFishingTrip, qui possèdent un lien vers
312     * Vessel.
313     * @return this.transshipment Transshipment
314     */
315    public Transshipment getTransshipment()
316    {
317        return this.transshipment;
318    }
319
320    /**
321     * Transbordement d'un produit (capturé) d'un navire à l'autre.
322     * Pour connaitre le navire d'origine des produits (celui qui les possédait avant le
323     * transbordement),
324     * il faut utiliser les liens vers FishingTrip ou MetaFishingTrip, qui possèdent un lien vers
325     * Vessel.
326     * @param transshipmentIn Transshipment
327     */
328    public void setTransshipment(Transshipment transshipmentIn)
329    {
330        this.transshipment = transshipmentIn;
331    }
332
333    /**
334     * This entity does not have any identifiers
335     * but since it extends the <code>MeasurementImpl</code> class
336     * it will simply delegate the call up there.
337     *
338     * @see fr.ifremer.adagio.core.dao.data.measure.Measurement#equals(Object)
339     */
340    @Override
341    public boolean equals(Object object)
342    {
343        return super.equals(object);
344    }
345
346    /**
347     * This entity does not have any identifiers
348     * but since it extends the <code>MeasurementImpl</code> class
349     * it will simply delegate the call up there.
350     *
351     * @see fr.ifremer.adagio.core.dao.data.measure.Measurement#hashCode()
352     */
353    @Override
354    public int hashCode()
355    {
356        return super.hashCode();
357    }
358
359    /**
360     * Constructs new instances of {@link SurveyMeasurement}.
361     */
362    public static final class Factory
363    {
364        /**
365         * Constructs a new instance of {@link SurveyMeasurement}.
366         * @return new SurveyMeasurementImpl()
367         */
368        public static SurveyMeasurement newInstance()
369        {
370            return new SurveyMeasurementImpl();
371        }
372
373        /**
374         * Constructs a new instance of {@link SurveyMeasurement}, taking all required and/or
375         * read-only properties as arguments, except for identifiers.
376         * @param qualityFlag QualityFlag
377         * @param pmfm Pmfm
378         * @return newInstance
379         */
380        public static SurveyMeasurement newInstance(QualityFlag qualityFlag, Pmfm pmfm)
381        {
382            final SurveyMeasurement entity = new SurveyMeasurementImpl();
383            entity.setQualityFlag(qualityFlag);
384            entity.setPmfm(pmfm);
385            return entity;
386        }
387
388        /**
389         * Constructs a new instance of {@link SurveyMeasurement}, taking all possible properties
390         * (except the identifier(s))as arguments.
391         * @param numericalValue Float
392         * @param alphanumericalValue String
393         * @param digitCount Integer
394         * @param precisionValue Float
395         * @param controlDate Date
396         * @param validationDate Date
397         * @param qualificationDate Date
398         * @param qualificationComments String
399         * @param aggregationLevel AggregationLevel
400         * @param qualitativeValue QualitativeValue
401         * @param qualityFlag QualityFlag
402         * @param precisionType PrecisionType
403         * @param analysisInstrument AnalysisInstrument
404         * @param pmfm Pmfm
405         * @param department Department
406         * @param numericalPrecision NumericalPrecision
407         * @param declaredDocumentReference DeclaredDocumentReference
408         * @param activityCalendar ActivityCalendar
409         * @param dailyActivityCalendar DailyActivityCalendar
410         * @param landing Landing
411         * @param economicalSurvey EconomicalSurvey
412         * @param sale Sale
413         * @param physicalGearSurvey PhysicalGearSurvey
414         * @param fishingEffortCalendar FishingEffortCalendar
415         * @param fishingTrip FishingTrip
416         * @param transshipment Transshipment
417         * @return newInstance SurveyMeasurement
418         */
419        public static SurveyMeasurement newInstance(Float numericalValue, String alphanumericalValue, Integer digitCount, Float precisionValue, Date controlDate, Date validationDate, Date qualificationDate, String qualificationComments, AggregationLevel aggregationLevel, QualitativeValue qualitativeValue, QualityFlag qualityFlag, PrecisionType precisionType, AnalysisInstrument analysisInstrument, Pmfm pmfm, Department department, NumericalPrecision numericalPrecision, DeclaredDocumentReference declaredDocumentReference, ActivityCalendar activityCalendar, DailyActivityCalendar dailyActivityCalendar, Landing landing, EconomicalSurvey economicalSurvey, Sale sale, PhysicalGearSurvey physicalGearSurvey, FishingEffortCalendar fishingEffortCalendar, FishingTrip fishingTrip, Transshipment transshipment)
420        {
421            final SurveyMeasurement entity = new SurveyMeasurementImpl();
422            entity.setNumericalValue(numericalValue);
423            entity.setAlphanumericalValue(alphanumericalValue);
424            entity.setDigitCount(digitCount);
425            entity.setPrecisionValue(precisionValue);
426            entity.setControlDate(controlDate);
427            entity.setValidationDate(validationDate);
428            entity.setQualificationDate(qualificationDate);
429            entity.setQualificationComments(qualificationComments);
430            entity.setAggregationLevel(aggregationLevel);
431            entity.setQualitativeValue(qualitativeValue);
432            entity.setQualityFlag(qualityFlag);
433            entity.setPrecisionType(precisionType);
434            entity.setAnalysisInstrument(analysisInstrument);
435            entity.setPmfm(pmfm);
436            entity.setDepartment(department);
437            entity.setNumericalPrecision(numericalPrecision);
438            entity.setDeclaredDocumentReference(declaredDocumentReference);
439            entity.setActivityCalendar(activityCalendar);
440            entity.setDailyActivityCalendar(dailyActivityCalendar);
441            entity.setLanding(landing);
442            entity.setEconomicalSurvey(economicalSurvey);
443            entity.setSale(sale);
444            entity.setPhysicalGearSurvey(physicalGearSurvey);
445            entity.setFishingEffortCalendar(fishingEffortCalendar);
446            entity.setFishingTrip(fishingTrip);
447            entity.setTransshipment(transshipment);
448            return entity;
449        }
450    }
451
452    /**
453     * @see Comparable#compareTo
454     */
455    public int compareTo(SurveyMeasurement o)
456    {
457        int cmp = 0;
458        if (this.getId() != null)
459        {
460            cmp = this.getId().compareTo(o.getId());
461        }
462        return cmp;
463    }
464// HibernateEntity.vsl merge-point
465// SurveyMeasurement.java merge-point
466}