Salome HOME
CCAR:amelioration de la fonctionnalité mots clés inconnus
[tools/eficas.git] / Noyau / N_SIMP.py
1 """ Ce module contient la classe de definition SIMP
2     qui permet de spécifier les caractéristiques des mots clés simples
3 """
4
5 import types
6
7 import N_ENTITE
8 import N_MCSIMP
9
10 class SIMP(N_ENTITE.ENTITE):
11    """
12     Classe pour definir un mot cle simple 
13
14     Cette classe a deux attributs de classe 
15
16     - class_instance qui indique la classe qui devra etre utilisée 
17             pour créer l'objet qui servira à controler la conformité d'un 
18             mot-clé simple avec sa définition
19
20     - label qui indique la nature de l'objet de définition (ici, SIMP)
21
22    """
23    class_instance = N_MCSIMP.MCSIMP
24    label = 'SIMP'
25
26    def __init__(self,typ,fr="",ang="",statut='f',into=None,defaut=None,
27                      min=1,max=1,homo=1,position ='local',
28                      val_min = '**',val_max='**',docu=""):
29      
30       """
31           Un mot-clé simple est caractérisé par les attributs suivants :
32
33           - type : cet attribut est obligatoire et indique le type de valeur attendue 
34
35           - fr   :
36
37           - ang :
38
39           - statut :
40
41           - into   :
42
43           - defaut :
44
45           - min
46
47           - max
48
49           - homo
50
51           - position
52
53           - val_min
54
55           - val_max
56
57           - docu
58       """
59       N_ENTITE.ENTITE.__init__(self)
60       # Initialisation des attributs
61       if type(typ) == types.TupleType :
62           self.type=typ
63       else :
64           self.type=(typ,)
65       self.fr=fr
66       self.ang=ang
67       self.statut=statut
68       self.into=into
69       self.defaut=defaut
70       self.min=min
71       self.max=max
72       self.homo=homo
73       self.position = position
74       self.val_min=val_min
75       self.val_max=val_max
76       self.docu = docu
77
78    def verif_cata(self):
79       """
80           Cette methode sert à valider les attributs de l'objet de définition 
81           de la classe SIMP
82       """
83       if type(self.min) != types.IntType :
84          if self.min != '**':
85             self.cr.fatal("L'attribut 'min' doit être un entier : "+`self.min`)
86       if type(self.max) != types.IntType :
87          if self.max != '**' :
88             self.cr.fatal("L'attribut 'max' doit être un entier : "+`self.max`)
89       if self.min > self.max :
90          self.cr.fatal("Nombres d'occurrence min et max invalides : %s %s" %(`self.min`,`self.max`))
91       if type(self.fr) != types.StringType :
92          self.cr.fatal("L'attribut 'fr' doit être une chaîne de caractères : %s" +`self.fr`)
93       if self.statut not in ['o','f','c','d']:
94          self.cr.fatal("L'attribut 'statut' doit valoir 'o','f','c' ou 'd' : %s" %`self.statut`)
95       if self.homo != 0 and self.homo != 1 :
96          self.cr.fatal("L'attribut 'homo' doit valoir 0 ou 1 : %s" %`self.homo`)
97       if self.into != None :
98          if type(self.into) != types.TupleType :
99             self.cr.fatal("L'attribut 'into' doit être un tuple : %s" %`self.into`)
100       if self.position not in ['local','global','global_jdc']:
101          self.cr.fatal("L'attribut 'position' doit valoir 'local','global' ou 'global_jdc' : %s" %`self.position`)
102
103
104    def __call__(self,val,nom,parent=None):
105       """
106           Construit un objet mot cle simple (MCSIMP) a partir de sa definition (self)
107           de sa valeur (val), de son nom (nom) et de son parent dans l arboresence (parent)
108       """
109       return self.class_instance(nom=nom,definition=self,val=val,parent=parent)
110
111
112
113
114
115