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 # ======================================================================
26 from Noyau import N_MCCOMPO
27 from Validation import V_MCCOMPO
29 class MCNUPLET(V_MCCOMPO.MCCOMPO,N_MCCOMPO.MCCOMPO):
35 def __init__(self,val,definition,nom,parent):
36 # val contient la valeur initial du nuplet
38 if val == None: self.val=()
39 self.definition=definition
42 # GETVAL affecte la valeur par defaut si necessaire
43 self.valeur=self.GETVAL(self.val)
45 self.jdc = self.parent.jdc
46 self.niveau = self.parent.niveau
47 self.etape = self.parent.etape
49 # Le mot cle a été créé sans parent
53 self.state = 'undetermined'
55 self.mc_liste=self.build_mc()
59 Construit la liste des sous-entites de MCNUPLET
60 à partir de la liste des arguments (valeur)
63 if args ==None : args =()
66 # on crée les sous entites du NUPLET a partir des valeurs initiales
68 for v in self.definition.entites:
73 objet=v(val=val,nom=`k`,parent=self)
74 if hasattr(objet.definition,'position'):
75 if objet.definition.position == 'global' :
76 self.append_mc_global(objet)
78 mc_liste.append(objet)
80 # Un nuplet n'a pas de mots inconnus
84 def isvalid(self,cr='non'):
86 Indique si self (MCNUPLET) est un objet valide ou non : retourne 1 si oui, 0 sinon
88 if self.state == 'unchanged' :
92 if hasattr(self,'valid'):
93 old_valid = self.valid
96 for child in self.mc_liste :
97 if not child.isvalid():
100 if len(self.mc_liste) != len(self.definition.entites):
103 self.cr.fatal(string.join(("Nuplet : ",self.nom," Longueur incorrecte")))
105 self.state = 'unchanged'
107 if old_valid != self.valid : self.init_modif_up()
110 def __getitem__(self,key):
112 Retourne le key ème élément du nuplet
114 # Un nuplet est toujours une liste de mots cles simples
115 # On retourne donc la valeur
116 return self.mc_liste[key].valeur
120 Retourne une représentation du nuplet sous forme de chaine
124 for e in self.mc_liste:
125 s=s + str(e.valeur) + ','
130 Retourne une représentation du nuplet sous forme de chaine
134 for e in self.mc_liste:
135 s=s + str(e.valeur) + ','
138 def get_regles(self):
140 Retourne la liste des règles attachées au nuplet
144 def verif_condition_bloc(self):
146 Vérifie s'il y a des blocs sous le nuplet et retourne
147 les blocs en question
149 # Il n y a pas de BLOCs sous un NUPLET
152 def isrepetable(self):
154 Indique si le NUPLET peut etre répété.
155 Retourne 1 si c'est le cas.
156 Retourne 0 dans le cas contraire.
157 L'information est donnée par le catalogue, cad la définition de self
159 if self.definition.min != self.definition.max :
165 return self.definition(val = None, nom = self.nom,parent = self.parent)
167 def get_valeur(self):
169 Cette méthode doit retourner la valeur de l'objet. Elle est utilisée par
170 cree_dict_valeurs pour construire un dictionnaire contenant les mots clés
172 Dans le cas d'un nuplet, on retournera comme valeur une liste des valeurs
173 des mots clé simples contenus.
176 for v in self.mc_liste:
182 Une autre méthode qui retourne une "autre" valeur du mot clé facteur.
183 Elle est utilisée par la méthode get_mocle
186 for v in self.mc_liste:
191 return self.definition.statut=='o'
195 Retourne le texte d'aide dans la langue choisie
198 return getattr(self.definition,prefs.lang)