2015-06-11 18:58:53 +00:00
|
|
|
# Entanglement
|
|
|
|
|
|
|
|
Entanglement is the process of moving, copying, and linking domain objects
|
|
|
|
in such a way that their relationships are impossible to discern.
|
|
|
|
|
2016-09-03 13:16:54 +00:00
|
|
|
This bundle provides move, copy, and link functionality. Achieving a state of
|
2015-06-11 18:58:53 +00:00
|
|
|
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.
|