-#@ 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
#
#
# ======================================================================
+
+
"""
Ce module contient la classe ETAPE qui sert à vérifier et à exécuter
une commande
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
"""
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
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
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)
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
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