Package medite :: Package Donnees :: Module auteur
[hide private]
[frames] | no frames]

Source Code for Module medite.Donnees.auteur

  1  # -*- coding: iso-8859-1 -*- 
  2  # Copyright 20003 - 2008: Julien Bourdaillet (julien.bourdaillet@lip6.fr), Jean-Gabriel Ganascia (jean-gabriel.ganascia@lip6.fr) 
  3  # This file is part of MEDITE. 
  4  # 
  5  #    MEDITE is free software; you can redistribute it and/or modify 
  6  #    it under the terms of the GNU General Public License as published by 
  7  #    the Free Software Foundation; either version 2 of the License, or 
  8  #    (at your option) any later version. 
  9  # 
 10  #    MEDITE is distributed in the hope that it will be useful, 
 11  #    but WITHOUT ANY WARRANTY; without even the implied warranty of 
 12  #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 13  #    GNU General Public License for more details. 
 14  # 
 15  #    You should have received a copy of the GNU General Public License 
 16  #    along with Foobar; if not, write to the Free Software 
 17  #    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA 
 18  #---------------------------------------------------------------------------- 
 19  # Nom:          auteur.py 
 20  # Objet:        Classe qui regroupe les donnees d'un auteur 
 21  #---------------------------------------------------------------------------- 
 22   
 23  from oeuvre import * 
 24  from Utile.exceptionsDonnees import * 
 25   
 26   
27 -class Auteur:
28 # Constucteur de la classe
29 - def __init__(self, pNom, pPrenom, pNais, pDeces, pOeuvres=[]):
30 self.__nom = pNom 31 self.__prenom = pPrenom 32 self.__naissance = pNais 33 self.__deces = pDeces 34 self.__listeOeuvres = pOeuvres
35 36 # Methodes d'acces aux attributs prives
37 - def getNom(self):
38 return self.__nom
39
40 - def getPrenom(self):
41 return self.__prenom
42
43 - def getNaissance(self):
44 return self.__naissance
45
46 - def getDeces(self):
47 return self.__deces
48
49 - def getListeOeuvres(self):
50 return self.__listeOeuvres
51 52 # Methode qui renvoie la liste des titres
53 - def getListeTitresOeuvres(self):
54 listeO = [] 55 for oeuvre in self.__listeOeuvres : 56 listeO.append(oeuvre.getTitre()) 57 return listeO
58 59 # Methode qui renvoie la liste des dossiers genetique
60 - def getListeDGOeuvres(self):
61 listeD = [] 62 for oeuvre in self.__listeOeuvres : 63 listeD.append(oeuvre.getNomDG()) 64 return listeD
65 66 # Methode qui renvoie vrai si l'oeuvre dont le titre est passee en parametre 67 # est une des oeuvres de l'auteur
68 - def existeOeuvreByTitre(self, pTitre):
69 for oeuvre in self.__listeOeuvres: 70 if oeuvre.getTitre() == pTitre : 71 return 1 ## VRAI 72 return 0 ## FALSE
73 74 # Methode qui retourne l'oeuvre dont le titre est passee en parametre 75 # Une exception est lancee si ce n'est pas une oeuvre de l'auteur
76 - def getOeuvreByTitre(self, pTitre):
77 for oeuvre in self.__listeOeuvres: 78 if oeuvre.getTitre() == pTitre: 79 return oeuvre 80 # l'oeuvre n'a pas ete trouvee, lancement d'une exception 81 raise OeuvreNonTrouvee('l\'oeuvre "'+pTitre+'" de "'+self.getNom()+'" n\'as pas ete trouvee')
82 83 # Methode pour ajouter une oeuvre a la liste des oeuvres de l'auteur 84 # Une exception est lancee si l'oeuvre a deja ete enregistree
85 - def addOeuvre(self, pOeuvre):
86 try : 87 # l'oeuvre existe deja dans la liste, lancement d'une exception 88 oeuvre = self.getOeuvreByTitre(pOeuvre.getTitre()) 89 raise OeuvreDejaExistante('l\'oeuvre "'+pOeuvre.getTitre()+'" est deja existante',oeuvre) 90 except OeuvreNonTrouvee : 91 self.__listeOeuvres.append(pOeuvre)
92 93 # Methode pour supprimer une oeuvre de la liste des oeuvres de l'auteur 94 # Cette methode attrappe l'exception OeuvreNonTrouvee, dans ce cas elle n'effectue rien
95 - def deleteOeuvreByTitre(self, pTitre):
96 try : 97 oeuvre = self.getOeuvreByTitre(pTitre) 98 self.__listeOeuvres.remove(oeuvre) 99 except OeuvreNonTrouvee : 100 return
101 102 # Methode de mise a jour des attributs d'un auteur 103 # Seuls les attributs prenom, naissance et deces sont modifiables
104 - def modifyAuteur(self, pPrenom, pNais, pDeces):
105 self.__prenom = pPrenom 106 self.__naissance = pNais 107 self.__deces = pDeces
108