# com.bea.netuix.application.manager
IPageDefinitionManager Interface

public interface IPageDefinitionManager

This is the primary interface for performing persistent store operations on `PageDefinitions`. In general this interface provides coarse grain getters and fine grain setters.

It is important to note that all methods on this interface are fully internationalized and entitled. All `titles` and `descriptions` on the objects returned by these methods are internationalized to the prefered locale. Also, all methods are entitled, meaning if the caller does not have the required credentials the method may return a subset of the actual list or be unable to perform the specified function.

"Definitions" can be thought of as objects in the Library. Objects in the library are not associated to any one Desktop. In other words definitions can be placed on zero or more desktops and changes made in the Library (to the definitions) are cascaded down to object on the desktops. If you are only interested in effecting a single desktop then use the `PortalCustomizationManager` and make changes to the "Instances".

All Known Subinterfaces
  `PageDefinitionManager`

## Method Summary

`public `PlaceableInstance`` | `addPlaceable`(`CustomizationContext` customizationContext, `PageDefinitionId` pageDefinitionId, `PlaceableDefinitionId` placeableDefinitionId, `PlaceholderDefinitionId` placeholderDefinitionId, int position) Create a new instance of a placeable (PortletView or BookView) by placing the definition in a placeholder.
`public `PageDefinition`` | `createPageDefinition`(`CustomizationContext` customizationContext, `PageDefinition` pageDefinition) Create a new page definition.
`public void` | `deletePageDefinition`(`CustomizationContext` customizationContext, `PageDefinitionId` pageDefinitionId) Delete a page definition, but only if it is not used by other page instances.
`public void` | `deletePageDefinitionWithCascade`(`CustomizationContext` customizationContext, `PageDefinitionId` pageDefinitionId) Delete a page definition and all page instances associated with this definition.
`public void` | `deletePageDefinitionWithReplacement`(`CustomizationContext` customizationContext, `PageDefinitionId` deletePageDefinitionId, `PageDefinitionId` replacementPageDefinitionId) Delete an existing page definition and if it is in use replace it's use with the supplied page definition.
`public `PageDefinition`` | `getPageDefinition`(`CustomizationContext` customizationContext, `PageDefinitionId` pageDefinitionId) Getter for returning a single `PageDefinition` object given a supplied page definition identifier.
`public `PageDefinition`` | `getPageDefinition`(`CustomizationContext` customizationContext, `String` pageDefinitionLabel, `String` webAppName) Getter for returning a single `PageDefinition` object given a supplied page definition label.
`public `PageDefinition`[]` | `getPageDefinitions`(`CustomizationContext` customizationContext, `String` webapp) Getter for returning a list of all `PageDefinitions` scoped to the supplied webapp.
`public `PageDefinition`[]` | `getPageDefinitions`(`CustomizationContext` customizationContext, `String` webapp, `PageDefinitionId` firstPageDefinitionId, int limit) Returns `PageDefinition`s in `definitionId` order (create order).
`public `PageView`` | `getPageView`(`CustomizationContext` customizationContext, `PageDefinitionId` pageDefinitionId) Getter for returning an immutable deep copy of a `PageView`.
`public `Placement`` | `getPlacement`(`CustomizationContext` customizationContext, `PlacementId` placementId) Returns a `Placement` given a `placementId`.
`public `PageDefinition`[]` | `getPublicPageDefinitions`(`CustomizationContext` customizationContext, `DesktopDefinitionId` desktopDefinitionId, `PageDefinitionId` firstPageDefinitionId, int limit) Returns `PageDefinition`s in `definitionId` order (create order) scoped to the supplied webapp and marked as public and not currently on the users desktop.
`public `PageDefinition`[]` | `getPublicPageDefinitions`(`CustomizationContext` customizationContext, `String` webapp, `PageDefinitionId` firstPageDefinitionId, int limit) Returns `PageDefinition`s in `definitionId` order (create order) marked as public and scoped to the supplied webapp.
`public `PageDefinition`[]` | `getPublicPageDefinitions`(`CustomizationContext` customizationContext, `String` webapp) Getter for returning a list of all `PageDefinitions` marked as public and scoped to the supplied webapp.
`public `PageDefinition`[]` | `getPublicPageDefinitions`(`CustomizationContext` customizationContext, `DesktopDefinitionId` desktopDefinitionId) Getter for returning a list of all `PageDefinitions` marked as public and scoped scoped to the supplied webapp and not currently on the caller's desktop.
`public `PageDefinition`[]` | `getPublicPageDefinitions`(`CustomizationContext` customizationContext, `String` webapp, `BookDefinitionId` bookDefinitionId) Getter for returning a list of all `PageDefinitions` marked as public and scoped to the supplied webapp and not currently on the supplied book.
`public `Placement`` | `movePlaceable`(`CustomizationContext` customizationContext, `PlacementId` placementId, `PlaceholderDefinitionId` placeholderDefinitionId, int position) Move a placeable (book or portlet) definition from one placeholder to another.
`public void` | `removePlaceable`(`CustomizationContext` customizationContext, `PlacementId` placementId) Remove a placeable from a page's placeholder.
`public `PageDefinition`[]` | `searchPublicPageDefinitions`(`CustomizationContext` customizationContext, `String` webapp, `String` partialPageTitle, int limit) Search for public pages given the supplied search string.
`public void` | `updatePageDefinition`(`CustomizationContext` customizationContext, `PageDefinition` pageDefinition) Update the page definition with the new data.
`public void` | `updatePageDefinitionNoDuplicates`(`CustomizationContext` customizationContext, `PageDefinition` pageDefinition) Checks for duplicate page labels then updates the page definition with the new data.

