Salome HOME
F.R: -modifs procédure d'installation et suppression de code_aster.gif
[tools/eficas.git] / Noyau / N_MCFACT.py
1 """ 
2     Ce module contient la classe MCFACT qui sert à controler la valeur
3     d'un mot-clé facteur par rapport à sa définition portée par un objet
4     de type ENTITE
5 """
6
7 import N_MCCOMPO
8
9 class MCFACT(N_MCCOMPO.MCCOMPO):
10    """
11    """
12    nature = "MCFACT"
13    def __init__(self,val,definition,nom,parent):
14       """
15          Attributs :
16           - val : valeur du mot clé simple
17           - definition
18           - nom
19           - parent
20       """
21       self.definition=definition
22       self.nom=nom
23       self.val = val
24       self.parent = parent
25       self.valeur = self.GETVAL(self.val)
26       if parent :
27          self.jdc = self.parent.jdc
28          self.niveau = self.parent.niveau
29          self.etape = self.parent.etape
30       else:
31          # Le mot cle a été créé sans parent
32          self.jdc = None
33          self.niveau = None
34          self.etape = None
35       self.mc_liste=self.build_mc()
36          
37    def GETVAL(self,val):
38       """ 
39           Retourne la valeur effective du mot-clé en fonction
40           de la valeur donnée. Defaut si val == None
41       """
42       if (val is None and hasattr(self.definition,'defaut')) :
43         return self.definition.defaut
44       else:
45         return val
46
47    def get_valeur(self):
48       """
49           Retourne la "valeur" d'un mot-clé facteur qui est l'objet lui-meme.
50           Cette valeur est utilisée lors de la création d'un contexte 
51           d'évaluation d'expressions à l'aide d'un interpréteur Python
52       """
53       return self
54
55    def get_val(self):
56       """
57           Une autre méthode qui retourne une "autre" valeur du mot clé facteur.
58           Elle est utilisée par la méthode get_mocle
59       """
60       return [self]
61
62    def __getitem__(self,key):
63       """ 
64           Dans le cas d un mot cle facteur unique on simule une liste de 
65           longueur 1
66       """
67       if key == 0:return self
68       return self.get_mocle(key)
69
70    def accept(self,visitor):
71       """
72          Cette methode permet de parcourir l'arborescence des objets
73          en utilisant le pattern VISITEUR
74       """
75       visitor.visitMCFACT(self)
76