ModelEnhancementRequirements
This topic is further information related to the feature of improving ability for a form to reused model content defined elsewhere.
Encapsulation
- External whole model
- Reuse a model in multiple forms: Attach different UIs to the same whole model
- Separation of concerns: Language-specific models with binds IDs for UI dereferencing
Narrowing-Only Inheritance / Specialization
- Include a base model
- Add additional non-contradictory model content (e.g. non-overriding binds)
- Specialize by additional binds to restrict access, add access, more bind sites for access control
- Specialize with additional instances, actions, submissions to transform back-end transactional data format into format appropriate for UI binding
- In the limit, the UI could be looked at as another reusable component, but for simplicity we will keep that as a separate issue.
Fragment Inclusion
- Stepping through a process with multiple pages, filling in parts
- Including external content once into a model
- E.g. include a main model plus add some page-specific constraints
- Could be viewed as specialization, but then would be unable to compose a form consisting of multiple bundles of such constraints
Adaptations / Composition
- Multiple reusable artifacts that characterize each web service
- In a main form, want to pull in these artifacts and talk to them
- Web Services
- Write instances and submission for a web service
- Pull that into larger model
- Copy data to request payload, invoke, copy data from response payload
Fragment Reusability
- multiple times in same page
- contextualize fragment content (e.g. starting context node)
- ID space challenge