Ejemplo n.º 1
0
    def loadVocabulary(xmlRoot, namespace_project, namespace_common, version,
                       project):
        vocabulary = Vocabulary()

        if version == "0.1":
            # Messages
            for xmlMessage in xmlRoot.findall("{" + namespace_project +
                                              "}messages/{" +
                                              namespace_common + "}message"):
                message = AbstractMessageFactory.loadFromXML(
                    xmlMessage, namespace_common, version)
                if message is not None:
                    vocabulary.addMessage(message)
            # Symbols
            for xmlSymbol in xmlRoot.findall("{" + namespace_project +
                                             "}symbols/{" + namespace_project +
                                             "}symbol"):
                symbol = Symbol.loadSymbol(xmlSymbol, namespace_project,
                                           namespace_common, version, project,
                                           vocabulary)
                if symbol is not None:
                    vocabulary.addSymbol(symbol)
            # Sessions
            for xmlSession in xmlRoot.findall("{" + namespace_project +
                                              "}sessions/{" +
                                              namespace_common + "}session"):
                session = Session.loadFromXML(xmlSession, namespace_project,
                                              namespace_common, version,
                                              vocabulary)
                if session is not None:
                    vocabulary.addSession(session)
        return vocabulary
Ejemplo n.º 2
0
    def loadTrace(xmlRoot, namespace_workspace, namespace_common, version,
                  pathOfTraces):
        if version == "0.1":
            date = TypeConvertor.xsdDatetime2PythonDatetime(
                str(xmlRoot.get("date")))
            type = xmlRoot.get("type")
            description = xmlRoot.get("description", "")
            id = str(xmlRoot.get("id"))
            name = xmlRoot.get("name")

            importedTrace = ImportedTrace(id, date, type, description, name)
            tracesFile = os.path.join(pathOfTraces, "{0}.gz".format(id))
            if not os.path.isfile(tracesFile):
                logging.warn(
                    "The trace file {0} is referenced but doesn't exist.".
                    format(tracesFile))
            else:
                gzipFile = gzip.open(tracesFile, 'rb')
                xml_content = gzipFile.read()
                gzipFile.close()

                tree = etree.parse(StringIO(xml_content))
                xmlRoot = tree.getroot()

                # We retrieve the pool of messages
                xmlMessages = xmlRoot.find("{" + namespace_workspace +
                                           "}messages")
                if xmlMessages is not None:
                    for xmlMessage in xmlMessages.findall("{" +
                                                          namespace_common +
                                                          "}message"):
                        message = AbstractMessageFactory.loadFromXML(
                            xmlMessage, namespace_common, version)
                        if message is not None:
                            importedTrace.addMessage(message)

                # We retrieve the sessions
                if xmlRoot.find("{" + namespace_workspace +
                                "}sessions") is not None:
                    xmlSessions = xmlRoot.find("{" + namespace_workspace +
                                               "}sessions")
                    for xmlSession in xmlSessions.findall("{" +
                                                          namespace_common +
                                                          "}session"):
                        session = Session.loadFromXML(xmlSession,
                                                      namespace_workspace,
                                                      namespace_common,
                                                      version, importedTrace)
                        if session is not None:
                            importedTrace.addSession(session)
            return importedTrace
        return None
Ejemplo n.º 3
0
    def loadVocabulary(xmlRoot, namespace_project, namespace_common, version, project):
        vocabulary = Vocabulary()

        if version == "0.1":
            # Messages
            for xmlMessage in xmlRoot.findall("{" + namespace_project + "}messages/{" + namespace_common + "}message"):
                message = AbstractMessageFactory.loadFromXML(xmlMessage, namespace_common, version)
                if message is not None:
                    vocabulary.addMessage(message)
            # Symbols
            for xmlSymbol in xmlRoot.findall("{" + namespace_project + "}symbols/{" + namespace_project + "}symbol"):
                symbol = Symbol.loadSymbol(xmlSymbol, namespace_project, namespace_common, version, project, vocabulary)
                if symbol is not None:
                    vocabulary.addSymbol(symbol)
            # Sessions
            for xmlSession in xmlRoot.findall("{" + namespace_project + "}sessions/{" + namespace_common + "}session"):
                session = Session.loadFromXML(xmlSession, namespace_project, namespace_common, version, vocabulary)
                if session is not None:
                    vocabulary.addSession(session)
        return vocabulary
Ejemplo n.º 4
0
    def loadTrace(xmlRoot, namespace_workspace, namespace_common, version, pathOfTraces):

        if version == "0.1":
            date = TypeConvertor.xsdDatetime2PythonDatetime(str(xmlRoot.get("date")))
            type = xmlRoot.get("type")
            description = xmlRoot.get("description", "")
            id = xmlRoot.get("id")
            name = xmlRoot.get("name")

            importedTrace = ImportedTrace(id, date, type, description, name)
            tracesFile = os.path.join(pathOfTraces, str(id) + ".gz")
            if not os.path.isfile(tracesFile):
                logging.warn("The trace file " + str(tracesFile) + " is referenced but doesn't exist.")
            else:
                gzipFile = gzip.open(tracesFile, 'rb')
                xml_content = gzipFile.read()
                gzipFile.close()

                tree = etree.parse(StringIO(xml_content))
                xmlRoot = tree.getroot()

                # We retrieve the pool of messages
                if xmlRoot.find("{" + namespace_workspace + "}messages") != None:
                    xmlMessages = xmlRoot.find("{" + namespace_workspace + "}messages")
                    for xmlMessage in xmlMessages.findall("{" + namespace_common + "}message"):
                        message = AbstractMessageFactory.loadFromXML(xmlMessage, namespace_common, version)
                        if message != None:
                            importedTrace.addMessage(message)

                # We retrieve the sessions
                if xmlRoot.find("{" + namespace_workspace + "}sessions") != None:
                    xmlSessions = xmlRoot.find("{" + namespace_workspace + "}sessions")
                    for xmlSession in xmlSessions.findall("{" + namespace_common + "}session"):
                        session = Session.loadFromXML(xmlSession, namespace_workspace, namespace_common, version, importedTrace)
                        if session != None:
                            importedTrace.addSession(session)
            return importedTrace
        return None