## Method Detail

### addPlaceable(CustomizationContext, PageDefinitionId, PlaceableDefinitionId, PlaceholderDefinitionId, int) Method

    public PlaceableInstance addPlaceable(CustomizationContext customizationContext,
                                          PageDefinitionId pageDefinitionId,
                                          PlaceableDefinitionId placeableDefinitionId,
                                          PlaceholderDefinitionId placeholderDefinitionId,
                                          int position)
         throws RemoteException, ObjectNotFoundException, MissingDataException, NotEntitledException, IllegalDependencyException, DuplicateObjectException

Create a new instance of a placeable (PortletView or BookView) by placing the definition in a placeholder.

#### Parameters

customizationContext
  customization information such as preferred locales.

pageDefinitionId
  the id of the page to place the placeable.

placeableDefinitionId
  the abstract definition id of the placeable definition.

placeholderDefinitionId
  the placehoder to place this placeable in.

position
  the position in the placeholder to insert the placeholder.

#### Returns

a fully populated placeable instance. This will be of a more concrete type depending on the placeable definition supplied.

#### Exceptions

``RemoteException``
``ObjectNotFoundException``
  if the PageDefinitionId or the PlaceholderDefinition Id are bogus
``MissingDataException``
  the placeableDefinition is missing some vital data.
``NotEntitledException``
  the caller is not entitled to perform this action
``IllegalDependencyException``
  adding the Placeable to the PageDefinition would cause a recursive dependancy
``DuplicateObjectException``
  if the navigable is a book and is already added to this page

### createPageDefinition(CustomizationContext, PageDefinition) Method

    public PageDefinition createPageDefinition(CustomizationContext customizationContext,
                                               PageDefinition pageDefinition)
         throws RemoteException, MissingDataException, NotEntitledException

Create a new page definition.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId returned.

pageDefinition
  the object containing the data to create the new page definition with.

#### Returns

a fully populated page definition object

#### Exceptions

``RemoteException``
``MissingDataException``
  the pade definition object supplied is missing some vital data.
``NotEntitledException``
  caller is not entitled to perform this action

### deletePageDefinition(CustomizationContext, PageDefinitionId) Method

    public void deletePageDefinition(CustomizationContext customizationContext,
                                     PageDefinitionId pageDefinitionId)
         throws RemoteException, ObjectNotFoundException, ObjectInUseException, NotEntitledException

Delete a page definition, but only if it is not used by other page instances.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId returned.

pageDefinitionId
  the id of the page definition to delete.

#### Exceptions

``RemoteException``
``ObjectNotFoundException``
  if the pageDefinitionId is bogus
``ObjectInUseException``
  if page instances are currently using this page definition
``NotEntitledException``
  the caller is not entitled to perform this operation.

Related Topics

``IPageDefinitionManager.deletePageDefinitionWithCascade(CustomizationContext, PageDefinitionId)``

### deletePageDefinitionWithCascade(CustomizationContext, PageDefinitionId) Method

    public void deletePageDefinitionWithCascade(CustomizationContext customizationContext,
                                                PageDefinitionId pageDefinitionId)
         throws RemoteException, ObjectNotFoundException, NotEntitledException

Delete a page definition and all page instances associated with this definition.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId returned.

pageDefinitionId
  the id of the page definition to delete.

#### Exceptions

