Example #1
0
class CrossRefXMLEncoder:
    def __init__(self):
        self.crossRef = CrossReference()
        self.root = Element("CrossReference", version="1.0")
    def __init__(self, crossRef):
        self.crossRef = crossRef
        self.root = Element("CrossReference", version="1.0")
    def getCrossReference(self):
        return self.crossRef
    def outputRoutineVariables(self, parent, variables, tag):
        variablesElement = SubElement(parent, tag)
        for var in variables:
            varElement = SubElement(variablesElement, "Var",
                                  name=var.getName(),
                                  EK=str(var.getNotKilledExp()),
                                  N=str(var.getNewed()),
                                  C=str(var.getChanged()),
                                  K=str(var.getKilled()))
    def outputRoutineCalledRoutines(self, parent, calledRoutines):
        calledRoutinesElement = SubElement(parent, "CalledRoutines")
        for callInfo in calledRoutines:
            varElement = SubElement(calledRoutinesElement, "Routine",
                                  name=callInfo.getCalledRoutine().getName())
    def outputRoutinesAsXML(self, parent):
        allRoutineElement = SubElement(parent, "Routines")
        allRoutines = self.crossRef.getAllRoutines()
        for routine in allRoutines.values():
            packageName = ""
            package = routine.getPackage()
            if package:
                packageName = package.getName()
            routineElement = SubElement(allRoutineElement, "Routine",
                                        name=routine.getName(),
                                        package=packageName)
            self.outputRoutineVariables(routineElement,
                                        routine.getLocalVariables(),
                                        "LocalVariables")
            self.outputRoutineVariables(routineElement,
                                        routine.getLocalVariables(),
                                        "GlobalVariables")
            self.outputRoutineVariables(routineElement,
                                        routine.getLocalVariables(),
                                        "NakedGlobals")
            self.outputRoutineVariables(routineElement,
                                        routine.getLocalVariables(),
                                        "MarkedItems")
            self.outputRoutineCalledRoutines(routineElement,
                                             routine.getCalledRoutines())
    def outputOrphanRoutinesAsXML(self, parent):
        routinesElement = SubElement(parent, "OrphanRoutines")
        for routineName in self.crossRef.getOrphanRoutines():
            routineElement = SubElement(routinesElement, "Routine", name=routineName)
    def outputPackagesAsXML(self, parent):
        allPackageElement = SubElement(parent, "Packages")
        allPackages = self.crossRef.getAllPackages()
        for packageName in allPackages.iterkeys():
            packageElement = SubElement(allPackageElement, "Package",
                                        name=packageName,
                                        total="%d" % len(allPackages[packageName].getAllRoutines()))
    def outputRoutinesAsPlainLog(self, outputFile):
        outputFile.write("Total Routines, %s" % len(allRoutines))
    def outputPackagesAsPlainLog(self, outputFile):
        allPackages = self.crossRef.getAllPackages()
        outputFile.write("Total Packages, %d" % len(allPackages))
        for packageName, package in allPackages.iteritems():
            outputFile.write("Package,%s, Total,%d" % (packageName, len(package.getAllRoutines())))
    def outputAsXML(self, outputFile):
        self.outputPackagesAsXML(self.root)
        self.outputRoutinesAsXML(self.root)
        self.outputOrphanRoutinesAsXML(self.root)
        fileHandle = open(outputFile, 'w')
        ElementTree(self.root).write(fileHandle, "utf-8")
    def outputAsPlainLog(self, outputFile):
        fileHandle = open(outputFile, 'w')
        self.outputPackagesAsPlainLog(fileHandle)
        self.outputRoutinesAsPlainLog(fileHandle)
        self.outputOrphanRoutinesAsPlainLog(fileHandle)
    def loadFromXML(self, inputFile):
        pass
Example #2
0
class CrossRefXMLEncoder:
    def __init__(self):
        self.crossRef = CrossReference()
        self.root = Element("CrossReference", version="1.0")

    def __init__(self, crossRef):
        self.crossRef = crossRef
        self.root = Element("CrossReference", version="1.0")

    def getCrossReference(self):
        return self.crossRef

    def outputRoutineVariables(self, parent, variables, tag):
        variablesElement = SubElement(parent, tag)
        for var in variables:
            varElement = SubElement(variablesElement,
                                    "Var",
                                    name=var.getName(),
                                    EK=str(var.getNotKilledExp()),
                                    N=str(var.getNewed()),
                                    C=str(var.getChanged()),
                                    K=str(var.getKilled()))

    def outputRoutineCalledRoutines(self, parent, calledRoutines):
        calledRoutinesElement = SubElement(parent, "CalledRoutines")
        for callInfo in calledRoutines:
            varElement = SubElement(calledRoutinesElement,
                                    "Routine",
                                    name=callInfo.getCalledRoutine().getName())

    def outputRoutinesAsXML(self, parent):
        allRoutineElement = SubElement(parent, "Routines")
        allRoutines = self.crossRef.getAllRoutines()
        for routine in allRoutines.values():
            packageName = ""
            package = routine.getPackage()
            if package:
                packageName = package.getName()
            routineElement = SubElement(allRoutineElement,
                                        "Routine",
                                        name=routine.getName(),
                                        package=packageName)
            self.outputRoutineVariables(routineElement,
                                        routine.getLocalVariables(),
                                        "LocalVariables")
            self.outputRoutineVariables(routineElement,
                                        routine.getLocalVariables(),
                                        "GlobalVariables")
            self.outputRoutineVariables(routineElement,
                                        routine.getLocalVariables(),
                                        "NakedGlobals")
            self.outputRoutineVariables(routineElement,
                                        routine.getLocalVariables(),
                                        "MarkedItems")
            self.outputRoutineCalledRoutines(routineElement,
                                             routine.getCalledRoutines())

    def outputOrphanRoutinesAsXML(self, parent):
        routinesElement = SubElement(parent, "OrphanRoutines")
        for routineName in self.crossRef.getOrphanRoutines():
            routineElement = SubElement(routinesElement,
                                        "Routine",
                                        name=routineName)

    def outputPackagesAsXML(self, parent):
        allPackageElement = SubElement(parent, "Packages")
        allPackages = self.crossRef.getAllPackages()
        for packageName in allPackages.iterkeys():
            packageElement = SubElement(
                allPackageElement,
                "Package",
                name=packageName,
                total="%d" % len(allPackages[packageName].getAllRoutines()))

    def outputRoutinesAsPlainLog(self, outputFile):
        outputFile.write("Total Routines, %s" % len(allRoutines))

    def outputPackagesAsPlainLog(self, outputFile):
        allPackages = self.crossRef.getAllPackages()
        outputFile.write("Total Packages, %d" % len(allPackages))
        for packageName, package in allPackages.iteritems():
            outputFile.write("Package,%s, Total,%d" %
                             (packageName, len(package.getAllRoutines())))

    def outputAsXML(self, outputFile):
        self.outputPackagesAsXML(self.root)
        self.outputRoutinesAsXML(self.root)
        self.outputOrphanRoutinesAsXML(self.root)
        fileHandle = open(outputFile, 'w')
        ElementTree(self.root).write(fileHandle, "utf-8")

    def outputAsPlainLog(self, outputFile):
        fileHandle = open(outputFile, 'w')
        self.outputPackagesAsPlainLog(fileHandle)
        self.outputRoutinesAsPlainLog(fileHandle)
        self.outputOrphanRoutinesAsPlainLog(fileHandle)

    def loadFromXML(self, inputFile):
        pass