]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
partage pour test
authorpascale.noyret <pascale.noyret@edf.fr>
Wed, 23 Sep 2020 15:58:25 +0000 (17:58 +0200)
committerpascale.noyret <pascale.noyret@edf.fr>
Wed, 23 Sep 2020 15:58:25 +0000 (17:58 +0200)
Efi2Xsd/AccasXsd.py

index 9e62c82b3a63e9471818ef89c39bb95428cd2ca4..1176a5de5ccd2db55d3eefcc5418bd05eb525a65 100755 (executable)
@@ -122,9 +122,8 @@ class X_definition:
        
 
    def definitNomDuTypePyxb(self,forceACreer=False):
-       if hasattr(self,'nomDuTypePyxb') : 
-          self.aCreer = False
-          return self.nomDuTypePyxb
+       if hasattr(self,'nomDuTypePyxb') : return self.nomDuTypePyxb
+       #except : pass
        self.aCreer = True
        cata = CONTEXT.getCurrentCata() 
        nom='T_'+self.nom
@@ -160,7 +159,7 @@ class X_compoFactoriseAmbigu(X_definition):
 
    def __init__(self,nom,listeDeCreation,pere):
        #print ('__ X_compoFactoriseAmbigu', listeDeCreation)
-       #for (i,index) in listeDeCreation : print (i.nom)
+       #for (i,index) in listeDeCreation : print i.nom
        self.label = 'compoAmbigu'
        self.nom=nom
        self.pere=pere
@@ -173,8 +172,8 @@ class X_compoFactoriseAmbigu(X_definition):
            self.mcXSD.append(mc)
            self.ordre_mc.append(mc.nom)
 
-       print (self.mcXSD)
-       print (self.ordre_mc)
+       #print (self.mcXSD)
+       #print (self.ordre_mc)
        self.construitEntites(self.mcXSD)
        self.constructionArbrePossibles()
        lesPossibles=deepcopy(self.arbrePossibles)
@@ -192,7 +191,7 @@ class X_compoFactoriseAmbigu(X_definition):
        #print ('self.mcXSD',self.mcXSD)
        self.texteComplexe += finTypeSubstDsBlocFactorise
        self.texteComplexe +=self.texteComplexeVenantDesFils
-       # PN ?? 12 mai self.texteComplexe=self.texteComplexe+self.texteComplexeVenantDesFils
+       self.texteComplexe=self.texteComplexe+self.texteComplexeVenantDesFils
        self.label='BlocAmbigu'
        #print ('fin pour prepareDumpXSD pour', self.nom)
 
@@ -294,7 +293,6 @@ class X_compoFactoriseAmbigu(X_definition):
    def factoriseEtCreeDump(self, laListe, indent=2 ,nomAppel=None):
        #print ('_______________________________ factoriseEtCreeDump')
        #print(self.nom, laListe, indent, nomAppel)
-       import traceback; traceback.print_stack()
        maListeRetour=[]
        aReduire={}
 
@@ -356,13 +354,13 @@ class X_compoFactoriseAmbigu(X_definition):
        #print (self.texteComplexe)
        #print ('_____', 'self.texteComplexeVenantDesFils')
        #print (self.texteComplexeVenantDesFils)
-       print ('fin pour _______________________________', self.nom)
+       #print ('fin pour _______________________________', self.nom)
        return (maListeRetour)
        
        
    def ajouteAuxTextes(self,nomMC,indent) :
        #print ('ajouteAuxTextes', nomMC, self.nom, self.entites)
-       print ('ajouteAuxTextes', nomMC, self.entites[nomMC])
+       #print ('ajouteAuxTextes', nomMC, self.entites[nomMC])
        #for i in self.entites.keys() : print (self.entites[i][0].nom)
        if (indent  > 3) : indent = indent - 3
        else : indent = 0
@@ -370,10 +368,8 @@ class X_compoFactoriseAmbigu(X_definition):
            mc=self.entites[nomMC][0]
            mc.dumpXsd(dansFactorisation=True)
            self.texteComplexe += '\t'*(indent) + mc.texteElt