``RemoteException``
``ObjectNotFoundException``
  if the pageDefinitionId is bogus
``NotEntitledException``
  the caller is not entitled to perform this operation.

Related Topics

``IPageDefinitionManager.deletePageDefinition(CustomizationContext, PageDefinitionId)``

### deletePageDefinitionWithReplacement(CustomizationContext, PageDefinitionId, PageDefinitionId) Method

    public void deletePageDefinitionWithReplacement(CustomizationContext customizationContext,
                                                    PageDefinitionId deletePageDefinitionId,
                                                    PageDefinitionId replacementPageDefinitionId)
         throws RemoteException, ObjectNotFoundException, NotEntitledException

Delete an existing page definition and if it is in use replace it's use with the supplied page definition.

Note: all customization of the deleted page will be lost.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId

deletePageDefinitionId
  the definition id of the page to delete

replacementPageDefinitionId
  the definition id of the page to replace the deleted page.

#### Exceptions

``RemoteException``
``ObjectNotFoundException``
  if the pageDefinitionId is bogus.
``NotEntitledException``
  no entitlements for this operation.

Related Topics

``PageDefinition``

### getPageDefinition(CustomizationContext, PageDefinitionId) Method

    public PageDefinition getPageDefinition(CustomizationContext customizationContext,
                                            PageDefinitionId pageDefinitionId)
         throws RemoteException

Getter for returning a single `PageDefinition` object given a supplied page definition identifier.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId returned.

pageDefinitionId
  the unique page definition identifier.

#### Returns

a `PageDefinition` object fully populated and internationalized, otherwise, `null>/code> if the object does not exist.`

#### Exceptions

``RemoteException``

### getPageDefinition(CustomizationContext, String, String) Method

    public PageDefinition getPageDefinition(CustomizationContext customizationContext,
                                            String pageDefinitionLabel,
                                            String webAppName)
         throws RemoteException

Getter for returning a single `PageDefinition` object given a supplied page definition label.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId returned.

pageDefinitionLabel
  the unique page definition label.

webAppName
  the webapp this page is scoped to.

#### Returns

a `PageDefinition` object fully populated and internationalized, otherwise, `null>/code> if the object does not exist.`

#### Exceptions

``RemoteException``

### getPageDefinitions(CustomizationContext, String) Method

    public PageDefinition[] getPageDefinitions(CustomizationContext customizationContext,
                                             String webapp)
         throws RemoteException

Getter for returning a list of all `PageDefinitions` scoped to the supplied webapp.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId returned.

webapp
  the web application these page definitions are scoped to.

#### Returns

an array of `PageDefinition` objects if they exist, otherwise, an empty array.

#### Exceptions

``RemoteException``

Related Topics

``PageDefinition``

### getPageDefinitions(CustomizationContext, String, PageDefinitionId, int) Method

    public PageDefinition[] getPageDefinitions(CustomizationContext customizationContext,
                                             String webapp,
                                             PageDefinitionId firstPageDefinitionId,
                                             int limit)
         throws RemoteException

Returns `PageDefinition`s in `definitionId` order (create order). Starting with the supplied definitionId and limiting the result set to size `limit`. If fewer `PageDefinition`s exist than `limit`, then a smaller result set will be returned. If no definitions are found an empty array is returned. To start at the beginning of the list specify `null` as the `pageDefinitionId`. To retrieve from the end of the list and back specify `null` as the `pageDefinitionId` and a negative `limit`. To retrieve all the pageDefinitions in the database supply a limit of 0.
Implementation has to ensure that repeated calls to this method return `PageDefinition`s in a consistent order.

#### Parameters

customizationContext
  customization information such as preferred locales.

webapp
  the web application these page definitions are scoped to.

firstPageDefinitionId
  optional parameter to indicate where the list should start.

limit
  the maximum result set size. Note the limit may be negative indicating a reverse sort order. For all the records specify a limit of zero. Note: some elements may be pruned because of entitlements.

#### Returns

array of `PageDefinition`s no greater than `limit` in size.

#### Exceptions

``RemoteException``

### getPageView(CustomizationContext, PageDefinitionId) Method

    public PageView getPageView(CustomizationContext customizationContext,
                                PageDefinitionId pageDefinitionId)
         throws RemoteException

Getter for returning an immutable deep copy of a `PageView`. The `PageView` object, unlike the `PageDefinition` or the `PageInstance` objects contains a full set of references to all child pages, pages and so on. The `PageView` object however is immutable.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId returned.

pageDefinitionId
  the unique pageDefinitionId.

