Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cross references (like Links & ParticipatingElements) #2

Open
gregsn opened this issue Jun 8, 2020 · 1 comment
Open

Cross references (like Links & ParticipatingElements) #2

gregsn opened this issue Jun 8, 2020 · 1 comment

Comments

@gregsn
Copy link
Member

gregsn commented Jun 8, 2020

The tool in its current state treats the 3 documents as trees. However in fact the VL files describe object graphs.

The model of a VL document gets serialized as a combination of a tree + cross references:

  • Links refer to several other elements via Attribute Ids = "id0, .. idn"
  • Patches refer to several other elements via Attribute ParticipatingElements = "id0, .. idn"
  • Pads refer to a slot via Attribute SlotId = "id"
  • Fragments of a ProcessDefinition refer to the operation definition via Patch = "id"

This is not reflected by the tool.

It is probably a rather hard task to solve this in a general way that always works. So let's break up the problem into smaller issues and cross-reference (no pun intended) them to this overview issue.

@gregsn
Copy link
Member Author

gregsn commented Jun 8, 2020

When no merge tool is involved, when only patching, the following assumption should hold: There are no invalid cross references. The graph editor edits the model in a way that when an id gets removed, the cross referencing elements get adjusted or removed as well by the same refactoring command.

When the tool comes into play there may be several conflicting changes. Let's collect here what can happen.

ReferToDeleted

  • An element id existing in the base branch gets
    • removed on one branch
    • referred to on the other branch

Resolving ideas:

  • remove the cross reference
    or
  • don't delete the element id

As long as the tool favors simplifications we go for remove the cross reference.

  • remove the whole Cross Reference
    • whole link
      • add error message
    • whole pad
      • add error message
  • remove parts within the Cross Reference
    • participating element
      • add error message
    • control point somewhere within a link (when not first or last within the list) (lower priority) (wait for it) (might never happen)
      • add message

In certain situations we even could come up with more sophisticated resolving ideas:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant