]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
This commit was generated by cvs2git to track changes on a CVS vendor
authoreficas <>
Thu, 18 Sep 2003 10:21:47 +0000 (10:21 +0000)
committereficas <>
Thu, 18 Sep 2003 10:21:47 +0000 (10:21 +0000)
branch.

Noyau/N_ENTITE.py
Noyau/N_FACT.py
Noyau/N_SIMP.py
Validation/V_JDC.py
Validation/V_MCBLOC.py
Validation/V_MCFACT.py
Validation/V_PROC_ETAPE.py

index b5b9d875513cdcf9540693b95cf4f5458b8bb6fd..d7f72c3df61c06bfc696d450654e7ad8017d50bb 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF N_ENTITE Noyau  DATE 27/03/2002   AUTEUR DURAND C.DURAND 
+#@ MODIF N_ENTITE Noyau  DATE 09/09/2003   AUTEUR DURAND C.DURAND 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -24,6 +24,7 @@
 """
 
 import N_CR
+import N_VALIDATOR
 
 class ENTITE:
    """
@@ -32,8 +33,9 @@ class ENTITE:
       Elle ne peut etre instanciee et doit d abord etre specialisee
    """
    CR=N_CR.CR
+   factories={'validator':N_VALIDATOR.validatorFactory}
 
-   def __init__(self):
+   def __init__(self,validators=None):
       """
          Initialise les deux attributs regles et entites d'une classe dérivée
          à : pas de règles et pas de sous-entités.
@@ -46,6 +48,10 @@ class ENTITE:
       """
       self.regles=()
       self.entites={}
+      if validators:
+         self.validators=self.factories['validator'](validators)
+      else:
+         self.validators=validators
 
    def affecter_parente(self):
       """
index 2d9455c03c2c14815add7e5daabf5d2ecfcf5107..0f3def1241ae07b660c769ed8cf75a8175fbffbc 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF N_FACT Noyau  DATE 27/03/2002   AUTEUR DURAND C.DURAND 
+#@ MODIF N_FACT Noyau  DATE 09/09/2003   AUTEUR DURAND C.DURAND 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -47,7 +47,7 @@ class FACT(N_ENTITE.ENTITE):
    label = 'FACT'
 
    def __init__(self,fr="",ang="",docu="",regles=(),statut='f',defaut=None,
-                     min=0,max=1,**args):
+                     min=0,max=1,validators=None,**args):
      
       """
           Un mot-clé facteur est caractérisé par les attributs suivants :
@@ -70,6 +70,7 @@ class FACT(N_ENTITE.ENTITE):
 
           - docu
       """
+      N_ENTITE.ENTITE.__init__(self,validators)
       # Initialisation des attributs
       self.fr=fr
       self.ang=ang
@@ -147,5 +148,7 @@ class FACT(N_ENTITE.ENTITE):
          self.cr.fatal("L'attribut 'statut' doit valoir 'o','f','c' ou 'd' : %s" %`self.statut`)
       if type(self.docu) != types.StringType :
          self.cr.fatal("L'attribut 'docu' doit etre une chaine de caractères : %s" %`self.docu`)
+      if self.validators and not self.validators.verif_cata():
+         self.cr.fatal("Un des validateurs est incorrect. Raison : "+self.validators.cata_info)
       self.verif_cata_regles()
 
index abcccfd614906308a721829ff162fd6962be78bd..0158a203e89f342a3e789a53977115c0e00b7b4b 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF N_SIMP Noyau  DATE 27/03/2002   AUTEUR DURAND C.DURAND 
+#@ MODIF N_SIMP Noyau  DATE 09/09/2003   AUTEUR DURAND C.DURAND 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -45,7 +45,7 @@ class SIMP(N_ENTITE.ENTITE):
 
    def __init__(self,typ,fr="",ang="",statut='f',into=None,defaut=None,
                      min=1,max=1,homo=1,position ='local',
-                     val_min = '**',val_max='**',docu=""):
+                     val_min = '**',val_max='**',docu="",validators=None):
      
       """
           Un mot-clé simple est caractérisé par les attributs suivants :
@@ -76,7 +76,7 @@ class SIMP(N_ENTITE.ENTITE):
 
           - docu
       """
-      N_ENTITE.ENTITE.__init__(self)
+      N_ENTITE.ENTITE.__init__(self,validators)
       # Initialisation des attributs
       if type(typ) == types.TupleType :
           self.type=typ
