Determine the nature of the provider. Will this provider be a building block provider or will this be a content provider? The content providers are special purpose providers and the building block providers are general purpose providers. For example, the bookmark channel is special purpose, where XMLProvider is general purpose. That is, the XMLProvider can be used, in general, to connect to an XML source and translate it via XSLT to some markup language.
Determine if the content made available via this provider will be:
Preset for the user by the administrator thus making it unmodifiable by the end-user. This will determine the logistics of the isEditable() method.
Preconfigured for the user by the administrator, but editable by the end-user (determines the logistics of the getEdit() method). If editable, determine:
What will and what will not be editable. That is, determine the parameters that will be configurable and those that will not be editable.
The type of edit form to present - EDIT_SUBSET or EDIT_COMPLETE. The advantage of using EDIT_SUBSET is that the EditContainer provides a common look and feel for all providers that have EDIT_SUBSET edit type. Using EDIT_COMPLETE edit type provides more control over the overall look and feel for the edit page.
This will determine the logistics of the getEditType() and the processEdit() methods.
Determine the theme requirements for the content made available via this provider. A theme is a collection of visual elements, such as background color, font face, and so on, to be used when displaying the provider’s content. The themes are stored as global properties in the organization level’s display profile. Providers can use these properties in their templates or JSPs to achieve a global look and feel of the presentation. For use with JSP, theme properties can be accessed from a series of tag libraries. Non-JSP channels can access theme properties via the Theme class. See the Javadocs for more detail.