X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=Validation%2FV_JDC.py;h=8cc88484d57ec6c082e41bd94a19032c6097c1f2;hb=94531d13450fad5a118e4d39d9693f46eb7e59a0;hp=35a84b48f0aec9f13254e6ed6988160313b8019d;hpb=61f2a263b67981f299c496ce7ef8bccc3ac6e68b;p=tools%2Feficas.git diff --git a/Validation/V_JDC.py b/Validation/V_JDC.py index 35a84b48..8cc88484 100644 --- a/Validation/V_JDC.py +++ b/Validation/V_JDC.py @@ -1,104 +1,97 @@ -#@ MODIF V_JDC Validation DATE 07/09/2009 AUTEUR COURTOIS M.COURTOIS -# -*- coding: iso-8859-1 -*- -# RESPONSABLE COURTOIS M.COURTOIS -# CONFIGURATION MANAGEMENT OF EDF VERSION +# coding=utf-8 +# person_in_charge: mathieu.courtois at edf.fr # ====================================================================== -# COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG +# COPYRIGHT (C) 1991 - 2017 EDF R&D WWW.CODE-ASTER.ORG # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY -# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR -# (AT YOUR OPTION) ANY LATER VERSION. +# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR +# (AT YOUR OPTION) ANY LATER VERSION. +# +# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT +# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF +# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU +# GENERAL PUBLIC LICENSE FOR MORE DETAILS. +# +# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE +# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, +# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. # -# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT -# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF -# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU -# GENERAL PUBLIC LICENSE FOR MORE DETAILS. # -# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE -# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER, -# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE. -# -# # ====================================================================== """ - Ce module contient la classe mixin JDC qui porte les méthodes - nécessaires pour réaliser la validation d'un objet de type JDC - dérivé de OBJECT. + Ce module contient la classe mixin JDC qui porte les methodes + necessaires pour realiser la validation d'un objet de type JDC + derive de OBJECT. Une classe mixin porte principalement des traitements et est - utilisée par héritage multiple pour composer les traitements. + utilisee par heritage multiple pour composer les traitements. """ -# Modules Python -import string,types - +from __future__ import absolute_import # Modules EFICAS -import V_MCCOMPO +from . import V_MCCOMPO from Noyau.N_Exception import AsException from Noyau.N_utils import AsType -class JDC(V_MCCOMPO.MCCOMPO): - """ - """ - def report(self): - """ - Methode pour generation d un rapport de validite - """ - self.cr.purge() - self.cr.debut="DEBUT CR validation : "+self.nom - self.cr.fin="FIN CR validation :"+self.nom - for e in self.etapes : - if e.isactif(): - self.cr.add(e.report()) - self.state = 'modified' - self.isvalid(cr='oui') - return self.cr +class JDC(V_MCCOMPO.MCCOMPO): - def isvalid(self,cr='non'): - """ - Méthode booléenne qui retourne 0 si le JDC est invalide, 1 sinon - """ - # FR : on prend en compte l'état du JDC ('unchanged','modified','undetermined') - # afin d'accélérer le test de validité du JDC - if self.state == 'unchanged': - return self.valid - else: - valid = 1 - texte,test = self.verif_regles() - if test == 0: - if cr == 'oui': self.cr.fatal(string.strip(texte)) - valid = 0 - if valid : - for e in self.etapes: - if not e.isactif() : continue - if not e.isvalid(): - valid = 0 - break - self.state="unchanged" - self.valid = valid - return self.valid + """ + """ - def verif_regles(self): - """ - Effectue la vérification de validité des règles du jeu de commandes - """ - l_noms_etapes=self.get_l_noms_etapes() - texte_global = '' - test_global = 1 - for regle in self.regles : - texte,test = regle.verif(l_noms_etapes) - texte_global = texte_global + texte - test_global = test_global*test - return texte_global,test_global + def report(self): + """ + Methode pour generation d un rapport de validite + """ + self.cr.purge() + #self.cr.debut = "DEBUT CR validation : " + self.nom + #self.cr.fin = "FIN CR validation :" + self.nom + self.cr.debut = "BEGIN validation report : " + self.nom + self.cr.fin = "END validation report :" + self.nom + for e in self.etapes: + if e.isActif(): + self.cr.add(e.report()) + self.state = 'modified' + self.isValid(cr='oui') + return self.cr - def get_l_noms_etapes(self): - """ - Retourne la liste des noms des étapes de self - """ - l=[] - for etape in self.etapes: - l.append(etape.nom) - return l + def isValid(self, cr='non'): + """ + Methode booleenne qui retourne 0 si le JDC est invalide, 1 sinon + """ + # FR : on prend en compte l'etat du JDC ('unchanged','modified','undetermined') + # afin d'accelerer le test de validite du JDC + if self.state == 'unchanged': + return self.valid + else: + valid = 1 + texte, test = self.verifRegles() + if test == 0: + if cr == 'oui': + if texte != "" and (' '.strip(texte) == "") : self.cr.fatal(texte) + else : self.cr.fatal(' '.strip(texte)) + valid = 0 + if valid: + for e in self.etapes: + if not e.isActif(): + continue + if not e.isValid(): + valid = 0 + break + self.state = "unchanged" + self.valid = valid + return self.valid + def verifRegles(self): + """ + Effectue la verification de validite des regles du jeu de commandes + """ + noms_etapes = [etape.nom for etape in self.etapes] + texte_global = '' + test_global = 1 + for regle in self.regles: + texte, test = regle.verif(noms_etapes) + texte_global = texte_global + texte + test_global = test_global * test + return texte_global, test_global