@@ -119,7 +119,8 @@ class SIMP(N_ENTITE.ENTITE):
             self.cr.fatal("L'attribut 'into' doit etre un tuple : %s" %`self.into`)
       if self.position not in ['local','global','global_jdc']:
          self.cr.fatal("L'attribut 'position' doit valoir 'local','global' ou 'global_jdc' : %s" %`self.position`)
-
+      if self.validators and not self.validators.verif_cata():
+         self.cr.fatal("Un des validateurs est incorrect. Raison : "+self.validators.cata_info)
 
    def __call__(self,val,nom,parent=None):
       """
index 38d8056f2fd0a2b09d644db6dcb8c82556397a3e..f288eaae8c2c47fabea278fc056524f3beb14b1a 100644 (file)
@@ -72,6 +72,7 @@ class JDC(V_MCCOMPO.MCCOMPO):
             if not e.isvalid():
               valid = 0
               break
+        self.state="unchanged"
         self.valid = valid
         return self.valid
 
index 16b695207249719e3031c48f20e7990b8e00fbd0..ea4a28b79417b19d5caacccdda8686a8541863d5 100644 (file)
@@ -70,7 +70,7 @@ class MCBLOC(V_MCCOMPO.MCCOMPO):
           valid = 0
         self.valid = valid
         self.state = 'unchanged'
-        if old_valid:
-          if old_valid != self.valid : self.init_modif_up()
+        if not old_valid or old_valid != self.valid : 
+           self.init_modif_up()
         return self.valid
 
index 6d15b036706a98c3b83ed865a02442e4f02c2cf8..a8e24c59fc8fcb41879c3ed0900551d13dd17a7e 100644 (file)
@@ -1,4 +1,4 @@
-#@ MODIF V_MCFACT Validation  DATE 27/03/2002   AUTEUR DURAND C.DURAND 
+#@ MODIF V_MCFACT Validation  DATE 09/09/2003   AUTEUR DURAND C.DURAND 
 #            CONFIGURATION MANAGEMENT OF EDF VERSION
 # ======================================================================
 # COPYRIGHT (C) 1991 - 2002  EDF R&D                  WWW.CODE-ASTER.ORG
@@ -68,13 +68,22 @@ class MCFACT(V_MCCOMPO.MCCOMPO):
         if not test_regles :
           if cr == 'oui' : self.cr.fatal(string.join(("Règle(s) non respectée(s) :", text_erreurs)))
           valid = 0
+        #
+        # On verifie les validateurs s'il y en a
+        #
+        if self.definition.validators and not self.definition.validators.verif(self.valeur):
+           if cr == 'oui' :
+              self.cr.fatal(string.join(("Mot-clé : ",self.nom,"devrait avoir ",self.definition.validators.info())))
+           valid=0
+        # fin des validateurs
+        #
         if self.reste_val != {}:
           if cr == 'oui' :
             self.cr.fatal("Mots cles inconnus :" + string.join(self.reste_val.keys(),','))
           valid=0
         self.valid = valid
         self.state = 'unchanged'
-        if old_valid:
-          if old_valid != self.valid : self.init_modif_up()
+        if not old_valid or old_valid != self.valid : 
+           self.init_modif_up()
         return self.valid
 
index 7b6b798a73ac15bd4a6831bb666e46c823ffe909..53f31b4703d3b00c42778cc09d4978367d3aef39 100644 (file)
@@ -61,29 +61,17 @@ class PROC_ETAPE(V_ETAPE.ETAPE):
       if self.state == 'unchanged' :
         return self.valid
       else:
-        valid = 1
-        if hasattr(self,'valid'):
-          old_valid = self.valid
-        else:
-          old_valid = None
-        # on teste les enfants
-        for child in self.mc_liste :
-          if not child.isvalid():
-            valid = 0
-            break
-        # on teste les règles de self
-        text_erreurs,test_regles = self.verif_regles()
-        if not test_regles :
-          if cr == 'oui' : self.cr.fatal(string.join(("Règle(s) non respectée(s) :", text_erreurs)))
-          valid = 0
+        valid=self.valid_child()
+
+        valid=valid * self.valid_regles(cr)
+
         if self.reste_val != {}:
           if cr == 'oui' :
             self.cr.fatal("Mots cles inconnus :" + string.join(self.reste_val.keys(),','))
           valid=0
-        self.valid = valid
-        self.state = 'unchanged'
-        if old_valid:
-          if old_valid != self.valid : self.init_modif_up()
+
+        self.set_valid(valid)
+
         return self.valid