cata.dictTypesXSD[nom].append(self)
def definitNomDuTypePyxb(self,forceACreer=False,debug=False):
- #if self.nom == 'SubgridScaleModel' : debug=True
- #print ('definitNomDuTypePyxb', self, self.nom,self.nomComplet(),forceACreer)
+ if debug : print ('definitNomDuTypePyxb', self, self.nom,self.nomComplet(),forceACreer)
#PNPN
if hasattr(self,'nomDuTypePyxb') : self.aCreer = False; return self.nomDuTypePyxb
#debug=False
if nom == 'T_Consigne' : return nom
+ if debug : print ('forceACreer : ', forceACreer)
if not forceACreer :
self.aCreer = False
listePossible=cata.dictTypesXSD[nom]
+ if debug : print ('listePossible : ', listePossible)
indice=0
while (indice < len(listePossible)) :
objAComparer=listePossible[indice]
class X_compoFactoriseAmbigu(X_definition):
# ----------------------------------------
- def __init__(self,nom,listeDeCreation,pere, debug=True):
+ def __init__(self,nom,listeDeCreation,pere, debug=False):
if debug :
for i in listeDeCreation : print (i.nom)
self.getNomDuCodeDumpe()
self.nomDuTypePyxb = self.definitNomDuTypePyxb()
- if debug : print (self.nomDuTypePyxb)
+ if debug : print ('CompoAmbigu : ' ,self.nomDuTypePyxb)
self.texteSimple = ''
self.texteComplexeVenantDesFils = ''
self.texteComplexe = debutTypeSubstDsBlocFactorise.format(self.nomDuTypePyxb)
self.texteComplexe +=self.texteComplexeVenantDesFils
#print ('fin pour prepareDumpXSD pour', self.nom)
+
def compare(self,autreMC):
if self.label != autreMC.label : return False
#PN : le bug est la
def factoriseEtCreeDump(self, laListe, indent=2 ,nomAppel=None, debug=False):
- if debug : print ('_______________________________ factoriseEtCreeDump')
if debug : print(self.nom, laListe, indent, nomAppel)
maListeRetour=[]
aReduire={}
if debug : print ('creeSequence', creeSequence, aReduire)
for nomMC in aReduire.keys():
- if debug : print (nomMC)
+ if debug : print ('---------- boucle for', nomMC)
listeSuivante=aReduire[nomMC]
if creeChoice and listeSuivante != [[]] :
self.texteComplexe += '\t'*(indent) + debSequenceDsBloc; indent=indent+1
if nomMC == 'Consigne' or nomMC == 'blocConsigne' : return
if debug : print (nomMC, 'dans ajoute vraiment aux textes', self.entites )
+ if debug : print (self.entites[nomMC])
if len(self.entites[nomMC]) == 1:
mc=self.entites[nomMC][0]
mc.dumpXsd(dansFactorisation=True)
if not (mc.compare(autre)) : nvlListeATraiter.append(autre)
resteATraiter=copy(nvlListeATraiter)
+ if debug : print ('listePourUnion : ', listePourUnion)
if len(listePourUnion) == 1:
mc=listePourUnion[0]
mc.dumpXsd(dansFactorisation=True,multiple=False,first=first)
#print ('self.texteSimple', self.texteSimple)
def fusionneDsUnChoix(self, nomMC,indent, debug=False):
- if debug : print ('_________________________________', self.nom, self, nomMC,indent)
+ if debug : print ('______fusionneDsUnChoix ', self.nom, self, nomMC,indent)
if debug : print (self.texteComplexe)
texteDocUnion='\n'
texteComplexe=''
leNomDuTypePyxb = mcRef.definitNomDuTypePyxb(forceACreer=True)
if debug : print ('nomMC', nomMC)
i=0
+
+ cata = CONTEXT.getCurrentCata()
for mc in self.entites[nomMC]:
if debug : print ('------------', mc)
# on laisse dansFactorisation a False car ce n est pas comme une fusion de bloc
mc.texteSimple = ''
mc.texteElt = ''
mc.dumpXsd(dansFactorisationDeFusion=True)
+ mc.nomDuTypePyxb=leNomDuTypePyxb
if debug : print ('texteSimple\n', mc.texteSimple, '\n fin\n')
if debug : print ('texteComplexeVenantDesFils\n',mc.texteComplexeVenantDesFils, '\n fin\n')
if debug : print ('texteComplexe\n', mc.texteComplexe, '\n fin\n')
texteComplexeVenantDesFils += mc.texteComplexeVenantDesFils
texteSimple += mc.texteSimple
+
if debug : print ('______________________________')
if debug : print ('textecomplexeVenantDesFils : \n' ,texteComplexeVenantDesFils )
if debug : print ('______________________________')
blocsDejaDumpes=set()
#for nom in self.ordre_mc:
# mcFils = self.entites[nom]
- if debug : print ('creeTexteComplexeVenantDesFils', self.nom)
+ if debug : print ('___________________ creeTexteComplexeVenantDesFils', self.nom)
if self.nom == 'LeProc' : debug = True
for mcFils in self.mcXSD :
- #print (mcFils,mcFils.nom)
- if mcFils.nom == 'B1_B2' :debug=True
+ if debug : print (mcFils,mcFils.nom)
else : debug=False
if not (isinstance(mcFils, Accas.BLOC)) :
mcFils.dumpXsd(dansFactorisation)
if mcFils.aCreer : texteComplexeVenantDesFils += mcFils.texteComplexe
return texteComplexeVenantDesFils
- def dumpXsd(self, dansFactorisation=False, dansFactorisationDeFusion = False, multiple = False, first=True, debug=False):
+ def dumpXsd(self, dansFactorisation=False, dansFactorisationDeFusion = False, multiple = False, first=True, debug=False, avecEltAbstrait=True):
if PourTraduction : print (self.nom)
# le prepareDump est appele sur les fils
if not (self.dejaPrepareDump) : self.prepareDumpXSD()
if debug : print ('dumpXsd', self.nom, self.aCreer)
if self.aCreer or dansFactorisationDeFusion:
if not dansFactorisationDeFusion : self.texteComplexe = debutTypeCompo.format(self.nomDuTypePyxb)
- if isinstance(self,X_OPER) or isinstance(self,X_PROC) :
+ if (isinstance(self,X_OPER) or isinstance(self,X_PROC)) and avecEltAbstrait :
self.texteComplexe += debutTypeCompoEtape.format(self.code)
self.texteComplexe += debutTypeCompoSeq
texteComplexeVenantDesFils= self.creeTexteComplexeVenantDesFils(dansFactorisation)
self.texteComplexeVenantDesFils = texteComplexeVenantDesFils
# la fin de l oper est traitee dans le dumpXSD de X_OPER
if not isinstance(self,X_OPER ) : self.texteComplexe += finTypeCompoSeq
- if isinstance(self,X_PROC) : self.texteComplexe += finTypeCompoEtape
+ if isinstance(self,X_PROC) and avecEltAbstrait : self.texteComplexe += finTypeCompoEtape
if not isinstance(self,X_OPER ) and not dansFactorisationDeFusion: self.texteComplexe += finTypeCompo
else :
self.texteComplexe = ""
# ---------------------------------
class X_OPER (X_definitionComposee):
# ---------------------------------
- def dumpXsd(self, dansFactorisation=False, multiple = False, first=False):
- X_definitionComposee.dumpXsd(self,dansFactorisation)
+ def dumpXsd(self, dansFactorisation=False, multiple = False, first=False, avecEltAbstrait=True):
+ X_definitionComposee.dumpXsd(self,dansFactorisation,avecEltAbstrait=avecEltAbstrait)
self.texteComplexe += finTypeCompoSeq
self.texteComplexe += attributeNameName
self.texteComplexe += attributeTypeForASSD
self.texteComplexe += attributeTypeUtilisateurName.format(self.sd_prod.__name__)
- self.texteComplexe += finTypeCompoEtape
+ if avecEltAbstrait : self.texteComplexe += finTypeCompoEtape
self.texteComplexe += finTypeCompo
def dumpXsd(self, avecEltAbstrait, debug = True):
cata = CONTEXT.getCurrentCata()
if debug : print ('avecEltAbstrait -------------------', avecEltAbstrait)
-
if debug : print ('self.importedBy -------------------', self.importedBy)
if debug : print ('self.code -------------------', self.code)
if debug : print ('self.nomDuXsdPere -------------------', self.nomDuXsdPere)
self.nomDuTypePyxb = 'T_'+self.nomDuCodeDumpe
- self.dumpLesCommandes()
- if self.implement == self.code :
- self.texteCata += eltAbstraitCataPPal.format(self.code)
- if 0 : pass
- else : self.texteCata += eltCataPPal.format(self.code,self.code,self.code)
- else :
- self.texteCata += eltAbstraitCataFils.format(self.implement,self.nomDuXsdPere,self.nomDuXsdPere)
- if 0 : pass
- else : self.texteCata += eltCataFils.format(self.implement,self.nomDuXsdPere,self.nomDuXsdPere,self.nomDuXsdPere)
- self.texteInclusion += includeCata.format(self.nomDuXsdPere)
+ if avecEltAbstrait : self.dumpAvecEltAbstraitDesCommandes()
+ else : self.dumpSimpleDesCommandes()
+ if avecEltAbstrait :
+ if self.implement == self.code :
+ self.texteCata += eltAbstraitCataPPal.format(self.code)
+ self.texteCata += eltCataPPal.format(self.code,self.code,self.code)
+ else :
+ self.texteCata += eltAbstraitCataFils.format(self.implement,self.nomDuXsdPere,self.nomDuXsdPere)
+ self.texteCata += eltCataFils.format(self.implement,self.nomDuXsdPere,self.nomDuXsdPere,self.nomDuXsdPere)
+ self.texteInclusion += includeCata.format(self.nomDuXsdPere)
+
+ self.texteCata += eltCata.format(self.implement,self.implement,self.implement,self.implement,self.nomDuXsdPere)
+ if self.implement == self.code :
+ self.texteXSD = texteDebut.format(self.code,self.code,self.code,self.code,self.code,self.code)
+ elif self.nomDuXsdPere == self.code :
+ self.texteXSD = texteDebutNiveau2.format(self.code,self.implement,self.code,self.code,self.code, self.code,self.code,self.code,self.code,self.code)
+ else :
+ self.texteXSD = texteDebutNiveau3.format(self.code,self.implement,self.code,self.nomDuXsdPere,self.code,self.code,self.code, self.code,self.code,self.code,self.code,self.code)
- self.texteCata += eltCata.format(self.implement,self.implement,self.implement,self.implement,self.nomDuXsdPere)
- #if self.implement == self.code :
- # self.texteCata += debutTypeCata.format(self.nomDuCodeDumpe)
- #else :
- # self.texteCata += debutTypeCataExtension.format(self.nomDuCodeDumpe)
- # self.texteCata += debutExtension.format(self.code,self.nomDuCodeDumpe)
- # self.texteInclusion += includeCata.format(self.nomDuXsdPere)
-
-
-
- #for codeHeritant in self.importedBy:
- # self.texteCata += eltCodeSpecDsCata.format(codeHeritant)
- # self.texteTypeAbstrait += eltAbstrait.format(codeHeritant,codeHeritant,self.code,codeHeritant)
+ if self.texteInclusion != "" : self.texteXSD += self.texteInclusion
- #if self.implement != "" : self.texteCata = self.texteCata + finExtension + finTypeCompo
- #else : self.texteCata += finTypeCata
-
- #if self.implement != "" :
- # self.texteElt=implementeAbstrait.format(self.nomDuCodeDumpe,self.code,self.nomDuTypePyxb,self.code,self.nomDuCodeDumpe)
- #else :
- # self.texteElt = eltCata.format(self.nomDuCodeDumpe,self.code, self.nomDuTypePyxb)
-
- if self.implement == self.code :
- self.texteXSD = texteDebut.format(self.code,self.code,self.code,self.code,self.code,self.code)
- elif self.nomDuXsdPere == self.code :
- self.texteXSD = texteDebutNiveau2.format(self.code,self.implement,self.code,self.code,self.code, self.code,self.code,self.code,self.code,self.code)
else :
- self.texteXSD = texteDebutNiveau3.format(self.code,self.implement,self.code,self.nomDuXsdPere,self.code,self.code,self.code, self.code,self.code,self.code,self.code,self.code)
-
- if self.texteInclusion != "" : self.texteXSD += self.texteInclusion
+ self.texteXSD = texteDebut.format(self.code,self.code,self.code,self.code,self.code,self.code)
+
self.texteXSD += self.texteSimple
self.texteXSD += self.texteComplexe
#if self.texteTypeAbstrait != "" : self.texteXSD += self.texteTypeAbstrait
self.texteXSD += self.texteCata
- #self.texteXSD += self.texteElt
toutesLesKeys=set()
texteKeyRef = ""
#if not PourTraduction : print (self.texteXSD)
- import pprint
- #pprint.pprint (cata.dictTypesXSDJumeaux)
- #for k in cata.dictTypesXSDJumeaux:
- # print (k.nom, k.nomComplet())
- # print (cata.dictTypesXSDJumeaux[k][0].nom, cata.dictTypesXSDJumeaux[k][0].nomComplet())
-
- #pprint.pprint (cata.dictTypesXSD)
- #for k in cata.dictTypesXSD:
- # print (k)
- # print (cata.dictTypesXSD)
dico = {}
for k in list(cata.dictTypesXSD.keys()):
#pprint.pprint(dico)
# PN reflechir a ce *** de nom
#if dico != {} : self.texteXSD += texteAnnotation.format(self.nomDuCodeDumpe,str(dico))
+ print ('uuuuuuuuuuuuuuuuuuuuuu', dico)
if dico != {} : self.texteXSD += texteAnnotation.format(str(dico))
#import pprint
return self.texteXSD
- def dumpLesCommandes(self):
+ def dumpAvecEltAbstraitDesCommandes(self):
cata = CONTEXT.getCurrentCata()
fichierCataSourceExt=os.path.basename(cata.cata.__file__)
fichierCataSource, extension=os.path.splitext(fichierCataSourceExt)
if not(isinstance(c, Accas.OPER)) and not(isinstance(c, Accas.PROC)) : continue
c.nomDuCodeDumpe=self.nomDuCodeDumpe
c.code=self.implement
- c.dumpXsd()
+ c.dumpXsd(avecEltAbstrait=True)
self.texteSimple += c.texteSimple
self.texteComplexe += c.texteComplexe
elif c.fr != '' : c.texteElt = eltEtapeWithHelp.format(c.nom,self.implement,c.nomDuTypePyxb,self.implement,c.fr)
else : c.texteElt = eltEtape.format(c.nom,self.implement,c.nomDuTypePyxb,self.implement)
self.texteCata += c.texteElt
+
+ def dumpSimpleDesCommandes(self):
+ self.texteCata = eltCataSimple.format(self.code, self.code, self.code, self.code)
+ # on remplace les extensions par rien
+ for c in self.commandes :
+ c.nomDuCodeDumpe=self.nomDuCodeDumpe
+ c.code=self.implement
+ c.dumpXsd(avecEltAbstrait=False)
+ self.texteSimple += c.texteSimple
+ self.texteSimple += c.texteComplexe
+ if c.ang != '' : c.texteElt = eltEtapeSimpleWithHelp.format(c.nom,self.implement,c.nomDuTypePyxb,0,"unbounded",c.ang)
+ elif c.fr != '' : c.texteElt = eltEtapeSimpleWithHelp.format(c.nom,self.implement,c.nomDuTypePyxb,0,"unbounded",c.fr)
+ else : c.texteElt = eltEtapeSimple.format(c.nom,self.implement,c.nomDuTypePyxb,0,"unbounded")
+ self.texteCata += c.texteElt
+ self.texteCata += finEltCataSimple
+