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.referential.regulation;
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.referential.taxon.TaxonGroup;
032import java.io.Serializable;
033
034/**
035 * 
036 */
037// HibernateEntity.vsl annotations merge-point
038public abstract class Fishery2TaxonGroup
039    implements Serializable, Comparable<Fishery2TaxonGroup>
040{
041    /**
042     * The serial version UID of this class. Needed for serialization.
043     */
044    private static final long serialVersionUID = 3410282034825437079L;
045
046    private Fishery2TaxonGroupPK fishery2TaxonGroupPk;
047
048    /**
049     * Get the composite primary key identifier class
050     * @return fishery2TaxonGroupPk
051     */
052    public Fishery2TaxonGroupPK getFishery2TaxonGroupPk()
053    {
054        return this.fishery2TaxonGroupPk;
055    }
056
057    /**
058     * Set the composite primary key identifier class
059     * @param fishery2TaxonGroupPkIn
060     */
061    public void setFishery2TaxonGroupPk(Fishery2TaxonGroupPK fishery2TaxonGroupPkIn) {
062        this.fishery2TaxonGroupPk = fishery2TaxonGroupPkIn;
063    }
064
065    // Generate 0 attributes
066    // Generate 2 associations
067    private TaxonGroup taxonGroup;
068
069    /**
070     * Il désigne un ensemble de taxons appartenant à des groupes taxinomiques différents mais ayant
071     * les
072     * mêmes caractéristiques pour un critère donné. Ce critère peut être morpho-anatomique (par
073     * exemple
074     * les strates algales ou la taille des organismes), comportemental (par exemple des groupes
075     * trophiques
076     * ou des modes de déplacement), ou encore basé sur des notions plus complexes comme la
077     * polluo-sensibilité (exemple des groupes écologiques définis pour les macroinvertébrés
078     * benthiques).
079     * Pour un critère donné, les groupes de taxons sont rassemblés dans un regroupement appelé
080     * groupe de
081     * taxons père.
082     * Les groupes de taxons sont de deux catégories :
083     * - Descriptif : c'est à dire seulement utilisé pour l'extraction de données. Les regroupements
084     * de
085     * taxons sont effectués en aval de la mesure effectuée.
086     * - Identification : il s'agit de regroupements utilisés pour identifier des catégories de
087     * taxons sur
088     * le terrain ou en laboratoire, lorsqu'il est difficile d'opérer une identification précise ou
089     * lorsque
090     * celle-ci s'avère tout simplement impossible ou non pertinente. Le regroupement des taxons
091     * s'effectue
092     * alors en amont de la mesure.
093     * Certains groupes peuvent être figés, c'est à dire qu'ils sont définis une bonne fois pour
094     * toute dans
095     * un document. Pour ce dernier cas particulier, il n'y a donc, a priori, pas besoin de mise à
096     * jour, et
097     * encore moins de pouvoir les supprimer : ils sont donc non modifiables (mais ce ne doit pas
098     * être une
099     * règle générale)
100     * @return this.taxonGroup TaxonGroup
101     */
102    public TaxonGroup getTaxonGroup()
103    {
104        return this.taxonGroup;
105    }
106
107    /**
108     * Il désigne un ensemble de taxons appartenant à des groupes taxinomiques différents mais ayant
109     * les
110     * mêmes caractéristiques pour un critère donné. Ce critère peut être morpho-anatomique (par
111     * exemple
112     * les strates algales ou la taille des organismes), comportemental (par exemple des groupes
113     * trophiques
114     * ou des modes de déplacement), ou encore basé sur des notions plus complexes comme la
115     * polluo-sensibilité (exemple des groupes écologiques définis pour les macroinvertébrés
116     * benthiques).
117     * Pour un critère donné, les groupes de taxons sont rassemblés dans un regroupement appelé
118     * groupe de
119     * taxons père.
120     * Les groupes de taxons sont de deux catégories :
121     * - Descriptif : c'est à dire seulement utilisé pour l'extraction de données. Les regroupements
122     * de
123     * taxons sont effectués en aval de la mesure effectuée.
124     * - Identification : il s'agit de regroupements utilisés pour identifier des catégories de
125     * taxons sur
126     * le terrain ou en laboratoire, lorsqu'il est difficile d'opérer une identification précise ou
127     * lorsque
128     * celle-ci s'avère tout simplement impossible ou non pertinente. Le regroupement des taxons
129     * s'effectue
130     * alors en amont de la mesure.
131     * Certains groupes peuvent être figés, c'est à dire qu'ils sont définis une bonne fois pour
132     * toute dans
133     * un document. Pour ce dernier cas particulier, il n'y a donc, a priori, pas besoin de mise à
134     * jour, et
135     * encore moins de pouvoir les supprimer : ils sont donc non modifiables (mais ce ne doit pas
136     * être une
137     * règle générale)
138     * @param taxonGroupIn TaxonGroup
139     */
140    public void setTaxonGroup(TaxonGroup taxonGroupIn)
141    {
142        this.taxonGroup = taxonGroupIn;
143    }
144
145    private Fishery fishery;
146
147    /**
148     * <html>
149     * <head>
150     * </head>
151     * <body>
152     * Un pecherie, peut etre, si elle n'a pas d'engin, similaire &#224; un
153     * stock.<br><br><u>D&#233;finition
154     * </u>:<br>A unit determined by an authority or other entity that isengaged
155     * in raising and/or harvesting fish. Typically, the unit is defined in terms
156     * of some or all of the following: people involved, species or type of fish,
157     * area of water or seabed, method of fishing, class of boats and purpose of
158     * the activities.<br><br><font size="-2">Fletcher, W.J., Chesson, J. Fisher,
159     * M., Sainsbury K.J., Hundloe, T. Smith A.D.M., and B. Whitworth (2002):
160     * National ESD reporting framework for Australian fisheries: The &quot;How To&quot;
161     * guide for wild capture fisheries. FRDC Project 2000/145. Canberra,
162     * Australia</font>
163     * </body>
164     * </html>
165     * @return this.fishery Fishery
166     */
167    public Fishery getFishery()
168    {
169        return this.fishery;
170    }
171
172    /**
173     * <html>
174     * <head>
175     * </head>
176     * <body>
177     * Un pecherie, peut etre, si elle n'a pas d'engin, similaire &#224; un
178     * stock.<br><br><u>D&#233;finition
179     * </u>:<br>A unit determined by an authority or other entity that isengaged
180     * in raising and/or harvesting fish. Typically, the unit is defined in terms
181     * of some or all of the following: people involved, species or type of fish,
182     * area of water or seabed, method of fishing, class of boats and purpose of
183     * the activities.<br><br><font size="-2">Fletcher, W.J., Chesson, J. Fisher,
184     * M., Sainsbury K.J., Hundloe, T. Smith A.D.M., and B. Whitworth (2002):
185     * National ESD reporting framework for Australian fisheries: The &quot;How To&quot;
186     * guide for wild capture fisheries. FRDC Project 2000/145. Canberra,
187     * Australia</font>
188     * </body>
189     * </html>
190     * @param fisheryIn Fishery
191     */
192    public void setFishery(Fishery fisheryIn)
193    {
194        this.fishery = fisheryIn;
195    }
196
197    /**
198     * This entity does not have any identifiers
199     * and is not extending any other entity,
200     * so this method will only return <code>true</code> if the argument reference and <code>this</code>
201     * refer to the same object.
202     */
203    @Override
204    public boolean equals(Object object)
205    {
206        return super.equals(object);
207    }
208
209    /**
210     * This entity does not have any identifiers
211     * and is not extending any other entity,
212     * so this method will only take the identifiers of this entity into account when calculating the hash code.
213     */
214    @Override
215    public int hashCode()
216    {
217        return super.hashCode();
218    }
219
220    /**
221     * Constructs new instances of {@link Fishery2TaxonGroup}.
222     */
223    public static final class Factory
224    {
225        /**
226         * Constructs a new instance of {@link Fishery2TaxonGroup}.
227         * @return new Fishery2TaxonGroupImpl()
228         */
229        public static Fishery2TaxonGroup newInstance()
230        {
231            return new Fishery2TaxonGroupImpl();
232        }
233
234
235        /**
236         * Constructs a new instance of {@link Fishery2TaxonGroup}, taking all possible properties
237         * (except the identifier(s))as arguments.
238         * @param taxonGroup TaxonGroup
239         * @param fishery Fishery
240         * @return newInstance Fishery2TaxonGroup
241         */
242        public static Fishery2TaxonGroup newInstance(TaxonGroup taxonGroup, Fishery fishery)
243        {
244            final Fishery2TaxonGroup entity = new Fishery2TaxonGroupImpl();
245            entity.setTaxonGroup(taxonGroup);
246            entity.setFishery(fishery);
247            return entity;
248        }
249    }
250
251    /**
252     * @see Comparable#compareTo
253     */
254    public int compareTo(Fishery2TaxonGroup o)
255    {
256        int cmp = 0;
257        if (this.getFishery2TaxonGroupPk() != null)
258        {
259            cmp = this.getFishery2TaxonGroupPk().compareTo(o.getFishery2TaxonGroupPk());
260        }
261        return cmp;
262    }
263// HibernateEntity.vsl merge-point
264// Fishery2TaxonGroup.java merge-point
265}