Skip to content
This repository has been archived by the owner on Mar 16, 2023. It is now read-only.

Implement Basic Link & Node functionality #1

Open
17 of 24 tasks
arobrien opened this issue Dec 17, 2016 · 0 comments
Open
17 of 24 tasks

Implement Basic Link & Node functionality #1

arobrien opened this issue Dec 17, 2016 · 0 comments
Assignees

Comments

@arobrien
Copy link
Collaborator

arobrien commented Dec 17, 2016

The goal is to get a basic working prototype, with the following easy to implement features from the standard.

Node behaviour.

  • When a node has no attached links, delete it.
    • After moving a link
    • After deleting a link
  • When moving a node to empty space, move attached link ends to the new location.
  • Don't allow deletion of a node attached to a link.
  • Don't allow creation of a node not attached to a link end.
  • When moving a node on top of another node, move the attached link ends to the new location, then merge the nodes. (keep moved node, discard bottom node)
    • Detect coincidence
    • Transfer links
    • Delete old node (should happen automatically due to above)
  • When editing the node_id of a node, update attached links' a/b_node properties.
    • Uniqueness and non-null of node_id enforced by being integer primary key
  • Enforce valid mandatory fields

Link behaviour

  • When placing a link extremity in empty space, create a new node.
    • After moving a link
    • After creating a new link
  • When moving a link end to a new node, update the a/b_node property.
    • After moving a link
    • After creating a new link
    • NO After deleting a node and creating a new one in-place - this is prevented by cannot delete with attached.
  • Don't allow update of a/b_node property to non-attached node.
  • Don't allow a new or moved link to duplicate an existing link, topologically.
    • When moving a link
    • When creating a new link
  • Enforce valid mandatory fields.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant