cata.dictTypesXSD[nom].append(self)
def definitNomDuTypePyxb(self,forceACreer=False,debug=False):
- if debug : print ('definitNomDuTypePyxb', self, self.nom,self.nomComplet())
+ #if self.nom == 'SubgridScaleModel' : debug=True
+ #print ('definitNomDuTypePyxb', self, self.nom,self.nomComplet(),forceACreer)
+ #PNPN
if hasattr(self,'nomDuTypePyxb') : self.aCreer = False; return self.nomDuTypePyxb
#debug=False
if debug : print ('definitNomDuTypePyxb traitement pour ', self.nom)
# ----------------------------------------
def __init__(self,nom,listeDeCreation,pere, debug=False):
- #if nom == 'blocFormatFichierMed_blocFormatFichierAll' : debug = True
- # import traceback
- # traceback.print_stack()
+
if debug :
- for (i) in listeDeCreation : print (i.nom)
+ for i in listeDeCreation : print (i.nom)
self.label='BlocAmbigu'
self.nom=nom
self.pere=pere
self.statut='f'
self.entites={}
self.mcXSD=[]
+ self.typesXSDDejaDumpes=[]
self.ordre_mc=[]
self.lesConditions = 'Possible Conditions : '
for mc in listeDeCreation :
self.construitEntites(self.mcXSD)
self.constructionArbrePossibles()
lesPossibles=deepcopy(self.arbrePossibles)
+ if debug : print ('lesPossibles ', lesPossibles)
self.getNomDuCodeDumpe()
self.nomDuTypePyxb = self.definitNomDuTypePyxb()
def ajouteAuxTextes(self,nomMC,indent,debug=False) :
- if debug : print ('ajouteAuxTextes', nomMC, self.nom, self.entites[nomMC])
- debug=False
- #if debug :
- # traceback.print_stack()
- #for i in self.entites.keys() : print (self.entites[i][0].nom)
+ if debug :
+ print ('______________________________________________________')
+ print ('ajouteAuxTextes', nomMC, self.nom)
+ # for i in self.entites.keys() : print (self.entites[i][0].nom)
if (indent > 3) : indent = indent - 3
# PN change le 17 fevrier . Est-ce normal d arriver la ?
nomMC=nomMC[0]
if nomMC == 'Consigne' or nomMC == 'blocConsigne' : return
- if debug : print (nomMC, 'dans ajoute aux textes', self.entites )
+ if debug : print (nomMC, 'dans ajoute vraiment aux textes', self.entites )
if len(self.entites[nomMC]) == 1:
mc=self.entites[nomMC][0]
mc.dumpXsd(dansFactorisation=True)
return
# on ajoute le nom de l element
- # PN : attention on dumpe 2 fois
if not (isinstance(self.entites[nomMC][0], Accas.SIMP)) :
sontTousDisjoint=True
index=1
if debug : print ('self.texteComplexe' , self.texteComplexe)
if debug : print ('self.texteSimple' , self.texteSimple)
if debug : print ('self.texteElt' , self.texteElt)
+ if debug : print ('________________________')
return
- self.entites[nomMC][0].dumpXsd(dansFactorisation=True,multiple=True,first=first)
+
+ if hasattr(self.entites[nomMC][0], 'dejaDumpe') : # on a deja cree le type
+ if debug : print (self.entites[nomMC][0].nomDuTypePyxb, ' deja dumpe')
+ else :
+ if debug : print ('appel de dumpXsd')
+ self.entites[nomMC][0].dejaDumpe=True
+ self.entites[nomMC][0].dumpXsd(dansFactorisation=True,multiple=True,first=first)
+ if debug : print (self.entites[nomMC][0].nomDuTypePyxb)
+
texteDocUnion='\n'
i=1
for mc in self.entites[nomMC]:
texteDocUnion = texteDocUnion[0:-4]
debutTexteEltUnion = self.entites[nomMC][0].texteElt.split('maxOccurs=')[0]
self.texteComplexe += '\t'*(indent)+ reconstitueUnion.format(debutTexteEltUnion,texteDocUnion)
+ if self.entites[nomMC][0].nomDuTypePyxb in self.typesXSDDejaDumpes : return
+ self.typesXSDDejaDumpes.append(self.entites[nomMC][0].nomDuTypePyxb)
+ if debug : print ('et la j ajoute les definitions de type', self.entites[nomMC][0].nomDuTypePyxb)
+
nomTypePyxbUnion=self.entites[nomMC][0].nomDuTypePyxb
- texteSimpleUnion=debutSimpleType.format(nomTypePyxbUnion)
- texteSimpleUnion+=debutUnion
- #if len(listePourUnion) == 1 :
- #PN 29 septembre 20. Est ce que ce if a un sens
- # si len(listePourUnion==1) on est deja sorti non ?
- # mc=self.entites[nomMC][0]
- # mc.dumpXsd(dansFactorisation=True,multiple=True,first=first)
- # inutile - deja fait plus haut
- # if mc.aCreer : self.texteComplexeVenantDesFils += mc.texteComplexe
- # if mc.aCreer : self.texteSimple += mc.texteSimple
- #else :
+ texteSimpleUnion = debutSimpleType.format(nomTypePyxbUnion)
+ texteSimpleUnion += debutUnion
texteSimpleUnion += '\t'*(indent)+self.entites[nomMC][0].texteSimplePart2
- texteSimplePart1= self.entites[nomMC][0].texteSimplePart1
+ texteSimplePart1 = self.entites[nomMC][0].texteSimplePart1
for e in listePourUnion[1:] :
e.dumpXsd(dansFactorisation=True,multiple=True,first=False)
# si on ext un mc simple la ligne suivante est inutile
texteSimpleUnion += '\t'*(indent) + e.texteSimplePart2
texteSimplePart1 += e.texteSimplePart1
texteSimpleUnion += finUnion
- texteSimpleUnion+=fermeSimpleType
- self.texteSimple += texteSimplePart1 + texteSimpleUnion
+ texteSimpleUnion +=fermeSimpleType
+ self.texteSimple += texteSimplePart1 + texteSimpleUnion
+ if debug :
+ print ('______________')
+ print (self.texteSimple)
+ print ('______________')
#print ('self.texteSimple', self.texteSimple)
def fusionneDsUnChoix(self, nomMC,indent, debug=False):
self.texteDuFact += texteComplexe
self.texteDuFact += finChoiceDsBloc
self.texteDuFact += finTypeCompo
- self.texteSimple += texteSimple
+ self.texteSimple += texteSimple
self.texteComplexeVenantDesFils += texteComplexeVenantDesFils
self.texteComplexeVenantDesFils += self.texteDuFact
self.texteComplexe += self.texteElt
cata = CONTEXT.getCurrentCata()
if len(self.type) == 2 and self.type[1]=='createObject' : suffixe = 'C'
else : suffixe = 'U'
- print (cata.listeUserASSDDumpes)
- print (typeATraduire.__name__)
- print (typeATraduire.__name__ in cata.listeUserASSDDumpes)
+ #print (cata.listeUserASSDDumpes)
+ #print (typeATraduire.__name__)
+ #print (typeATraduire.__name__ in cata.listeUserASSDDumpes)
if typeATraduire.__name__ not in cata.listeUserASSDDumpes :
cata.listeUserASSDDumpes.add(typeATraduire.__name__)
if issubclass(typeATraduire, Accas.UserASSDMultiple) :