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.administration.user;
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 java.io.Serializable;
032import java.util.Date;
033
034/**
035 * @deprecated Use Program2person instead
036 * ATTENTION : NE PLUS UTILISER les portefeuilles dans les nouveaux développements (utiliser à la
037 * place les privilèves sur les programmes)
038 * Cette entité contient les informations indiquant qu'un portefeuille a les mêmes droit qu'un
039 * autre. Cette information est utilisée pour la saisie pour que des données saisies par un service
040 * puissent toujours être gérées lorsque le service n'existe plus et que ses agents se retrouvent
041 * dans d'autres services
042 */
043// HibernateEntity.vsl annotations merge-point
044public abstract class ManagedDataTransfer
045    implements Serializable, Comparable<ManagedDataTransfer>
046{
047    /**
048     * The serial version UID of this class. Needed for serialization.
049     */
050    private static final long serialVersionUID = -8864169229099618704L;
051
052    private ManagedDataTransferPK managedDataTransferPk;
053
054    /**
055     * Get the composite primary key identifier class
056     * @return managedDataTransferPk
057     */
058    public ManagedDataTransferPK getManagedDataTransferPk()
059    {
060        return this.managedDataTransferPk;
061    }
062
063    /**
064     * Set the composite primary key identifier class
065     * @param managedDataTransferPkIn
066     */
067    public void setManagedDataTransferPk(ManagedDataTransferPK managedDataTransferPkIn) {
068        this.managedDataTransferPk = managedDataTransferPkIn;
069    }
070
071    // Generate 1 attributes
072    private Date transferDate;
073
074    /**
075     * Date à partir de laquelle le transfert s'applique.
076     * Cette date doit etre comparée à la date de la saisie, et non à la date de la donnée et elle
077     * meme.
078     * Exemple :
079     * - Si transfert d'un portefeuille à compté du 1 mars de l'année N.
080     * - dès le 1er mars, le nouveau propriétaire de la donnée pourra saisir sur le protefeuille,
081     * par exemple des enquete sur l'année N-1.
082     * @return this.transferDate Date
083     */
084    public Date getTransferDate()
085    {
086        return this.transferDate;
087    }
088
089    /**
090     * Date à partir de laquelle le transfert s'applique.
091     * Cette date doit etre comparée à la date de la saisie, et non à la date de la donnée et elle
092     * meme.
093     * Exemple :
094     * - Si transfert d'un portefeuille à compté du 1 mars de l'année N.
095     * - dès le 1er mars, le nouveau propriétaire de la donnée pourra saisir sur le protefeuille,
096     * par exemple des enquete sur l'année N-1.
097     * @param transferDateIn Date
098     */
099    public void setTransferDate(Date transferDateIn)
100    {
101        this.transferDate = transferDateIn;
102    }
103
104    // Generate 2 associations
105    private ManagedData managedData;
106
107    /**
108     * @deprecated  Use Program2person instead
109     * ATTENTION : NE PLUS UTILISER les portefeuilles dans les nouveaux développements (utiliser à
110     * la place
111     * les privilèves sur les programmes)
112     * Portefeuille de navires.
113     * Il peut s'agir d'un portefeuille de différent type (enquete d'activité, marées observées en
114     * mer,
115     * campagne en mer, etc.)
116     * Gestion des droits :
117     * - Un portefeuille est géré par un seul utilisateur, qui à les droits de lecture/écriture.
118     * - Un portefeuille peut etre supervisé par une tierce personne, qui aura également les droits
119     * de
120     * lecture/écriture sur les données du portefeuille.
121     * - Un portefeuille peut avoir plusieurs utilisateurs avec des droits de consultation
122     * uniquement
123     * (lecture seule) sur ces données.
124     * @return this.managedData ManagedData
125     */
126    public ManagedData getManagedData()
127    {
128        return this.managedData;
129    }
130
131    /**
132     * @deprecated  Use Program2person instead
133     * ATTENTION : NE PLUS UTILISER les portefeuilles dans les nouveaux développements (utiliser à
134     * la place
135     * les privilèves sur les programmes)
136     * Portefeuille de navires.
137     * Il peut s'agir d'un portefeuille de différent type (enquete d'activité, marées observées en
138     * mer,
139     * campagne en mer, etc.)
140     * Gestion des droits :
141     * - Un portefeuille est géré par un seul utilisateur, qui à les droits de lecture/écriture.
142     * - Un portefeuille peut etre supervisé par une tierce personne, qui aura également les droits
143     * de
144     * lecture/écriture sur les données du portefeuille.
145     * - Un portefeuille peut avoir plusieurs utilisateurs avec des droits de consultation
146     * uniquement
147     * (lecture seule) sur ces données.
148     * @param managedDataIn ManagedData
149     */
150    public void setManagedData(ManagedData managedDataIn)
151    {
152        this.managedData = managedDataIn;
153    }
154
155    private Person newManagerUser;
156
157    /**
158     * <html>
159     * <head>
160     * <style>
161     * p {padding:0px; margin:0px;}
162     * </style>
163     * </head>
164     * <body>
165     * <p>
166     * Personne liées aux données : utilisateur du système, ou observateurs,
167     * responsable de données, etc.
168     * </p>
169     * <p>
170     * </p>
171     * <p>
172     * Les personnes liées aux activités professionnelles de pêche sont plutôt
173     * gérer dans <i>VesselPerson</i>.
174     * </p>
175     * <p>
176     * </p>
177     * <p>
178     * Nombre de lignes : 100
179     * </p>
180     * </body>
181     * </html>
182     * @return this.newManagerUser Person
183     */
184    public Person getNewManagerUser()
185    {
186        return this.newManagerUser;
187    }
188
189    /**
190     * <html>
191     * <head>
192     * <style>
193     * p {padding:0px; margin:0px;}
194     * </style>
195     * </head>
196     * <body>
197     * <p>
198     * Personne liées aux données : utilisateur du système, ou observateurs,
199     * responsable de données, etc.
200     * </p>
201     * <p>
202     * </p>
203     * <p>
204     * Les personnes liées aux activités professionnelles de pêche sont plutôt
205     * gérer dans <i>VesselPerson</i>.
206     * </p>
207     * <p>
208     * </p>
209     * <p>
210     * Nombre de lignes : 100
211     * </p>
212     * </body>
213     * </html>
214     * @param newManagerUserIn Person
215     */
216    public void setNewManagerUser(Person newManagerUserIn)
217    {
218        this.newManagerUser = newManagerUserIn;
219    }
220
221    /**
222     * This entity does not have any identifiers
223     * and is not extending any other entity,
224     * so this method will only return <code>true</code> if the argument reference and <code>this</code>
225     * refer to the same object.
226     */
227    @Override
228    public boolean equals(Object object)
229    {
230        return super.equals(object);
231    }
232
233    /**
234     * This entity does not have any identifiers
235     * and is not extending any other entity,
236     * so this method will only take the identifiers of this entity into account when calculating the hash code.
237     */
238    @Override
239    public int hashCode()
240    {
241        return super.hashCode();
242    }
243
244    /**
245     * Constructs new instances of {@link ManagedDataTransfer}.
246     */
247    public static final class Factory
248    {
249        /**
250         * Constructs a new instance of {@link ManagedDataTransfer}.
251         * @return new ManagedDataTransferImpl()
252         */
253        public static ManagedDataTransfer newInstance()
254        {
255            return new ManagedDataTransferImpl();
256        }
257
258
259        /**
260         * Constructs a new instance of {@link ManagedDataTransfer}, taking all possible properties
261         * (except the identifier(s))as arguments.
262         * @param transferDate Date
263         * @param managedData ManagedData
264         * @param newManagerUser Person
265         * @return newInstance ManagedDataTransfer
266         */
267        public static ManagedDataTransfer newInstance(Date transferDate, ManagedData managedData, Person newManagerUser)
268        {
269            final ManagedDataTransfer entity = new ManagedDataTransferImpl();
270            entity.setTransferDate(transferDate);
271            entity.setManagedData(managedData);
272            entity.setNewManagerUser(newManagerUser);
273            return entity;
274        }
275    }
276
277    /**
278     * @see Comparable#compareTo
279     */
280    public int compareTo(ManagedDataTransfer o)
281    {
282        int cmp = 0;
283        if (this.getManagedDataTransferPk() != null)
284        {
285            cmp = this.getManagedDataTransferPk().compareTo(o.getManagedDataTransferPk());
286        }
287            if (this.getTransferDate() != null)
288            {
289                cmp = (cmp != 0 ? cmp : this.getTransferDate().compareTo(o.getTransferDate()));
290            }
291        return cmp;
292    }
293// HibernateEntity.vsl merge-point
294// ManagedDataTransfer.java merge-point
295}