def import_sequence_flow_to_graph(diagram_graph, sequence_flows, process_id, flow_element):
        """
        Adds a new edge to graph and a record to sequence_flows dictionary.
        Input parameter is object of class xml.dom.Element.
        Edges are identified by pair of sourceRef and targetRef attributes of BPMNFlow element. We also
        provide a dictionary, that maps sequenceFlow ID attribute with its sourceRef and targetRef.
        Method adds basic attributes of sequenceFlow element to edge. Those elements are:

        - id - added as edge attribute, we assume that this is a required value,
        - name - optional attribute, empty string by default.

        :param diagram_graph: NetworkX graph representing a BPMN process diagram,
        :param sequence_flows: dictionary (associative list) of sequence flows existing in diagram.
            Key attribute is sequenceFlow ID, value is a dictionary consisting three key-value pairs: "name" (sequence
            flow name), "sourceRef" (ID of node, that is a flow source) and "targetRef" (ID of node, that is a flow target),
        :param process_id: string object, representing an ID of process element,
        :param flow_element: object representing a BPMN XML 'sequenceFlow' element.
        """
        flow_id = flow_element.getAttribute(consts.Consts.id)
        name = flow_element.getAttribute(consts.Consts.name) if flow_element.hasAttribute(consts.Consts.name) else ""
        source_ref = flow_element.getAttribute(consts.Consts.source_ref)
        target_ref = flow_element.getAttribute(consts.Consts.target_ref)
        sequence_flows[flow_id] = {consts.Consts.name: name, consts.Consts.source_ref: source_ref,
                                   consts.Consts.target_ref: target_ref}
        diagram_graph.add_edge(source_ref, target_ref)
        diagram_graph[source_ref][target_ref][consts.Consts.id] = flow_id
        diagram_graph[source_ref][target_ref][consts.Consts.process] = process_id
        diagram_graph[source_ref][target_ref][consts.Consts.name] = name
        diagram_graph[source_ref][target_ref][consts.Consts.source_ref] = source_ref
        diagram_graph[source_ref][target_ref][consts.Consts.target_ref] = target_ref
        for element in utils.BpmnImportUtils.iterate_elements(flow_element):
            if element.nodeType != element.TEXT_NODE:
                tag_name = utils.BpmnImportUtils.remove_namespace_from_tag_name(element.tagName)
                if tag_name == consts.Consts.condition_expression:
                    condition_expression = element.firstChild.nodeValue
                    diagram_graph[source_ref][target_ref][consts.Consts.condition_expression] = {
                        consts.Consts.id: element.getAttribute(consts.Consts.id),
                        consts.Consts.condition_expression: condition_expression
                    }

        '''
        # Add incoming / outgoing nodes to corresponding elements. May be redundant action since this information is
        added when processing nodes, but listing incoming / outgoing nodes under node element is optional - this way
        we can make sure this info will be imported.
        '''
        if consts.Consts.outgoing_flow not in diagram_graph.node[source_ref]:
            diagram_graph.node[source_ref][consts.Consts.outgoing_flow] = []
        outgoing_list = diagram_graph.node[source_ref][consts.Consts.outgoing_flow]
        if flow_id not in outgoing_list:
            outgoing_list.append(flow_id)

        if consts.Consts.incoming_flow not in diagram_graph.node[target_ref]:
            diagram_graph.node[target_ref][consts.Consts.incoming_flow] = []
        incoming_list = diagram_graph.node[target_ref][consts.Consts.incoming_flow]
        if flow_id not in incoming_list:
            incoming_list.append(flow_id)
Adds a new edge to graph and a record to sequence_flows dictionary.
        Input parameter is object of class xml.dom.Element.
        Edges are identified by pair of sourceRef and targetRef attributes of BPMNFlow element. We also
        provide a dictionary, that maps sequenceFlow ID attribute with its sourceRef and targetRef.
        Method adds basic attributes of sequenceFlow element to edge. Those elements are:

        - id - added as edge attribute, we assume that this is a required value,
        - name - optional attribute, empty string by default.

        :param diagram_graph: NetworkX graph representing a BPMN process diagram,
        :param sequence_flows: dictionary (associative list) of sequence flows existing in diagram.
            Key attribute is sequenceFlow ID, value is a dictionary consisting three key-value pairs: "name" (sequence
            flow name), "sourceRef" (ID of node, that is a flow source) and "targetRef" (ID of node, that is a flow target),
        :param process_id: string object, representing an ID of process element,
        :param flow_element: object representing a BPMN XML 'sequenceFlow' element.