''' Created on September , 2012 @author: ''' from xml.etree.ElementTree import Element, SubElement, ElementTree from xmlprint import prettify from xml.etree import ElementTree as ET import sys class Project(): id = None name = None description = None readBranchObjList = None procBranchObjList = None def __init__(self): # self.id = id # self.name = name # self.description = description self.readBranchObjList = [] self.procBranchObjList = [] def setParms(self, id, name, description): self.id = id self.name = name self.description = description def addReadBranch(self,id, dpath, dataformat, opMode,readMode, startDate='', endDate='', startTime='', endTime=''): #id = len(self.readBranchObjList) + 1 readBranchObj = ReadBranch(id, dpath, dataformat, opMode , readMode, startDate, endDate, startTime, endTime) self.readBranchObjList.append(readBranchObj) return readBranchObj def addProcBranch(self, id,name): # id = len(self.procBranchObjList) + 1 procBranchObj = ProcBranch(id, name) self.procBranchObjList.append(procBranchObj) return procBranchObj def makeXml(self): projectElement = Element('Project') projectElement.set('id', str(self.id)) projectElement.set('name', self.name) #projectElement.set('description', self.description) se = SubElement(projectElement, 'description',description=self.description)#ESTO ES LO ULTIMO QUE SE TRABAJO #se.text = self.description #ULTIMA MODIFICACION PARA SACAR UN SUB ELEMENT for readBranchObj in self.readBranchObjList: readBranchObj.makeXml(projectElement) for branchObj in self.procBranchObjList: branchObj.makeXml(projectElement) self.projectElement = projectElement def writeXml(self, filename): self.makeXml() ElementTree(self.projectElement).write(filename, method='xml') #print prettify(self.projectElement) class ReadBranch(): id = None dpath = None dataformat = None opMode =None readMode = None startDate = None endDate = None startTime = None endTime = None def __init__(self, id, dpath, dataformat,opMode, readMode, startDate, endDate, startTime, endTime): self.id = id self.dpath = dpath self.dataformat = dataformat self.opMode = opMode self.readMode = readMode self.startDate = startDate self.endDate = endDate self.startTime = startTime self.endTime = endTime def makeXml(self, projectElement): readBranchElement = SubElement(projectElement, 'readBranch') readBranchElement.set('id', str(self.id)) ########################################################################## se = SubElement(readBranchElement, 'parameter', name='dpath' , value=self.dpath) se = SubElement(readBranchElement, 'parameter', name='dataformat', value=self.dataformat) se = SubElement(readBranchElement, 'parameter', name='opMode' , value=self.opMode) se = SubElement(readBranchElement, 'parameter', name='startDate' , value=self.startDate) se = SubElement(readBranchElement, 'parameter', name='endDate' , value=self.endDate) se = SubElement(readBranchElement, 'parameter', name='startTime' , value=self.startTime) se = SubElement(readBranchElement, 'parameter', name='endTime' , value=self.endTime) se = SubElement(readBranchElement, 'parameter', name='readMode' , value=str(self.readMode)) class ProcBranch(): id = None name = None upObjList = None upsubObjList=None def __init__(self, id, name): self.id = id self.name = name self.upObjList = [] self.upsubObjList = [] def addUP(self,id, name, type): #id = len(self.upObjList) + 1 upObj = UP(id, name, type) self.upObjList.append(upObj) return upObj def addUPSUB(self,id, name, type): # id = len(self.upsubObjList) + 1 upsubObj = UPSUB(id, name, type) self.upsubObjList.append(upsubObj) return upsubObj def makeXml(self, projectElement): procBranchElement = SubElement(projectElement, 'procBranch') procBranchElement.set('id', str(self.id)) procBranchElement.set('name', self.name) for upObj in self.upObjList: upObj.makeXml(procBranchElement) for upsubObj in self.upsubObjList: upsubObj.makeXml(procBranchElement) class UP(): id = None name = None type = None upsubObjList=None opObjList = None def __init__(self, id, name, type): self.id = id self.name = name self.type = type self.upsubObjList=[] self.up2subObjList=[] self.opObjList = [] def addOperation(self,id, name, priority): #id = len(self.opObjList) + 1 opObj = Operation(id, name, priority) self.opObjList.append(opObj) return opObj def addUPSUB(self,id, name, type): # id = len(self.upsubObjList) + 1 upsubObj = UPSUB(id, name, type) self.upsubObjList.append(upsubObj) return upsubObj def addUP2SUB(self,id, name, type): # id = len(self.upsubObjList) + 1 up2subObj = UP2SUB(id, name, type) self.up2subObjList.append(up2subObj) return up2subObj def makeXml(self, procBranchElement): upElement = SubElement(procBranchElement, 'UP') upElement.set('id', str(self.id)) upElement.set('name', self.name) upElement.set('type', self.type) for opObj in self.opObjList: opObj.makeXml(upElement) for upsubObj in self.upsubObjList: upsubObj.makeXml(upElement) class UPSUB(): id = None name = None type = None opObjList = None up2subObjList=None def __init__(self, id, name, type): self.id = id self.name = name self.type = type self.up2subObjList = [] self.opObjList = [] def addOperation(self, name, priority): id = len(self.opObjList) + 1 opObj = Operation(id, name, priority) self.opObjList.append(opObj) return opObj def addUP2SUB(self,id, name, type): # # id = len(self.opObjList) + 1 up2subObj = UP2SUB(id, name, type) self.up2subObjList.append(up2subObj) return up2subObj def makeXml(self, upElement): upsubElement = SubElement(upElement, 'UPSUB') upsubElement.set('id', str(self.id)) upsubElement.set('name', self.name) upsubElement.set('type', self.type) for opObj in self.opObjList: opObj.makeXml(upsubElement) for up2subObj in self.up2subObjList: up2subObj.makeXml(upsubElement) class UP2SUB(): id = None name = None type = None opObjList = None def __init__(self, id, name, type): self.id = id self.name = name self.type = type self.opObjList = [] def addOperation(self, name, priority): id = len(self.opObjList) + 1 opObj = Operation(id, name, priority) self.opObjList.append(opObj) return opObj def makeXml(self,upsubElement): up2subElement = SubElement(upsubElement, 'UPD2SUB') up2subElement.set('id', str(self.id)) up2subElement.set('name', self.name) up2subElement.set('type', self.type) for opObj in self.opObjList: opObj.makeXml(up2subElement) class Operation(): id = 0 name = None priority = None parmObjList = [] def __init__(self, id, name, priority): self.id = id self.name = name self.priority = priority self.parmObjList = [] def addParameter(self, name, value): id = len(self.parmObjList) + 1 parmObj = Parameter(id, name, value) self.parmObjList.append(parmObj) return parmObj def makeXml(self, upElement): opElement = SubElement(upElement, 'Operation') opElement.set('id', str(self.id)) opElement.set('name', self.name) opElement.set('priority', str(self.priority)) for parmObj in self.parmObjList: parmObj.makeXml(opElement) class Parameter(): id = None name = None value = None def __init__(self, id, name, value): self.id = id self.name = name self.value = value def makeXml(self, opElement): parmElement = SubElement(opElement, 'Parameter') parmElement.set('name', self.name) parmElement.set('value', self.value)