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.vessel.feature.use.VesselUseFeatures;
033import fr.ifremer.adagio.core.dao.referential.AnalysisInstrument;
034import fr.ifremer.adagio.core.dao.referential.NumericalPrecision;
035import fr.ifremer.adagio.core.dao.referential.PrecisionType;
036import fr.ifremer.adagio.core.dao.referential.QualityFlag;
037import fr.ifremer.adagio.core.dao.referential.pmfm.AggregationLevel;
038import fr.ifremer.adagio.core.dao.referential.pmfm.Pmfm;
039import fr.ifremer.adagio.core.dao.referential.pmfm.QualitativeValue;
040import java.util.Date;
041
042/**
043 * 
044 */
045// HibernateEntity.vsl annotations merge-point
046public abstract class VesselUseMeasurement
047    extends MeasurementImpl
048{
049    /**
050     * The serial version UID of this class. Needed for serialization.
051     */
052    private static final long serialVersionUID = -1967284479254392927L;
053
054    // Generate 0 attributes
055    // Generate 1 associations
056    private VesselUseFeatures vesselUseFeatures;
057
058    /**
059     * Paramètres de mise en oeuvre du navire. Il peut s'agir de données d'observation comme de
060     * données de
061     * déclaration, mais liée à comment est utilisé le navire et dans quelles conditions.
062     * Par exemple, pour les donénes d'observation :
063     * • profondeur de mer au début de l'opération, en mètre,
064     * • profondeur de mer à la fin de l'opération, en mètre,
065     * • déroulement de l'opération (normal, anormal, etc.)
066     * • état de la mer lors durant l'opération : échelle de 0 à 9 (4=agitée, etc)
067     * • trait rectiligne (oui/non)
068     * • cout en gazoil,
069     * • nombre d'engin perdu,
070     * • cout des pertes,
071     * • etc.
072     * Par exemple, pour les données de déclaration :
073     * • temps de pêche,
074     * • temps de route (qui peut aussi etre calculé à l'exploitation),
075     * • nombre d'opérations,
076     * • etc.
077     * @return this.vesselUseFeatures VesselUseFeatures
078     */
079    public VesselUseFeatures getVesselUseFeatures()
080    {
081        return this.vesselUseFeatures;
082    }
083
084    /**
085     * Paramètres de mise en oeuvre du navire. Il peut s'agir de données d'observation comme de
086     * données de
087     * déclaration, mais liée à comment est utilisé le navire et dans quelles conditions.
088     * Par exemple, pour les donénes d'observation :
089     * • profondeur de mer au début de l'opération, en mètre,
090     * • profondeur de mer à la fin de l'opération, en mètre,
091     * • déroulement de l'opération (normal, anormal, etc.)
092     * • état de la mer lors durant l'opération : échelle de 0 à 9 (4=agitée, etc)
093     * • trait rectiligne (oui/non)
094     * • cout en gazoil,
095     * • nombre d'engin perdu,
096     * • cout des pertes,
097     * • etc.
098     * Par exemple, pour les données de déclaration :
099     * • temps de pêche,
100     * • temps de route (qui peut aussi etre calculé à l'exploitation),
101     * • nombre d'opérations,
102     * • etc.
103     * @param vesselUseFeaturesIn VesselUseFeatures
104     */
105    public void setVesselUseFeatures(VesselUseFeatures vesselUseFeaturesIn)
106    {
107        this.vesselUseFeatures = vesselUseFeaturesIn;
108    }
109
110    /**
111     * This entity does not have any identifiers
112     * but since it extends the <code>MeasurementImpl</code> class
113     * it will simply delegate the call up there.
114     *
115     * @see fr.ifremer.adagio.core.dao.data.measure.Measurement#equals(Object)
116     */
117    @Override
118    public boolean equals(Object object)
119    {
120        return super.equals(object);
121    }
122
123    /**
124     * This entity does not have any identifiers
125     * but since it extends the <code>MeasurementImpl</code> class
126     * it will simply delegate the call up there.
127     *
128     * @see fr.ifremer.adagio.core.dao.data.measure.Measurement#hashCode()
129     */
130    @Override
131    public int hashCode()
132    {
133        return super.hashCode();
134    }
135
136    /**
137     * Constructs new instances of {@link VesselUseMeasurement}.
138     */
139    public static final class Factory
140    {
141        /**
142         * Constructs a new instance of {@link VesselUseMeasurement}.
143         * @return new VesselUseMeasurementImpl()
144         */
145        public static VesselUseMeasurement newInstance()
146        {
147            return new VesselUseMeasurementImpl();
148        }
149
150        /**
151         * Constructs a new instance of {@link VesselUseMeasurement}, taking all required and/or
152         * read-only properties as arguments, except for identifiers.
153         * @param qualityFlag QualityFlag
154         * @param pmfm Pmfm
155         * @param vesselUseFeatures VesselUseFeatures
156         * @return newInstance
157         */
158        public static VesselUseMeasurement newInstance(QualityFlag qualityFlag, Pmfm pmfm, VesselUseFeatures vesselUseFeatures)
159        {
160            final VesselUseMeasurement entity = new VesselUseMeasurementImpl();
161            entity.setQualityFlag(qualityFlag);
162            entity.setPmfm(pmfm);
163            entity.setVesselUseFeatures(vesselUseFeatures);
164            return entity;
165        }
166
167        /**
168         * Constructs a new instance of {@link VesselUseMeasurement}, taking all possible properties
169         * (except the identifier(s))as arguments.
170         * @param numericalValue Float
171         * @param alphanumericalValue String
172         * @param digitCount Integer
173         * @param precisionValue Float
174         * @param controlDate Date
175         * @param validationDate Date
176         * @param qualificationDate Date
177         * @param qualificationComments String
178         * @param aggregationLevel AggregationLevel
179         * @param qualitativeValue QualitativeValue
180         * @param qualityFlag QualityFlag
181         * @param precisionType PrecisionType
182         * @param analysisInstrument AnalysisInstrument
183         * @param pmfm Pmfm
184         * @param department Department
185         * @param numericalPrecision NumericalPrecision
186         * @param vesselUseFeatures VesselUseFeatures
187         * @return newInstance VesselUseMeasurement
188         */
189        public static VesselUseMeasurement 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, VesselUseFeatures vesselUseFeatures)
190        {
191            final VesselUseMeasurement entity = new VesselUseMeasurementImpl();
192            entity.setNumericalValue(numericalValue);
193            entity.setAlphanumericalValue(alphanumericalValue);
194            entity.setDigitCount(digitCount);
195            entity.setPrecisionValue(precisionValue);
196            entity.setControlDate(controlDate);
197            entity.setValidationDate(validationDate);
198            entity.setQualificationDate(qualificationDate);
199            entity.setQualificationComments(qualificationComments);
200            entity.setAggregationLevel(aggregationLevel);
201            entity.setQualitativeValue(qualitativeValue);
202            entity.setQualityFlag(qualityFlag);
203            entity.setPrecisionType(precisionType);
204            entity.setAnalysisInstrument(analysisInstrument);
205            entity.setPmfm(pmfm);
206            entity.setDepartment(department);
207            entity.setNumericalPrecision(numericalPrecision);
208            entity.setVesselUseFeatures(vesselUseFeatures);
209            return entity;
210        }
211    }
212
213    /**
214     * @see Comparable#compareTo
215     */
216    public int compareTo(VesselUseMeasurement o)
217    {
218        int cmp = 0;
219        if (this.getId() != null)
220        {
221            cmp = this.getId().compareTo(o.getId());
222        }
223        return cmp;
224    }
225// HibernateEntity.vsl merge-point
226// VesselUseMeasurement.java merge-point
227}