#### Returns

an immutable deep copy PageView object if one exist, otherwise null.

#### Exceptions

``RemoteException``

### getPlacement(CustomizationContext, PlacementId) Method

    public Placement getPlacement(CustomizationContext customizationContext,
                                  PlacementId placementId)
         throws RemoteException

Returns a `Placement` given a `placementId`. Returns a `null` if no `Placement` matching `placementId` exists.

#### Parameters

customizationContext
  placementId for the placement being requested

#### Returns

a Placement object

#### Exceptions

``RemoteException``

### getPublicPageDefinitions(CustomizationContext, DesktopDefinitionId, PageDefinitionId, int) Method

    public PageDefinition[] getPublicPageDefinitions(CustomizationContext customizationContext,
                                                   DesktopDefinitionId desktopDefinitionId,
                                                   PageDefinitionId firstPageDefinitionId,
                                                   int limit)
         throws RemoteException

Returns `PageDefinition`s in `definitionId` order (create order) scoped to the supplied webapp and marked as public and not currently on the users desktop. Starting with the supplied definitionId and limiting the result set to size `limit`. If fewer `PageDefinition`s exist than `limit`, then a smaller result set will be returned. If no definitions are found an empty array is returned. To start at the beginning of the list specify `null` as the `pageDefinitionId`. To retrieve from the end of the list and back specify `null` as the `pageDefinitionId` and a negative `limit`. To retrieve all the pageDefinitions in the database supply a limit of 0.
Implementation has to ensure that repeated calls to this method return `PageDefinition`s in a consistent order.

#### Parameters

customizationContext
  customization information such as prefered locales

desktopDefinitionId
  you wish to add any of these page definitions to.

firstPageDefinitionId
  optional parameter to indicate where the list should start.

limit
  the maximum result set size. Note the limit may be negative indicating a reverse sort order. For all the records specify a limit of zero.

#### Returns

an array of fully populated and internationalized `PageDefinition` objects if they exist, otherwise, an empty array.

#### Exceptions

``RemoteException``

Related Topics

``PageDefinition``

### getPublicPageDefinitions(CustomizationContext, String, PageDefinitionId, int) Method

    public PageDefinition[] getPublicPageDefinitions(CustomizationContext customizationContext,
                                                   String webapp,
                                                   PageDefinitionId firstPageDefinitionId,
                                                   int limit)
         throws RemoteException

Returns `PageDefinition`s in `definitionId` order (create order) marked as public and scoped to the supplied webapp. Starting with the supplied definitionId and limiting the result set to size `limit` If fewer `PageDefinition`s exist than `limit`, then a smaller result set will be returned. If no definitions are found an empty array is returned. To start at the beginning of the list specify `null` as the `pageDefinitionId`. To retrieve from the end of the list and back specify `null` as the `pageDefinitionId` and a negative `limit`. To retrieve all the pageDefinitions in the database supply a limit of 0.
Implementation has to ensure that repeated calls to this method return `PageDefinition`s in a consistent order.

#### Parameters

customizationContext
  customization information such as preferred locales.

webapp
  the web application these page definitions are scoped to.

firstPageDefinitionId
  optional parameter to indicate where the list should start.

limit
  the maximum result set size. Note the limit may be negative indicating a reverse sort order. For all the records specify a limit of zero. Note: some elements may be pruned because of entitlements.

#### Returns

array of `PageDefinition`s no greater than `limit` in size.

#### Exceptions

``RemoteException``

### getPublicPageDefinitions(CustomizationContext, String) Method

    public PageDefinition[] getPublicPageDefinitions(CustomizationContext customizationContext,
                                                   String webapp)
         throws RemoteException

Getter for returning a list of all `PageDefinitions` marked as public and scoped to the supplied webapp.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId returned.

webapp
  the web application these page definitions are scoped to.

#### Returns

an array of `PageDefinition` objects if they exist, otherwise, an empty array.

#### Exceptions

``RemoteException``

Related Topics

``PageDefinition``

### getPublicPageDefinitions(CustomizationContext, DesktopDefinitionId) Method

    public PageDefinition[] getPublicPageDefinitions(CustomizationContext customizationContext,
                                                   DesktopDefinitionId desktopDefinitionId)
         throws RemoteException

Getter for returning a list of all `PageDefinitions` marked as public and scoped scoped to the supplied webapp and not currently on the caller's desktop.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId returned.

desktopDefinitionId
  you wish to add any of these book definitions to.

#### Returns

