Controller SPI
You can use the Controller SPI for portal administration. It allows you to modify portal resources. It enhances the read-only portal Model SPI by adding writable aspects.
The interfaces of the programming model for portal resources that are published under the topic Model SPI overview offered only read-only methods. The Controller SPI extends them by adding a set of new interfaces. These interfaces are derived from the read-only portal models and interfaces and map to them, but they also extend them with methods for modifying the resources that they represent. This way the Controller SPI allows you to modify portal resources to a certain extent.
Controller SPI overview
Classes from the read-only model . . . | . . . are reflected in the Controller SPI by the following classes |
---|---|
ContentNode
|
ModifiableContentNode
|
- Controller instances work as workspaces where you make your modifications. You can try your modifications and assess them in a preview mode. When your changes meet your requirements, you apply them to the portal by a commit step.
- You can make and apply your changes to a running portal environment. You do not need to restart the portal for the changes to take effect.
- Content Model Controller
- This allows you to modify the content topology and the properties
of content nodes such as pages, labels, and content URLs. Note: If you modify the content topology, this might also change the navigation of your portal for your users.
- Layout Model Controller
- This allows you to modify the layout of a page, such as the topology of layout elements of a page, and the properties of layout elements such as layout containers and layout controls.
- Portlet Model Controller
- This allows you to create, update and delete portlets.
NavigationModel
. This is by implication of the structure of the content model.NavigationSelectionModel
. This is computed from the navigational state per request.LanguageList, MarkupList, SkinList
, andThemeList
.
A controller is based on the corresponding read-only model. This means when you first create the controller on the basis of a read-only model, both the controller and the model expose the same information. You can then use the controller to create, update, or delete information exposed through it. These changes will be reflected in the controller immediately. To persist changes that you made to the underlying read-only model, you need to commit the controller.
- Provide modifiable instances of existing resources. These modifiable instances exist for each modifiable resource property, and they allow for these properties to be modified.
- Create and delete model resources.
- Obtain dependent controllers. This is optional. For example, a
ContentModelController
offers a method to obtain aLayoutModelController
. - Persist the modifications.
Scope of the Controller SPI
- If the underlying model is scoped to a particular user, then so is the controller.
- If the underlying model is scoped to a request, then so is the controller.
- If the underlying model is scoped to a virtual portal, then so is the controller.