]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
aout des Tuples
authorpascale.noyret <pascale.noyret@edf.fr>
Tue, 27 Apr 2021 09:04:37 +0000 (11:04 +0200)
committerpascale.noyret <pascale.noyret@edf.fr>
Tue, 27 Apr 2021 09:04:37 +0000 (11:04 +0200)
Efi2Xsd/MCAccasXML.py

index 55694623ab884364f48d9b6ff02f445202aaa3ec..548c24d4c228c60068b08b20ab51e0807723e0a9 100755 (executable)
@@ -131,6 +131,7 @@ class X_MCSIMP(X_OBJECT):
 
     def buildObjPyxb(self, debug=False) :
         if not self.cata or not self.cata.modeleMetier : return
+        #if self.nom == 'initial_rod_positions' : debug = True
         if self.nom == 'Consigne' : return None
         if debug : print (self.definition.nomComplet())
         if debug : print ('_______________ X_MCSIMP buildObjPyxb', self.nom, self,self.valeur)
@@ -156,19 +157,36 @@ class X_MCSIMP(X_OBJECT):
             self.maClasseModeleMetier=getattr(self.cata.modeleMetier,self.monNomClasseModeleMetier)
 
             if self.waitMatrice() :
-               #PNPN : Attention rien ne relie la listeObjPyxb et l objAccas
-               # 21/04 je ne sais pas si cela posera pb
-               debug = 1
-               self.objPyxb = []
+               #PNPN : Attention rien ne relie les objets listeObjPyxb a un objAccas
+               # 27/04 je ne sais pas si cela posera pb
+               self.listeLines = []
                self.maClasseModeleMetier=getattr(self.cata.modeleMetier,self.monNomClasseModeleMetier)
+               self.maClasseModeleMetier_line=getattr(self.cata.modeleMetier,self.monNomClasseModeleMetier+'_line')
                if debug : print ('Matrice  de type ', self.maClasseModeleMetier)
-               #for v in self.valeur: self.objPyxb.append(self.maClasseModeleMetier(v))
                for v in self.valeur: 
-                   l=self.maClasseModeleMetier(v)
-                   l.objAccas=self
-                   self.objPyxb.append(l)
+                   l=self.maClasseModeleMetier_line(v)
+                   self.listeLines.append(l)
+               self.objPyxb=self.maClasseModeleMetier(*self.listeLines)
+               #if self.objPyxb !=None : self.objPyxb.objAccas=self
                if debug : print ('Matrice ', self.nom, self.objPyxb)
                return
+            if self.waitTuple() :
+               self.objPyxb = []
+               self.maClasseModeleMetier=getattr(self.cata.modeleMetier,self.monNomClasseModeleMetier)
+               # if faut traiter l autre cas
+               # et optimiser
+               if self.definition.max !=1 :
+                  for v in self.valeur :
+                    if debug : print ('je traite ', v)
+                    listeConstruction=[]
+                    for i in range(self.combienEltDsTuple()):
+                        num=i+1
+                        maClasseElt=getattr(self.cata.modeleMetier,self.monNomClasseModeleMetier+'_n'+str(num))
+                        listeConstruction.append(maClasseElt(v[i]))
+                    self.objPyxb.append(self.maClasseModeleMetier(*listeConstruction))
+                    if debug  : print (self.objPyxb)
+                  return
+                        
             if issubclass(self.maClasseModeleMetier, self.cata.modeleMetier.pyxb.binding.basis.STD_union):
                 if debug : print ('needFactory')
                 self.needFactory=True
@@ -235,8 +253,9 @@ class X_MCCOMPO(X_OBJECT) :
     def buildObjPyxb(self,mc_list, debug=False) :
         if not self.cata or not self.cata.modeleMetier : return
 
-        debug=1
+        #if self.nom == 'Scenario_data' : debug=1
         if debug : print ('X_MCCOMPO', self.nom)
+        deepDebug=False
         self.listArg=[]
         self.dicoArg={}
         for objAccas in mc_list :
@@ -255,15 +274,15 @@ class X_MCCOMPO(X_OBJECT) :
                     self.listArg.append(objAccas[0].objPyxb)
             else :
                 if objAccas.nom == 'Consigne'     : continue
-                if 0 : #objAccas.waitMatrice() :
-                   for o in objAccas.objPyxb : self.listArg.append(o)
-                else: self.listArg.append(objAccas.objPyxb)
+                print ('______________', objAccas.nom, objAccas.objPyxb)
+                self.listArg.append(objAccas.objPyxb)
                 self.dicoArg[objAccas.nom]=objAccas.objPyxb
                 objAccas.perePyxb=self
 
         if debug : print('X_MCCOMPO -- listArg ---',self.nom,self.listArg)
         if debug : print('X_MCCOMPO -- dicoArg ---',self.nom,self.dicoArg)
 
+
         self.monNomClasseModeleMetier='T_'+self.nom
         if self.monNomClasseModeleMetier in list(self.cata.DicoNomTypeDifferentNomElt.keys()) :
             self.nomComplet=self.definition.nomComplet()
@@ -281,7 +300,7 @@ class X_MCCOMPO(X_OBJECT) :
             if debug : print (self.maClasseModeleMetier)
             # self.objPyxb=self.maClasseModeleMetier(*self.listArg)
             self.objPyxb=self.maClasseModeleMetier(**self.dicoArg)
-            if debug :
+            if deepDebug :
                 print ('debut de __________ new ordered content')
                 for o in self.objPyxb.orderedContent():
                     print ('o', o)
@@ -326,7 +345,11 @@ class X_MCCOMPO(X_OBJECT) :
 
             for i in range(len(self.listArg)):
                 self.objPyxb.orderedContent()[i]=newOrderedContent[i]
-            if debug : print ('X_MCCOMPO', self, self.nom, self.objPyxb,self.listArg,newOrderedContent,self.objPyxb.orderedContent())
+            debug=True
+            if debug : print ('X_MCCOMPO', self, self.nom, self.objPyxb)
+            if debug : print ('X_MCCOMPO', self.listArg)
+            if debug : print ('X_MCCOMPO', newOrderedContent)
+            if debug : print ( 'X_MCCOMPO',self.objPyxb.orderedContent())
         if debug : print ('fin buildObjetPyxb _______________________________________')
         # assert(self.objPyxb.validateBinding())