an array of `PageDefinition` objects if they exist, otherwise, an empty array.

#### Exceptions

``RemoteException``

Related Topics

``PageDefinition``

### getPublicPageDefinitions(CustomizationContext, String, BookDefinitionId) Method

    public PageDefinition[] getPublicPageDefinitions(CustomizationContext customizationContext,
                                                   String webapp,
                                                   BookDefinitionId bookDefinitionId)
         throws RemoteException

Getter for returning a list of all `PageDefinitions` marked as public and scoped to the supplied webapp and not currently on the supplied book.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId returned.

webapp
  the web application these page definitions are scoped to.

bookDefinitionId
  you wish to add any of these book definitions to.

#### Returns

an array of `PageDefinition` objects if they exist, otherwise, an empty array.

#### Exceptions

``RemoteException``

Related Topics

``PageDefinition``

### movePlaceable(CustomizationContext, PlacementId, PlaceholderDefinitionId, int) Method

    public Placement movePlaceable(CustomizationContext customizationContext,
                                   PlacementId placementId,
                                   PlaceholderDefinitionId placeholderDefinitionId,
                                   int position)
         throws RemoteException, ObjectNotFoundException, NotEntitledException

Move a placeable (book or portlet) definition from one placeholder to another. Note the new position must be on the same page.

#### Parameters

customizationContext
  customization information such as preferred locales & request.

placementId
  the placement id of the placeables current placement within the page

placeholderDefinitionId
  the new placehoder to place this placeable in.

position
  the position in the placeholder to insert the placeholder.

#### Returns

new placement

#### Exceptions

``RemoteException``
``ObjectNotFoundException``
  if the PageDefinitionId or the PlaceholderDefinition Id are bogus
``NotEntitledException``
  the caller is not entitled to perform this action

### removePlaceable(CustomizationContext, PlacementId) Method

    public void removePlaceable(CustomizationContext customizationContext,
                                PlacementId placementId)
         throws RemoteException, ObjectNotFoundException, NotEntitledException

Remove a placeable from a page's placeholder. This operation will NOT delete the PageView Definition.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId returned.

placementId

#### Exceptions

``RemoteException``
``ObjectNotFoundException``
  If the padeDefinitionId or the placeableInstanceId are bogus definition is in use by other instance.
``NotEntitledException``
  the caller is not entitled to perform this action

### searchPublicPageDefinitions(CustomizationContext, String, String, int) Method

    public PageDefinition[] searchPublicPageDefinitions(CustomizationContext customizationContext,
                                                      String webapp,
                                                      String partialPageTitle,
                                                      int limit)
         throws RemoteException

Search for public pages given the supplied search string. Pages with `titles` matching the supplied pattern will be returned. No more than `limit` results will be returned; however a smaller number may be returned. Implementation has to ensure that repeated calls to this method return `PageDefinition`s in a consistent order.

#### Parameters

customizationContext
  customization information such as preferred locales.

webapp
  the web application these page definitions are scoped to.

partialPageTitle
  the search string for page title match. Note: this string may contain special '*' and '?' characters, where '*' matches any characters and '?' matches any single character.

limit
  the maximum result set size. Note the limit may be negative indicating a reverse sort order. For all the records specify a limit of zero. Note: some elements may be pruned because of entitlements.

#### Returns

array of `PageDefinition`s no greater than `limit` in size.

#### Exceptions

``RemoteException``

### updatePageDefinition(CustomizationContext, PageDefinition) Method

    public void updatePageDefinition(CustomizationContext customizationContext,
                                     PageDefinition pageDefinition)
         throws RemoteException, ObjectNotFoundException, NotEntitledException

Update the page definition with the new data.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId returned.

pageDefinition
  the page definition containing the new data

#### Exceptions

``RemoteException``
``ObjectNotFoundException``
  if the LocalizationIntersectionId in the LocalizationResource is bogus.
``NotEntitledException``

### updatePageDefinitionNoDuplicates(CustomizationContext, PageDefinition) Method

    public void updatePageDefinitionNoDuplicates(CustomizationContext customizationContext,
                                                 PageDefinition pageDefinition)
         throws RemoteException, ObjectNotFoundException, NotEntitledException, DuplicateObjectException

Checks for duplicate page labels then updates the page definition with the new data.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId returned.

pageDefinition
  the page definition containing the new data

#### Exceptions

``RemoteException``
``ObjectNotFoundException``
  if the LocalizationIntersectionId in the LocalizationResource is bad.
``NotEntitledException``
``DuplicateObjectException``