]> SALOME platform Git repositories - tools/eficas.git/commitdiff
Salome HOME
sauvegarde
authorpascale.noyret <pascale.noyret@edf.fr>
Tue, 24 Mar 2020 14:39:49 +0000 (15:39 +0100)
committerpascale.noyret <pascale.noyret@edf.fr>
Tue, 24 Mar 2020 14:39:49 +0000 (15:39 +0100)
Efi2Xsd/AccasXsd.py

index dea863e64bb2c7c637643d9d2fe37194288433a6..cefeb4ebfae56a3c414d89d6a07920d80a8960a0 100755 (executable)
@@ -164,6 +164,8 @@ class X_factCompoAmbigu(X_definition):
        # on ne fait rien, tout a ete fait dans le init
        self.texteElt=substDsSequence.format(self.code,self.nomDuTypePyxb,0,1)
 
+   def nomComplet(self) :
+       print (self, self.nom)
 
 #   def creeTexteComplexe(self,laListe):
 #       if (len(laListe))==1:
@@ -330,22 +332,23 @@ class X_definitionComposee (X_definition):
    
    def CreeTexteComplexeVenantDesFils(self,dansFactorisation=False):
        texteComplexeVenantDesFils=""
-       fichierDejaDumpe=False
+       blocsDejaDumpes=set()
        #for nom in self.ordre_mc:
        #  mcFils = self.entites[nom]
        for mcFils in self.mcXSD :
-          if not (isinstance(mcFils, Accas.BLOC_FICHIER)) :
+          if not (isinstance(mcFils, Accas.BLOC)) :
              mcFils.dumpXsd(dansFactorisation)
              self.texteComplexe += mcFils.texteElt
              self.texteSimple   += mcFils.texteSimple 
              texteComplexeVenantDesFils += mcFils.texteComplexe
              continue
-          elif  not fichierDejaDumpe :
+          else   :
+             if hasattr(mcFils,'nomXML')  and mcFils.nomXML in blocsDejaDumpes: continue 
+             if hasattr(mcFils,'nomXML')  : blocsDejaDumpes.add(mcFils.nomXML)
              mcFils.dumpXsd(dansFactorisation)
              self.texteComplexe += mcFils.texteElt
              self.texteSimple   += mcFils.texteSimple 
              texteComplexeVenantDesFils += mcFils.texteComplexe
-             fichierDejaDumpe = True
        return texteComplexeVenantDesFils
 
    def dumpXsd(self,dansFactorisation=False):
@@ -383,6 +386,7 @@ class X_definitionComposee (X_definition):
 
    def compare(self,autreMC):
        if self.label != autreMC.label : return False
+       if hasattr(self,'nomXML') and hasattr(autreMC,'nomXML') and self.nomXML==autreMC.nomXML : return True
        for attr in (  'regles', 'fr',  'defaut', 'min' ,'max', 'position' , 'docu' ) :
            val1=getattr(self,attr)
            val2=getattr(autreMC,attr)
@@ -426,6 +430,7 @@ class X_definitionComposee (X_definition):
              independant=True
              for (bloc,indInListe) in liste :
                  if bloc.isDisjoint(child) : continue
+                 if bloc.estLeMemeQue(child) : continue
                  independant=False
                  vraimentIndependant=False
              if not (independant) :
@@ -436,6 +441,10 @@ class X_definitionComposee (X_definition):
        for l in list(self.listeDesBlocsNonDisjointsAvecIndex) :
            if len(l) ==1 : self.listeDesBlocsNonDisjointsAvecIndex.remove(l)
 
+   def estLeMemeQue(self,autreMC):
+       if hasattr(self,'nomXML') and hasattr(autreMC,'nomXML') and self.nomXML==autreMC.nomXML : return True
+       return False
+
    def aUnPremierCommunDansLesPossibles(self, laListe) :
     # fonctionne avec liste de mc ou une liste(mc,index) 
        import types
@@ -602,6 +611,7 @@ class X_BLOC (X_definitionComposee):
 
    def compare(self,autreMC):
        if self.label != autreMC.label : return False
+       if hasattr(self,'nomXML') and hasattr(autreMC,'nomXML') and self.nomXML==autreMC.nomXML : return True
        for attr in ( 'condition', 'regles', ):
            val1=getattr(self,attr)
            val2=getattr(autreMC,attr)
@@ -761,6 +771,7 @@ class X_SIMP (X_definition):
        listeAComparer = [ 'type', 'defaut', 'min' ,'max' ,'val_min' , 'val_max' ]
        if self.intoXML != None : listeAComparer.append('intoXML')
        else : listeAComparer.append('into')
+       if (hasattr (self, 'nomXML')) and self.nomXML != None : nomUtil=self.nomXML
        for attr in listeAComparer :
            val1=getattr(self,attr)
            val2=getattr(autreMC,attr)