X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=Noyau%2FN_FACT.py;h=e5e3b4280ce21ec21f4583d0a005a301cfc2f610;hb=48ed5b9a4653e74d533ebad34a8a95a1f82b4934;hp=2d9455c03c2c14815add7e5daabf5d2ecfcf5107;hpb=243fbe08b8fbc49d4ae0a5374069e9133b7b4b31;p=tools%2Feficas.git diff --git a/Noyau/N_FACT.py b/Noyau/N_FACT.py index 2d9455c0..e5e3b428 100644 --- a/Noyau/N_FACT.py +++ b/Noyau/N_FACT.py @@ -1,4 +1,5 @@ -#@ MODIF N_FACT Noyau DATE 27/03/2002 AUTEUR DURAND C.DURAND +#@ MODIF N_FACT Noyau DATE 16/05/2006 AUTEUR DURAND C.DURAND +# -*- coding: iso-8859-1 -*- # CONFIGURATION MANAGEMENT OF EDF VERSION # ====================================================================== # COPYRIGHT (C) 1991 - 2002 EDF R&D WWW.CODE-ASTER.ORG @@ -18,6 +19,8 @@ # # # ====================================================================== + + """ Ce module contient la classe de definition FACT qui permet de spécifier les caractéristiques des mots clés facteurs """ @@ -27,6 +30,9 @@ import types import N_ENTITE import N_MCFACT import N_MCLIST +from N__F import _F + +import N_OBJECT class FACT(N_ENTITE.ENTITE): """ @@ -47,7 +53,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 +76,7 @@ class FACT(N_ENTITE.ENTITE): - docu """ + N_ENTITE.ENTITE.__init__(self,validators) # Initialisation des attributs self.fr=fr self.ang=ang @@ -111,24 +118,30 @@ class FACT(N_ENTITE.ENTITE): elif type(self.defaut) == types.TupleType: val=self.defaut # Est ce utile ? Le défaut pourrait etre uniquement un dict - elif type(self.defaut) == types.DictType or isinstance(self.defaut,N_MCFACT._F): + elif type(self.defaut) == types.DictType or isinstance(self.defaut,_F): val=self.defaut else: # On ne devrait jamais passer par la print "On ne devrait jamais passer par la" return None - if type(val) == types.TupleType or type(val) == types.ListType : - # on est en présence d'un MCFACT multiple ! - l=self.list_instance() - l.init(nom = nom,parent=parent) - for v in val: - objet=self.class_instance(nom=nom,definition=self,val=v,parent=parent) - l.append(objet) - return l + # On cree toujours une liste de mcfact + l=self.list_instance() + l.init(nom = nom,parent=parent) + if type(val) in (types.TupleType,types.ListType) : + for v in val: + if type(v) == types.DictType or isinstance(v, _F): + objet=self.class_instance(nom=nom,definition=self,val=v,parent=parent) + l.append(objet) + else: + l.append(N_OBJECT.ErrorObj(self,v,parent,nom)) + elif type(val) == types.DictType or isinstance(val, _F): + objet=self.class_instance(nom=nom,definition=self,val=val,parent=parent) + l.append(objet) else: - return self.class_instance(nom=nom,definition=self,val=val,parent=parent) + l.append(N_OBJECT.ErrorObj(self,val,parent,nom)) + return l def verif_cata(self): if type(self.min) != types.IntType : @@ -147,5 +160,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()