Open leodido opened 9 years ago
Pagination is similar to Find: it has within() and with(), but a PaginableCriteria
must be enforced instead of the ReadableCriteria
. Also Delete has within() and with(), but DeletableCriteria
must be enforced.
Invocation is different: within() cannot be defined (it could work with multiple models) and multiple with() could be required. Furthermore the with() behaviour of Invocation is different: a closure can depends on any kind of interface, not CriteriaInterface
only
Following from #35 and #36 we can now describe the following general operations.
General operations
invocation operations
A flexible and general abstraction representing every possible set of operations defined as the composition (i.e. with) of previous set of operations with the current latest operation (i.e., this). Note that each operation can be itself an invokation operation (so a set of operations) or an already existing datum or also the empty set.
find operations
An abstraction representing any read operation
save operations
An abstraction representing any write operation
delete operations
An abstraction representing any removal operation
pagination operations
An abstraction representing any pagination operation
Notes
Operations find, save, delete, and pagination are all representable with invocation operations.
Naming
I'm not sure if would be better to call invokation as composable operation.
What do you think about? cc @leogr.
Matrix
Notes
Terms will have different/restricted meaning and behaviour depending of the operation type their are executed on.