+#@ MODIF N_MCLIST Noyau DATE 03/09/2002 AUTEUR GNICOLAS G.NICOLAS
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2002 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.
+#
+# 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 MCList qui sert à controler la valeur
d'une liste de mots-clés facteur par rapport à sa définition portée par un objet
de type ENTITE
"""
+from copy import copy
import UserList
class MCList(UserList.UserList):
def supprime(self):
"""
Méthode qui supprime toutes les références arrières afin que l'objet puisse
- être correctement détruit par le garbage collector
+ etre correctement détruit par le garbage collector
"""
self.parent = None
self.etape = None
if k == name:
if v.defaut != None : return v(None,k,None)
# si on passe ici, c'est que l'on demande un fils qui n'est pas possible --> erreur
- #print "Erreur : %s ne peut être un descendant de %s" %(name,self.nom)
+ #print "Erreur : %s ne peut etre un descendant de %s" %(name,self.nom)
return None
def isBLOC(self):
"""
visitor.visitMCList(self)
+ def get_sd_utilisees(self):
+ """
+ Retourne la liste des concepts qui sont utilisés à l'intérieur de self
+ ( comme valorisation d'un MCS)
+ """
+ l=[]
+ for child in self.data:
+ l.extend(child.get_sd_utilisees())
+ return l
+
+ def copy(self):
+ """
+ Réalise la copie d'une MCList
+ """
+ liste = self.data[0].definition.list_instance()
+ # FR -->Il faut spécifier un parent pour la méthode init qui attend 2 arguments ...
+ liste.init(self.nom,self.parent)
+ for objet in self:
+ new_obj = objet.copy()
+ # Pour etre coherent avec le constructeur de mots cles facteurs N_FACT.__call__
+ # dans lequel le parent de l'element d'une MCList est le parent de la MCList
+ new_obj.reparent(self.parent)
+ liste.append(new_obj)
+ return liste
+
+ def reparent(self,parent):
+ """
+ Cette methode sert a reinitialiser la parente de l'objet
+ """
+ self.parent=parent
+ self.jdc=parent.jdc
+ self.etape=parent.etape
+ for mcfact in self.data:
+ mcfact.reparent(parent)