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 fr.ifremer.adagio.core.dao.data.vessel.Vessel; 032import java.io.Serializable; 033import java.util.Date; 034 035/** 036 * @deprecated Use Program2person instead 037 * ATTENTION : NE PLUS UTILISER les portefeuilles dans les nouveaux développements (utiliser à la 038 * place les privilèves sur les programmes) 039 * Définit la présence de navires sur un portefeuille pour une période début/fin. 040 * La période utilisée définit la date des données que peut saisir/modifier/visualiser 041 * l'utilisateur, en fonction de ses droits. 042 * Exemple : 043 * Si un utilisateur a un navire A dans un portefeuille pour la période du 01/01/2002 au 31/12/2002, 044 * il peut saisir des données même en 2004, si la date de donnée saisie est pendant l'année 2002. 045 */ 046// HibernateEntity.vsl annotations merge-point 047public abstract class VesselManagePeriod 048 implements Serializable, Comparable<VesselManagePeriod> 049{ 050 /** 051 * The serial version UID of this class. Needed for serialization. 052 */ 053 private static final long serialVersionUID = -3872631416617531452L; 054 055 private VesselManagePeriodPK vesselManagePeriodPk; 056 057 /** 058 * Get the composite primary key identifier class 059 * @return vesselManagePeriodPk 060 */ 061 public VesselManagePeriodPK getVesselManagePeriodPk() 062 { 063 return this.vesselManagePeriodPk; 064 } 065 066 /** 067 * Set the composite primary key identifier class 068 * @param vesselManagePeriodPkIn 069 */ 070 public void setVesselManagePeriodPk(VesselManagePeriodPK vesselManagePeriodPkIn) { 071 this.vesselManagePeriodPk = vesselManagePeriodPkIn; 072 } 073 074 // Generate 2 attributes 075 /** 076 * Date début d'appartenance d'un navire à un portefeuille. 077 * @return this.startDateTime Date 078 */ 079 public Date getStartDateTime() 080 { 081 return this.getVesselManagePeriodPk().getStartDateTime(); 082 } 083 084 /** 085 * Date début d'appartenance d'un navire à un portefeuille. 086 * @param startDateTimeIn Date 087 */ 088 public void setStartDateTime(Date startDateTimeIn) 089 { 090 this.getVesselManagePeriodPk().setStartDateTime(startDateTimeIn); 091 } 092 093 private Date endDateTime; 094 095 /** 096 * Date fin d'appartenance d'un navire à un portefeuille. 097 * @return this.endDateTime Date 098 */ 099 public Date getEndDateTime() 100 { 101 return this.endDateTime; 102 } 103 104 /** 105 * Date fin d'appartenance d'un navire à un portefeuille. 106 * @param endDateTimeIn Date 107 */ 108 public void setEndDateTime(Date endDateTimeIn) 109 { 110 this.endDateTime = endDateTimeIn; 111 } 112 113 // Generate 2 associations 114 private Vessel vessel; 115 116 /** 117 * Navire, ou plus généralement un usager de la ressource. 118 * Peut etre un navire de peche professionnel ou non, un navire scientifique, un pêcheur à pied, 119 * un 120 * groupement de navires, etc. 121 * @return this.vessel Vessel 122 */ 123 public Vessel getVessel() 124 { 125 return this.vessel; 126 } 127 128 /** 129 * Navire, ou plus généralement un usager de la ressource. 130 * Peut etre un navire de peche professionnel ou non, un navire scientifique, un pêcheur à pied, 131 * un 132 * groupement de navires, etc. 133 * @param vesselIn Vessel 134 */ 135 public void setVessel(Vessel vesselIn) 136 { 137 this.vessel = vesselIn; 138 } 139 140 private ManagedData managedData; 141 142 /** 143 * @deprecated Use Program2person instead 144 * ATTENTION : NE PLUS UTILISER les portefeuilles dans les nouveaux développements (utiliser à 145 * la place 146 * les privilèves sur les programmes) 147 * Portefeuille de navires. 148 * Il peut s'agir d'un portefeuille de différent type (enquete d'activité, marées observées en 149 * mer, 150 * campagne en mer, etc.) 151 * Gestion des droits : 152 * - Un portefeuille est géré par un seul utilisateur, qui à les droits de lecture/écriture. 153 * - Un portefeuille peut etre supervisé par une tierce personne, qui aura également les droits 154 * de 155 * lecture/écriture sur les données du portefeuille. 156 * - Un portefeuille peut avoir plusieurs utilisateurs avec des droits de consultation 157 * uniquement 158 * (lecture seule) sur ces données. 159 * @return this.managedData ManagedData 160 */ 161 public ManagedData getManagedData() 162 { 163 return this.managedData; 164 } 165 166 /** 167 * @deprecated Use Program2person instead 168 * ATTENTION : NE PLUS UTILISER les portefeuilles dans les nouveaux développements (utiliser à 169 * la place 170 * les privilèves sur les programmes) 171 * Portefeuille de navires. 172 * Il peut s'agir d'un portefeuille de différent type (enquete d'activité, marées observées en 173 * mer, 174 * campagne en mer, etc.) 175 * Gestion des droits : 176 * - Un portefeuille est géré par un seul utilisateur, qui à les droits de lecture/écriture. 177 * - Un portefeuille peut etre supervisé par une tierce personne, qui aura également les droits 178 * de 179 * lecture/écriture sur les données du portefeuille. 180 * - Un portefeuille peut avoir plusieurs utilisateurs avec des droits de consultation 181 * uniquement 182 * (lecture seule) sur ces données. 183 * @param managedDataIn ManagedData 184 */ 185 public void setManagedData(ManagedData managedDataIn) 186 { 187 this.managedData = managedDataIn; 188 } 189 190 /** 191 * Returns <code>true</code> if the argument is an VesselManagePeriod instance and all identifiers for this entity 192 * equal the identifiers of the argument entity. Returns <code>false</code> otherwise. 193 */ 194 @Override 195 public boolean equals(Object object) 196 { 197 if (this == object) 198 { 199 return true; 200 } 201 if (!(object instanceof VesselManagePeriod)) 202 { 203 return false; 204 } 205 final VesselManagePeriod that = (VesselManagePeriod)object; 206 if (this.vesselManagePeriodPk == null || that.vesselManagePeriodPk == null || !this.vesselManagePeriodPk.equals(that.vesselManagePeriodPk)) 207 { 208 return false; 209 } 210 return true; 211 } 212 213 /** 214 * Returns a hash code based on this entity's identifiers. 215 */ 216 @Override 217 public int hashCode() 218 { 219 int hashCode = 0; 220 hashCode = 29 * hashCode + (this.vesselManagePeriodPk == null ? 0 : this.vesselManagePeriodPk.hashCode()); 221 222 return hashCode; 223 } 224 225 /** 226 * Constructs new instances of {@link VesselManagePeriod}. 227 */ 228 public static final class Factory 229 { 230 /** 231 * Constructs a new instance of {@link VesselManagePeriod}. 232 * @return new VesselManagePeriodImpl() 233 */ 234 public static VesselManagePeriod newInstance() 235 { 236 return new VesselManagePeriodImpl(); 237 } 238 239 /** 240 * Constructs a new instance of {@link VesselManagePeriod}, taking all required and/or 241 * read-only properties as arguments, except for identifiers. 242 * @param vessel Vessel 243 * @param managedData ManagedData 244 * @return newInstance 245 */ 246 public static VesselManagePeriod newInstance(Vessel vessel, ManagedData managedData) 247 { 248 final VesselManagePeriod entity = new VesselManagePeriodImpl(); 249 entity.setVessel(vessel); 250 entity.setManagedData(managedData); 251 return entity; 252 } 253 254 /** 255 * Constructs a new instance of {@link VesselManagePeriod}, taking all possible properties 256 * (except the identifier(s))as arguments. 257 * @param endDateTime Date 258 * @param vessel Vessel 259 * @param managedData ManagedData 260 * @return newInstance VesselManagePeriod 261 */ 262 public static VesselManagePeriod newInstance(Date endDateTime, Vessel vessel, ManagedData managedData) 263 { 264 final VesselManagePeriod entity = new VesselManagePeriodImpl(); 265 entity.setEndDateTime(endDateTime); 266 entity.setVessel(vessel); 267 entity.setManagedData(managedData); 268 return entity; 269 } 270 } 271 272 /** 273 * @see Comparable#compareTo 274 */ 275 public int compareTo(VesselManagePeriod o) 276 { 277 int cmp = 0; 278 if (this.getVesselManagePeriodPk() != null) 279 { 280 cmp = this.getVesselManagePeriodPk().compareTo(o.getVesselManagePeriodPk()); 281 } 282 else 283 { 284 if (this.getEndDateTime() != null) 285 { 286 cmp = (cmp != 0 ? cmp : this.getEndDateTime().compareTo(o.getEndDateTime())); 287 } 288 } 289 return cmp; 290 } 291// HibernateEntity.vsl merge-point 292// VesselManagePeriod.java merge-point 293}