1 # CONFIGURATION MANAGEMENT OF EDF VERSION
2 # ======================================================================
3 # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG
4 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
5 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
6 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
7 # (AT YOUR OPTION) ANY LATER VERSION.
9 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
10 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
11 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
12 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
14 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
15 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
16 # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
19 # ======================================================================
25 Retourne 1 si self est une MCList (liste de mots-clés), 0 sinon (défaut)
29 def get_index(self,objet):
31 Retourne la position d'objet dans la liste self
33 return self.data.index(objet)
35 def ajout_possible(self):
37 Méthode booléenne qui retourne 1 si on peut encore ajouter une occurrence
38 de l'élément que contient self, 0 sinon
40 max = self.data[0].definition.max
51 Une MCList n'est jamais obligatoire (même si le MCFACT qu'elle représente l'est
55 # if i.isoblig():return 1
58 def liste_mc_presents(self):
61 def delete_concept(self,sd):
65 Fonction : Mettre a jour les fils de l objet suite à la disparition
67 Seuls les mots cles simples MCSIMP font un traitement autre
68 que de transmettre aux fils
70 for child in self.data :
71 child.delete_concept(sd)
73 def replace_concept(self,old_sd,sd):
76 - old_sd=concept remplacé
78 Fonction : Mettre a jour les fils de l objet suite au remplacement
81 for child in self.data :
82 child.replace_concept(old_sd,sd)
86 Réalise la copie d'une MCList
88 liste = self.data[0].definition.list_instance()
89 # FR -->Il faut spécifier un parent pour la méthode init qui attend 2 arguments ...
90 liste.init(self.nom,self.parent)
92 new_obj = objet.copy()
93 # Pour etre coherent avec le constructeur de mots cles facteurs N_FACT.__call__
94 # dans lequel le parent de l'element d'une MCList est le parent de la MCList
95 new_obj.reparent(self.parent)
100 return self.data[0].definition.get_docu()
102 def get_liste_mc_inconnus(self):
104 Retourne la liste des mots-clés inconnus dans self
107 for mcfact in self.data :
108 if mcfact.isvalid() : continue
109 l_child = mcfact.get_liste_mc_inconnus()
116 def verif_condition_regles(self,liste_presents):
118 Retourne la liste des mots-clés à rajouter pour satisfaire les règles
119 en fonction de la liste des mots-clés présents
121 # Sans objet pour une liste de mots clés facteurs
124 def verif_condition_bloc(self):
126 Evalue les conditions de tous les blocs fils possibles
127 (en fonction du catalogue donc de la définition) de self et
128 retourne deux listes :
129 - la première contient les noms des blocs à rajouter
130 - la seconde contient les noms des blocs à supprimer
132 # Sans objet pour une liste de mots clés facteurs
135 def init_modif(self):
137 Met l'état de l'objet à modified et propage au parent
138 qui vaut None s'il n'existe pas
140 self.state = 'modified'
142 self.parent.init_modif()
146 Retourne l'étape à laquelle appartient self
147 Un objet de la catégorie etape doit retourner self pour indiquer que
148 l'étape a été trouvée
149 XXX double emploi avec self.etape ???
151 if self.parent == None: return None
152 return self.parent.get_etape()
154 def get_genealogie(self):
156 Retourne la liste des noms des ascendants.
157 Un objet MCList n'est pas enregistré dans la genealogie.
158 XXX Meme si le MCFACT fils ne l'est pas lui non plus ????
161 return self.parent.get_genealogie()
165 def get_liste_mc_ordonnee_brute(self,liste,dico):
167 Retourne la liste ordonnée (suivant le catalogue) BRUTE des mots-clés
168 d'une entité composée dont le chemin complet est donné sous forme
169 d'une liste du type :ETAPE + MCFACT ou MCBLOC + ...
172 objet_cata = dico[arg]
173 dico=objet_cata.entites
174 return objet_cata.ordre_mc
176 def reparent(self,parent):
178 Cette methode sert a reinitialiser la parente de l'objet
182 self.etape=parent.etape
183 for mcfact in self.data:
184 mcfact.reparent(parent)
186 def verif_existence_sd(self):
188 Vérifie que les structures de données utilisées dans self existent bien dans le contexte
189 avant étape, sinon enlève la référence à ces concepts
191 for motcle in self.data :
192 motcle.verif_existence_sd()
194 def get_sd_utilisees(self):
196 Retourne la liste des concepts qui sont utilisés à l'intérieur de self
197 ( comme valorisation d'un MCS)
200 for motcle in self.data:
201 l.extend(motcle.get_sd_utilisees())
206 Retourne la chaine d'aide contenue dans le catalogue
207 en tenant compte de la langue
210 return self.data[0].get_fr()