X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=Noyau%2FN_ETAPE.py;h=377ce7523aa6d5cd963dc8a2e40fb194ea7f5837;hb=a7d5f18fe322c770026b50343adc09ed0472c192;hp=e5d7effc3b46ad13f773f30966c8e9a2c4b239b1;hpb=7949edc0190c5f01f9cb19c4f8ea3894354b6bdf;p=tools%2Feficas.git diff --git a/Noyau/N_ETAPE.py b/Noyau/N_ETAPE.py index e5d7effc..377ce752 100644 --- a/Noyau/N_ETAPE.py +++ b/Noyau/N_ETAPE.py @@ -1,4 +1,5 @@ -#@ MODIF N_ETAPE Noyau DATE 03/09/2002 AUTEUR GNICOLAS G.NICOLAS +#@ MODIF N_ETAPE Noyau DATE 22/02/2005 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 ETAPE qui sert à vérifier et à exécuter une commande @@ -107,11 +110,11 @@ class ETAPE(N_MCCOMPO.MCCOMPO): Construit le concept produit de l'opérateur. Deux cas peuvent se présenter : - - le parent n'est pas défini. Dans ce cas, l'étape prend en charge la création - et le nommage du concept. + - le parent n'est pas défini. Dans ce cas, l'étape prend en charge la création + et le nommage du concept. - - le parent est défini. Dans ce cas, l'étape demande au parent la création et - le nommage du concept. + - le parent est défini. Dans ce cas, l'étape demande au parent la création et + le nommage du concept. """ if not self.isactif():return @@ -155,11 +158,11 @@ class ETAPE(N_MCCOMPO.MCCOMPO): """ Retourne le concept résultat de l'étape Deux cas : - - sd_prod de oper n'est pas une fonction + cas 1 : sd_prod de oper n'est pas une fonction il s'agit d'une sous classe de ASSD on construit le sd à partir de cette classe et on le retourne - - il s'agit d'une fonction + cas 2 : il s'agit d'une fonction on l'évalue avec les mots-clés de l'étape (mc_liste) on construit le sd à partir de la classe obtenue et on le retourne @@ -191,23 +194,25 @@ class ETAPE(N_MCCOMPO.MCCOMPO): return self.sd def get_type_produit(self): + try: + return self.get_type_produit_brut() + except: + return None + + def get_type_produit_brut(self): """ Retourne le type du concept résultat de l'étape Deux cas : - - sd_prod de oper n'est pas une fonction + cas 1 : sd_prod de oper n'est pas une fonction il s'agit d'une sous classe de ASSD on retourne le nom de la classe - - il s'agit d'une fonction - on l'évalue avec les mots-clés de l'étape (mc_liste) + cas 2 : il s'agit d'une fonction + on l'évalue avec les mots-clés de l'étape (mc_liste) et on retourne son résultat """ if type(self.definition.sd_prod) == types.FunctionType: d=self.cree_dict_valeurs(self.mc_liste) - try: - sd_prod= apply(self.definition.sd_prod,(),d) - except: - #traceback.print_exc() - return None + sd_prod= apply(self.definition.sd_prod,(),d) else: sd_prod=self.definition.sd_prod return sd_prod @@ -254,7 +259,7 @@ class ETAPE(N_MCCOMPO.MCCOMPO): def reset_current_step(self): """ Methode utilisee par l'etape self qui remet son etape parent comme - etape courante + etape courante """ #print "reset_current_step ",self.nom #traceback.print_stack(limit=3,file=sys.stdout) @@ -342,16 +347,6 @@ class ETAPE(N_MCCOMPO.MCCOMPO): if hasattr(old_etape,"sdnom") : self.sdnom = old_etape.sdnom - def get_sd_utilisees(self): - """ - Retourne la liste des concepts qui sont utilisés à l'intérieur d'une commande - ( comme valorisation d'un MCS) - """ - l=[] - for child in self.mc_liste: - l.extend(child.get_sd_utilisees()) - return l - def reparent(self,parent): """ Cette methode sert a reinitialiser la parente de l'objet @@ -361,3 +356,40 @@ class ETAPE(N_MCCOMPO.MCCOMPO): self.etape=self for mocle in self.mc_liste: mocle.reparent(self) + + def get_cmd(self,nomcmd): + """ + Méthode pour recuperer la definition d'une commande + donnee par son nom dans les catalogues declares + au niveau du jdc + Appele par un ops d'une macro en Python + """ + return self.jdc.get_cmd(nomcmd) + + def copy_intern(self,etape): + """ + Méthode permettant lors du processus de recopie de copier + les elements internes d'une etape dans une autre + """ + return + + def full_copy(self,parent=None): + """ + Méthode permettant d'effectuer une copie complète + d'une étape (y compris concept produit, éléments internes) + Si l'argument parent est fourni, la nouvelle étape + aura cet objet comme parent. + """ + new_etape = self.copy() + new_etape.copy_reuse(self) + new_etape.copy_sdnom(self) + if parent: new_etape.reparent(parent) + if self.sd : + new_sd = self.sd.__class__(etape=new_etape) + new_etape.sd = new_sd + if self.reuse == None : + new_etape.parent.NommerSdprod(new_sd,self.sd.nom) + else : + new_sd.nom = self.sd.nom + new_etape.copy_intern(self) + return new_etape