2 # person_in_charge: mathieu.courtois at edf.fr
3 # ======================================================================
4 # COPYRIGHT (C) 1991 - 2017 EDF R&D WWW.CODE-ASTER.ORG
5 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
6 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
7 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
8 # (AT YOUR OPTION) ANY LATER VERSION.
10 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
11 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
12 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
13 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
16 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
17 # 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
20 # ======================================================================
24 Ce module contient la classe mixin JDC qui porte les methodes
25 necessaires pour realiser la validation d'un objet de type JDC
28 Une classe mixin porte principalement des traitements et est
29 utilisee par heritage multiple pour composer les traitements.
31 from __future__ import absolute_import
33 from . import V_MCCOMPO
34 from Noyau.N_Exception import AsException
35 from Noyau.N_utils import AsType
38 class JDC(V_MCCOMPO.MCCOMPO):
45 Methode pour generation d un rapport de validite
48 #self.cr.debut = "DEBUT CR validation : " + self.nom
49 #self.cr.fin = "FIN CR validation :" + self.nom
50 self.cr.debut = "BEGIN validation report : " + self.nom
51 self.cr.fin = "END validation report :" + self.nom
54 self.cr.add(e.report())
55 self.state = 'modified'
56 self.isValid(cr='oui')
59 def isValid(self, cr='non'):
61 Methode booleenne qui retourne 0 si le JDC est invalide, 1 sinon
63 # FR : on prend en compte l'etat du JDC ('unchanged','modified','undetermined')
64 # afin d'accelerer le test de validite du JDC
65 if self.state == 'unchanged':
69 texte, test = self.verifRegles()
72 if texte != "" and (' '.strip(texte) == "") : self.cr.fatal(texte)
73 else : self.cr.fatal(' '.strip(texte))
82 self.state = "unchanged"
86 def verifRegles(self):
88 Effectue la verification de validite des regles du jeu de commandes
90 noms_etapes = [etape.nom for etape in self.etapes]
93 for regle in self.regles:
94 texte, test = regle.verif(noms_etapes)
95 texte_global = texte_global + texte
96 test_global = test_global * test
97 return texte_global, test_global