-           if mc.nomDuTypePyxb not in self.mcDejaDumpe :
-              self.texteComplexeVenantDesFils += mc.texteComplexe
-              self.texteSimple   += mc.texteSimple
-              self.mcDejaDumpe.add(mc.nomDuTypePyxb)
+           self.texteComplexeVenantDesFils += mc.texteComplexe
+           self.texteSimple   += mc.texteSimple
            return
 
        leType=type(self.entites[nomMC][0])
@@ -385,13 +381,12 @@ class X_compoFactoriseAmbigu(X_definition):
        
        # cette boucle ne fonctionne que pour des SIMP
        resteATraiter=copy(self.entites[nomMC])
-       print ('________resteATraiter', resteATraiter)
+       #print ('________resteATraiter', resteATraiter)
        listePourUnion=[]
        first=1
        while resteATraiter != [] :
           nvlListeATraiter=[]
           mc=resteATraiter[0]
-          #print (mc)
           listePourUnion.append(mc)
           for autre in resteATraiter[1:]:
              if not (mc.compare(autre)) :  nvlListeATraiter.append(autre)
@@ -400,11 +395,10 @@ class X_compoFactoriseAmbigu(X_definition):
        if len(listePourUnion) == 1:
            mc=listePourUnion[0]
            mc.dumpXsd(dansFactorisation=True,multiple=False,first=first)
+           if self.nom == 'B1_B2' and nomMC == 'Numerical': print (mc.dumpXsd)
            self.texteComplexe += '\t'*(indent) + mc.texteElt
-           if mc.nomDuTypePyxb not in self.mcDejaDumpe :
-              self.texteComplexeVenantDesFils += mc.texteComplexe
-              self.texteSimple   += mc.texteSimple
-              self.mcDejaDumpe.add(mc.nomDuTypePyxb)
+           self.texteComplexeVenantDesFils += mc.texteComplexe
+           self.texteSimple   += mc.texteSimple
            return
              
        # on ajoute le nom de l element
@@ -415,25 +409,14 @@ class X_compoFactoriseAmbigu(X_definition):
        if len(listePourUnion) == 1 :
            mc=self.entites[nomMC][0]
            mc.dumpXsd(dansFactorisation=True,multiple=True,first=first)
-           if mc.nomDuTypePyxb not in self.mcDejaDumpe :
-              self.texteComplexeVenantDesFils += mc.texteComplexe
-              self.texteSimple   += mc.texteSimple
-              self.mcDejaDumpe.add(mc.nomDuTypePyxb)
+           self.texteComplexeVenantDesFils += mc.texteComplexe
+           self.texteSimple   += mc.texteSimple
        else :
-       # PN --> faire tous les cas tests
            for e in listePourUnion :
-               #print ( 'dans le else ', e)
                e.dumpXsd(dansFactorisation=True,multiple=True,first=first)
-               if first and (e.nomDuTypePyxb not in self.mcDejaDumpe) :
-                     #print ('first -------- ',e.texteSimple)
-                  self.texteComplexeVenantDesFils += e.texteComplexe
-                  self.mcDejaDumpe.add(e.nomDuTypePyxb)
-                  texteSimpleUnion += '\t'*(indent)+e.texteSimple
-                  first=first * 0
-               else :
-                  texteSimpleUnion += '\t'*(indent)+e.texteSimple
-                  #print ('non first -------- ',e.texteSimple)
-                 # print (e.texteSimple)
+               self.texteComplexeVenantDesFils += e.texteComplexe
+               first=first * 0
+               texteSimpleUnion += '\t'*(indent)+e.texteSimple
            texteSimpleUnion += finUnion
        texteSimpleUnion+=fermeSimpleType
        self.texteSimple   += texteSimpleUnion
@@ -453,11 +436,12 @@ class X_definitionComposee (X_definition):
        #print (self.nom)
        for mcFils in self.mcXSD :
           if not (isinstance(mcFils, Accas.BLOC)) :
