[Entanglement] Add entanglement bundle
The entanglement bundle defines move, copy, and link actions, and exposes them as context menu actions. * The Move action moves an object from it's current parent to a new parent object. * The Copy action deep-copies an object to a new parent object. * The Link action links an object to a new parent object. These actions are implemented by three new services: moveService, copyService, and linkService. Mocks are provided for each service for easy testing of components that depend on them. Additionally, this bundle provides a DomainObjectFactory that simplifies the construction of mockDomainObjects for tests. These actions are exposed to the user as context menu options.
This commit is contained in:
24
platform/entanglement/README.md
Normal file
24
platform/entanglement/README.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# Entanglement
|
||||
|
||||
Entanglement is the process of moving, copying, and linking domain objects
|
||||
in such a way that their relationships are impossible to discern.
|
||||
|
||||
This bundle provides move, copy, and link functionality. Acheiving a state of
|
||||
entanglement is left up to the end user.
|
||||
|
||||
|
||||
## Services implement logic
|
||||
|
||||
Each method (move, copy, link) is implemented as a service, and each service
|
||||
provides two functions: `validate` and `perform`.
|
||||
|
||||
`validate(object, parentCandidate)` returns true if the `object` can be
|
||||
move/copy/linked into the `parentCandidate`'s composition.
|
||||
|
||||
`perform(object, parentObject)` move/copy/links the `object` into the
|
||||
`parentObject`'s composition.
|
||||
|
||||
## Actions implement user interactions
|
||||
|
||||
Actions are used to expose move/copy/link to the user. They prompt for input
|
||||
where necessary, and complete the actions.
|
||||
Reference in New Issue
Block a user