Trees | Indices | Help |
|
---|
|
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: donnees.py 20 # Objet: Classe qui accede au donnees concernant les auteurs 21 #---------------------------------------------------------------------------- 22 23 from Utile.constantesDonnees import * 24 from Utile.exceptionsDonnees import * 25 from auteur import * 26 from oeuvre import * 27 from arbre import * 28 import shelve 2931 # Methode qui renvoie vrai si l'auteur existe dans notre fichier de donnees14433 listeAuteurs = shelve.open(NOSDONNEES) # Donne la liste des auteurs 34 existe = listeAuteurs.has_key(str(pNom)) 35 listeAuteurs.close() 36 return existe37 38 39 # Methode qui retourne l'auteur dont le nom est passe en parametre 40 # Une exception est lancee si l'auteur n'existe pas42 ## print 'dans Donnees.getAuteurByNom' 43 if self.__existeAuteurByNom(pNom): 44 listeAuteurs = shelve.open(NOSDONNEES) 45 auteur = listeAuteurs[str(pNom)] 46 listeAuteurs.close() 47 return auteur 48 else : 49 raise AuteurNonTrouve('l\'auteur "'+pNom+'" n\'a pas ete trouve')50 51 # Methode pour ajouter un auteur dans notre fichier de donnees 52 # Une exception est lancee si l'auteur est deja enregistre54 ## print 'dans Donnees.addAuteur' 55 try : 56 auteur = self.getAuteurByNom(str(pAuteur.getNom())) 57 raise AuteurDejaExistant('l\'auteur "'+pAuteur.getNom()+'" est deja existant',auteur) 58 except AuteurNonTrouve : 59 listeAuteurs = shelve.open(NOSDONNEES) 60 listeAuteurs[str(pAuteur.getNom())]= pAuteur 61 listeAuteurs.close()62 63 64 # Methode pour supprimer un auteur de notre fichier de donnees 65 # Une exception est lancee, si l'auteur n'existe pas67 # print 'dans Donnees.deleteAuteur' 68 try: 69 listeAuteurs = shelve.open(NOSDONNEES) 70 del listeAuteurs[str(pNom)] 71 listeAuteurs.close() 72 except KeyError: 73 raise AuteurNonTrouve('l\'auteur "'+pNom+'" n\'a pas ete trouve')74 75 # Methode de mise a jour d'un auteur77 ## print 'dans Donnees.updateAuteur' 78 auteur = self.getAuteurByNom(pAuteur.getNom()) 79 auteur.modifyAuteur(pAuteur.getPrenom(), pAuteur.getNaissance(), pAuteur.getDeces()) 80 self.deleteAuteur(pAuteur.getNom()) 81 self.addAuteur(auteur)82 83 # Methode qui renvoie la liste des noms des auteurs85 ## print 'dans Donnees.getListeNomsAuteurs' 86 listeAuteurs = shelve.open(NOSDONNEES) 87 l=listeAuteurs.keys() 88 listeAuteurs.close() 89 return l90 91 # Methode qui renvoie la liste des titres des oeuvres d'un auteur93 ## print 'dans Donnees.getListeTitresByAuteur' 94 auteur = self.getAuteurByNom(pNom) 95 return auteur.getListeTitresOeuvres()96 97 # Methode qui renvoie la liste des noms des dossiers genetiques des oeuvres d'un auteur99 ## print 'dans Donnees.getListeDGByAuteur' 100 auteur = self.getAuteurByNom(pNom) 101 return auteur.getListeDGOeuvres()102 103 # Methode qui ajoute une oeuvre a un auteur 104 # Une exception est lancee si l'oeuvre est deja existante106 ## print 'dans Donnees.addOeuvre' 107 try : 108 auteur = self.getAuteurByNom(pNom) 109 oeuvre = auteur.getOeuvreByTitre(pOeuvre.getTitre()) 110 # Si l'oeuvre existe, on lance une exception 111 raise OeuvreDejaExistante('l\'oeuvre "'+pOeuvre.getTitre()+'"de "'+pNom+'" est deja enregistree',oeuvre) 112 except OeuvreNonTrouvee: 113 auteur.addOeuvre(pOeuvre) 114 self.deleteAuteur(pNom) 115 self.addAuteur(auteur)116 117 # Methode pour supprimer une oeuvre d'un auteur119 ## print 'dans Donnees.deleteOeuvre' 120 auteur = self.getAuteurByNom(pNom) 121 if auteur.existeOeuvreByTitre(pTitre): 122 auteur.deleteOeuvreByTitre(pTitre) 123 self.deleteAuteur(pNom) 124 self.addAuteur(auteur)125 126 # Methode qui met a jour l'oeuvre d'un auteur128 ## print 'dans Donnees.updateOeuvre' 129 auteur = self.getAuteurByNom(pNom) 130 #oeuvre = auteur.getOeuvreByTitre(pOeuvre.getTitre()) 131 auteur.deleteOeuvreByTitre(pOeuvre.getTitre()) 132 #oeuvre.modifyOeuvre(pOeuvre.getEdition(), pOeuvre.getPublication()) 133 auteur.addOeuvre(pOeuvre) 134 self.deleteAuteur(pNom) 135 self.addAuteur(auteur)136 137 138 # Methode qui retourne le nom du dossier genetique de l'oeuvre passee en parametre140 ## print 'dans Donnees.getNomDG' 141 auteur = self.getAuteurByNom(pNom) 142 oeuvre = auteur.getOeuvreByTitre(pTitre) 143 return oeuvre.getNomDG()
Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0beta1 on Wed Aug 13 15:25:43 2008 | http://epydoc.sourceforge.net |