+             #print (mcFils.nom , 'ajout')
              mcFils.dumpXsd(dansFactorisation)
+             #print (mcFils.texteSimple)
              self.texteComplexe += mcFils.texteElt
              self.texteSimple   += mcFils.texteSimple 
              texteComplexeVenantDesFils += mcFils.texteComplexe
-             continue
           else   :
              #print (mcFils.nom)
              if hasattr(mcFils,'nomXML')  and mcFils.nomXML in blocsDejaDumpes and mcFils.nomXML != None : continue 
@@ -469,9 +453,10 @@ class X_definitionComposee (X_definition):
        return texteComplexeVenantDesFils
 
    def dumpXsd(self, dansFactorisation=False, multiple = False, first=False):
-       #print ('_________ dumpXsd___________', self.nom)
-       #if PourTraduction  : print (self.nom)
-       self.prepareDumpXSD()
+       print ('_________ dumpXsd___________', self.nom)
+       if PourTraduction  : print (self.nom)
+       # le prepareDump est appele sur les fils 
+       if not (self.dejaPrepareDump) : self.prepareDumpXSD()
  
        self.getNomDuCodeDumpe()
        self.nomDuTypePyxb  = self.definitNomDuTypePyxb()
@@ -517,7 +502,8 @@ class X_definitionComposee (X_definition):
        return True
 
    def prepareDumpXSD(self):
-       #print (' ************************ prepareDumpXSD pour', self.nom)
+       #print (' uuuuuuuuuuuuuuuuuuuuuuuuu prepareDumpXSD pour', self.nom)
+       self.dejaPrepareDump=True
        self.inUnion=False
        self.tousLesFils=[]
        self.mcXSD=[]
@@ -596,7 +582,6 @@ class X_definitionComposee (X_definition):
        newListe=self.mcXSD[0:indexDebut]
 
        monEltFacteur=X_compoFactoriseAmbigu(nom,listeAFactoriser,self)
-
        newListe.append(monEltFacteur)
        newListe=newListe+self.mcXSD[indexFin:]
        self.mcXSD=newListe
@@ -732,7 +717,7 @@ class X_SIMP (X_definition):
 #--------------------------------
    def dumpXsd(self, dansFactorisation=False, multiple = False, first=False):
        #print ('_______________' , '*******************', 'je passe la dans dumpXsd SIMP', self.nom, multiple, first)
-       if PourTraduction  : print (self.nom)
+       #if PourTraduction  : print (self.nom)
        self.prepareDumpXSD()
        if multiple : self.inUnion=True
        #print ('exploreObjet SIMP')
@@ -786,6 +771,7 @@ class X_SIMP (X_definition):
     
        # self.aCreer est mis a jour ds definitNomDuTypePyxb
        # ou si elt est le 1er d une liste identique
+       #print ('je suis aCreer', self.aCreer)
        if not self.aCreer : return
  
        if not multiple : self.texteSimple  += debutSimpleType.format(self.nomDuTypePyxb)
@@ -1002,8 +988,8 @@ class X_JDC_CATA :
             if existeunUserASSD:
                if existeASSD : texteDesFields = texteDesFields + texteDesUserASSD[0:-2] +"/>\n\t\t"
                else: texteDesFields = texteDesUserASSD[0:-2]
-            print (texteDesUserASSD)
-            print (texteDesFields)
+            #print (texteDesUserASSD)
+            #print (texteDesFields)
             if texteDesFields != "" :
                texteKeyRef  += producingASSDkeyRefDeclaration.format( clef ,texteDesFields) 
 
@@ -1039,7 +1025,7 @@ class X_JDC_CATA :
         #import pprint
         #if (not PourTraduction) and  (dico != {}) : pprint.pprint(dico)
         print ('__________________________ decommenter pour le texteXSD________________________')
-        print (self.texteXSD)
+        #print (self.texteXSD)
         return self.texteXSD