How to create a data model for a plugin or a project
This howto is split into two parts : general considerations for creating a plugin / project data model and practical issues for implementing it.
Before creating a data model you must consider carefully whether to create a plugin-specific or a project-wide data model:
- A plugin-specific data model is useful for execution plugins that are used by control plugins in different projects. By avoiding using a particular project-wide data model the plugin is shielded for changes in one project that could otherwise influence another project via the use of the plugin. See http://www.edna-site.org/svn/trunk/edna/mxPluginExec/plugins and http://www.edna-site.org/svn/trunk/edna/execPlugins/plugins for examples of plugins with specific data models.
- A project-wide data model is useful for control plugins and/or execution plugins that are not supposed to be used outside a particular project. By concentrating all definitions in a project-wide data model the pipelining of plugins becomes much more easy to implement. See http://www.edna-site.org/svn/trunk/edna/mxv1/plugins and http://www.edna-site.org/svn/trunk/edna/diffractionCTv1/plugins for examples of plugins with project-wide data models.
There are today two possibilities for creating an EDNA plugin data model: