Ejemplo n.º 1
0
 def __init__(self):
     super().__init__("Identity", "identity", urlparse("http://www.xes-standard.org/identity.xesext"))
     factory = XFactoryRegistry().current_default()
     self.ATTR_ID = factory.create_attribute_id("identity:id", XIDFactory.create_id(), self)
     self.get_log_attributes().add(self.ATTR_ID.clone())
     self.get_trace_attributes().add(self.ATTR_ID.clone())
     self.get_event_attributes().add(self.ATTR_ID.clone())
     self.get_meta_attributes().add(self.ATTR_ID.clone())
     XGlobalAttributeNameMap().register_mapping("EN", "identity:id", "Identity")
     XGlobalAttributeNameMap().register_mapping("DE", "identity:id", "Identität")
     XGlobalAttributeNameMap().register_mapping("FR", "identity:id", "Identité")
     XGlobalAttributeNameMap().register_mapping("ES", "identity:id", "Identidad")
     XGlobalAttributeNameMap().register_mapping("PT", "identity:id", "Identidade")
Ejemplo n.º 2
0
    def __init__(self):
        super().__init__("Micro", "micro",
                         urlparse("http://www.xes-standard.org/micro.xesext"))
        factory = XFactoryRegistry().current_default()

        self.ATTR_LEVEL = factory.create_attribute_discrete(
            "micro:level", -1, self)
        self.ATTR_PID = factory.create_attribute_id("micro:parentId",
                                                    XIDFactory.create_id(),
                                                    self)
        self.ATTR_LENGTH = factory.create_attribute_discrete(
            "micro:length", -1, self)

        self.get_event_attributes().add(self.ATTR_LEVEL.clone())
        self.get_event_attributes().add(self.ATTR_PID.clone())
        self.get_event_attributes().add(self.ATTR_LENGTH.clone())

        XGlobalAttributeNameMap().register_mapping(
            "EN", "micro:level", "Micro level of this event")
        XGlobalAttributeNameMap().register_mapping(
            "EN", "micro:parentId", "Id of parent event of this event")
        XGlobalAttributeNameMap().register_mapping(
            "EN", "micro:length", "Number of child events for this event")
Ejemplo n.º 3
0
    class XExtensionHandler(ContentHandler):
        """SAX handler class for extension definition files.

        """
        def __init__(self):
            super().__init__()
            self.__extension = None
            self.__currentAttribute = None
            self.__xAttributes = None
            self.__factory = XFactoryRegistry().current_default()
            self.reset()

        def reset(self):
            """Resets the handler to initial state.

            """
            self.__extension = None
            self.__currentAttribute = None
            self.__xAttributes = None
            self.__factory = XFactoryRegistry().current_default()

        def get_extension(self):
            """Retrieves the parsed extension after parsing.

            :return: The parsed extension.
            :rtype: XExtension
            """
            return self.__extension

        def startElement(self, name, attributes):
            """ Overrides startElement in class ContentHandler

            :param name:  Contains the raw XML 1.0 name of the element type
            :type name: str
            :param attributes: An instance of the Attributes class containing
             the attributes of the element
            :type attributes: xml.sax.xmlreader.AttributesImpl
            """
            tag_name = name

            if tag_name.lower() == "xesextension":
                mapping = attributes.getValue("name")
                name = attributes.getValue("prefix")
                x_uri = parse.urlparse(attributes.getValue("uri"))
                try:
                    request.urlopen(attributes.getValue("uri"))
                except error.URLError:
                    return

                self.__extension = XExtension(mapping, name, x_uri)

            elif tag_name.lower() == "log":
                self.__xAttributes = self.__extension.get_log_attributes()
            elif tag_name.lower() == "trace":
                self.__xAttributes = self.__extension.get_trace_attributes()
            elif tag_name.lower() == "event":
                self.__xAttributes = self.__extension.get_event_attributes()
            elif tag_name.lower() == "meta":
                self.__xAttributes = self.__extension.get_meta_attributes()

            elif tag_name.lower() == "string":
                self.__xAttributes = self.__extension.get_log_attributes()
                mapping = self.__extension.get_prefix(
                ) + ':' + attributes.getValue("key")
                self.__currentAttribute = self.__factory.create_attribute_literal(
                    mapping, "DEFAULT", self.__extension)
                self.__xAttributes.add(self.__currentAttribute)

            elif tag_name.lower() == "date":
                self.__xAttributes = self.__extension.get_log_attributes()
                mapping = self.__extension.get_prefix(
                ) + ':' + attributes.getValue("key")
                self.__currentAttribute = self.__factory.create_attribute_timestamp(
                    mapping, 0, self.__extension)
                self.__xAttributes.add(self.__currentAttribute)

            elif tag_name.lower() == "int":
                self.__xAttributes = self.__extension.get_log_attributes()
                mapping = self.__extension.get_prefix(
                ) + ':' + attributes.getValue("key")
                self.__currentAttribute = self.__factory.create_attribute_discrete(
                    mapping, 0, self.__extension)
                self.__xAttributes.add(self.__currentAttribute)

            elif tag_name.lower() == "float":
                self.__xAttributes = self.__extension.get_log_attributes()
                mapping = self.__extension.get_prefix(
                ) + ':' + attributes.getValue("key")
                self.__currentAttribute = self.__factory.create_attribute_continuous(
                    mapping, 0.0, self.__extension)
                self.__xAttributes.add(self.__currentAttribute)

            elif tag_name.lower() == "boolean":
                self.__xAttributes = self.__extension.get_log_attributes()
                mapping = self.__extension.get_prefix(
                ) + ':' + attributes.getValue("key")
                self.__currentAttribute = self.__factory.create_attribute_boolean(
                    mapping, False, self.__extension)
                self.__xAttributes.add(self.__currentAttribute)

            elif tag_name.lower() == "id":
                self.__xAttributes = self.__extension.get_log_attributes()
                mapping = self.__extension.get_prefix(
                ) + ':' + attributes.getValue("key")
                self.__currentAttribute = self.__factory.create_attribute_id(
                    mapping, XIDFactory.create_id(), self.__extension)
                self.__xAttributes.add(self.__currentAttribute)

            elif self.__currentAttribute is not None and tag_name.lower(
            ) == "alias":
                mapping = attributes.getValue("mapping")
                name = attributes.getValue("name")
                XGlobalAttributeNameMap().register_mapping(
                    mapping, self.__currentAttribute.get_key(), name)

        def endElement(self, local_name):
            """ Overrides endElement in class ContentHandler

            :param local_name: The name of the element type, just as with the
              startElement event
            :type local_name: str
            """
            tag_name = local_name

            if tag_name.lower() in [
                    "string", "date", "int", "float", "boolean", "id"
            ]:
                self.__currentAttribute = None