2 Ce module contient la classe mixin JDC qui porte les méthodes
3 nécessaires pour réaliser la validation d'un objet de type JDC
6 Une classe mixin porte principalement des traitements et est
7 utilisée par héritage multiple pour composer les traitements.
14 from Noyau.N_Exception import AsException
15 from Noyau.N_utils import AsType
17 class JDC(V_MCCOMPO.MCCOMPO):
23 Methode pour generation d un rapport de validite
26 self.cr.debut="DEBUT CR validation : "+self.nom
27 self.cr.fin="FIN CR validation :"+self.nom
28 self.state = 'modified'
29 self.isvalid(cr='oui')
30 for e in self.etapes :
32 self.cr.add(e.report())
35 def isvalid(self,cr='non'):
37 Méthode booléenne qui retourne 0 si le JDC est invalide, 1 sinon
39 # FR : on prend en compte l'état du JDC ('unchanged','modified','undetermined')
40 # afin d'accélérer le test de validité du JDC
41 if self.state == 'unchanged':
45 texte,test = self.verif_regles()
47 if cr == 'oui': self.cr.fatal(string.strip(texte))
51 if not e.isactif() : continue
58 def verif_regles(self):
60 Effectue la vérification de validité des règles du jeu de commandes
62 l_noms_etapes=self.get_l_noms_etapes()
65 for regle in self.regles :
66 texte,test = regle.verif(l_noms_etapes)
67 texte_global = texte_global + texte
68 test_global = test_global*test
69 return texte_global,test_global
71 def get_l_noms_etapes(self):
73 Retourne la liste des noms des étapes de self
76 for etape in self.etapes: