Salome HOME
CCAR: correction d'un probleme de mise a jour de contexte lors d'une insertion
[tools/eficas.git] / Noyau / N_MCLIST.py
index 96d931d4072b1f2a6ad418b46647eed901986784..6c7ab567bcc2e34ca0b9803fe66dd080b28b5b24 100644 (file)
@@ -1,5 +1,5 @@
-# -*- coding: utf-8 -*-
-#@ MODIF N_MCLIST Noyau  DATE 04/02/2004   AUTEUR CAMBIER S.CAMBIER 
+#@ MODIF N_MCLIST 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
@@ -19,6 +19,8 @@
 #                                                                       
 #                                                                       
 # ======================================================================
+
+
 """ 
     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
@@ -27,6 +29,7 @@
 
 from copy import copy
 import UserList
+import types
 
 class MCList(UserList.UserList):
    """ Liste semblable a la liste Python
@@ -121,6 +124,44 @@ class MCList(UserList.UserList):
         l.extend(child.get_sd_utilisees())
       return l
 
+   def get_sd_mcs_utilisees(self):
+      """ 
+          Retourne la ou les SD utilisée par self sous forme d'un dictionnaire :
+          . Si aucune sd n'est utilisée, le dictionnaire est vide.
+          . Sinon, les clés du dictionnaire sont les mots-clés derrière lesquels on
+            trouve des sd ; la valeur est la liste des sd attenante.
+            Exemple : { 'VALE_F': [ <Cata.cata.para_sensi instance at 0x9419854>,
+                                    <Cata.cata.para_sensi instance at 0x941a204> ],
+                        'MODELE': [<Cata.cata.modele instance at 0x941550c>] }
+     """
+      dico = {}
+      for child in self.data:
+        daux = child.get_sd_mcs_utilisees()
+        for cle in daux.keys():
+          dico[cle] = daux[cle]
+      return dico
+
+   def get_mcs_with_co(self,co):
+      """
+         Cette methode retourne l'objet MCSIMP fils de self
+         qui a le concept co comme valeur.
+         En principe, elle ne doit etre utilisee que pour les concepts
+         instances de la classe CO 
+      """
+      l=[]
+      for child in self.data:
+        l.extend(child.get_mcs_with_co(co))
+      return l
+
+   def get_all_co(self):
+      """
+         Cette methode retourne tous les concepts instances de CO
+      """
+      l=[]
+      for child in self.data:
+        l.extend(child.get_all_co())
+      return l
+
    def copy(self):
       """
         Réalise la copie d'une MCList
@@ -156,3 +197,11 @@ class MCList(UserList.UserList):
       if self.parent == None: return None
       return self.parent.get_etape()
 
+   def __getitem__(self,key):
+      """
+         Dans le cas d un mot cle facteur de longueur 1 on simule un scalaire
+      """
+      if type(key) != types.IntType and len(self) ==1:
+         return self.data[0].get_mocle(key)
+      else:
+         return self.data[key]