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

public interface IDesktopDefinitionManager

This is the primary interface for performing persistent store operations on `DesktopDefinitions`. 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.

All Known Subinterfaces
  `DesktopDefinitionManager`

## Method Summary

`public `DesktopDefinition`` | `createDesktopDefinition`(`CustomizationContext` customizationContext, `DesktopDefinition` desktopDefinition) Creates new desktop definition.
`public `DesktopDefinition`` | `createDesktopDefinition`(`CustomizationContext` customizationContext, `DesktopView` desktopView, `String` webappName) Create new desktop definition in the persistent store from the given `view`.
`public void` | `deleteDesktopDefinition`(`CustomizationContext` customizationContext, `DesktopDefinitionId` desktopDefinitionId) Delete the `DesktopDefinition` of the supplied desktop definition identifier.
`public void` | `deleteDesktopDefinitionWithCascade`(`CustomizationContext` customizationContext, `DesktopDefinitionId` desktopDefinitionId) Delete the `DesktopDefinition` of the supplied desktop definition id and all desktop instances associated with this definition.
`public `DesktopDefinition`` | `getDesktopDefinition`(`CustomizationContext` customizationContext, `DesktopDefinitionId` desktopDefinitionId) Getter for returning a single `DesktopDefinition` object given a supplied desktop definition identifier.
`public `DesktopDefinition`[]` | `getDesktopDefinitions`(`CustomizationContext` customizationContext, `String` webapp) Getter for returning a list of all `DesktopDefinitions` scoped to the supplied webapp.
`public `DesktopDefinition`[]` | `getDesktopDefinitions`(`CustomizationContext` customizationContext, `String` webapp, `PortalPath` portalPath, `DesktopPath` firstDesktopPath, int limit) Returns `DesktopDefinition`s in `desktopPath` order (create order).
`public `DesktopView`` | `getDesktopView`(`CustomizationContext` customizationContext, `DesktopDefinitionId` desktopDefinitionId) Getter for returning an immutable deep copy of a `DesktopView`.
`public `DesktopDefinition`[]` | `searchDesktopDefinitions`(`CustomizationContext` customizationContext, `String` webapp, `PortalPath` portalPath, `String` partialDesktopTitle, int limit) Search for desktop definitions given the supplied search string.
`public void` | `updateDesktopDefinition`(`CustomizationContext` customizationContext, `DesktopDefinition` desktopDefintion) Update the persistent store for the supplied `DesktopDefinition`.

## Method Detail

### createDesktopDefinition(CustomizationContext, DesktopDefinition) Method

    public DesktopDefinition createDesktopDefinition(CustomizationContext customizationContext,
                                                     DesktopDefinition desktopDefinition)
         throws RemoteException, MissingDataException, ObjectNotFoundException, NotEntitledException, DuplicateObjectException

Creates new desktop definition. Creates a new desktop definition in the persistent store. This definition may be used to create desktop instance later on.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId

desktopDefinition
  the desktop definition object containing all the required data.

#### Returns

the fully populated (DesktopDefinitionId) DesktopDefinition

#### Exceptions

``RemoteException``
``MissingDataException``
  if some vital information is missing from the DesktopDefinition.
``ObjectNotFoundException``
``NotEntitledException``
  if the caller does not have the required permissions to delete this object.
``DuplicateObjectException``
  if the `portalPath` and `desktopPath` combination already exist in the database

### createDesktopDefinition(CustomizationContext, DesktopView, String) Method

    public DesktopDefinition createDesktopDefinition(CustomizationContext customizationContext,
                                                     DesktopView desktopView,
                                                     String webappName)
         throws RemoteException, MissingDataException, ObjectNotFoundException, NotEntitledException, ViewDisassemblerException, DuplicateObjectException, DuplicateDefinitionException

Create new desktop definition in the persistent store from the given `view`. The `view` is typically constructed via the `XmlDisassembler```.

#### Parameters

customizationContext
  customization information such as preferred locales, username and request, and most importantly `disassemblerTemplateAction`.

desktopView
  desktop view that has all the necessary information to create a desktop definition.

webappName
  the name of the webapp

#### Returns

the desktop definition object containing all the required data.

#### Exceptions

``RemoteException``
``MissingDataException``
  If some vital information is missing from the DesktopVeiw.
``ObjectNotFoundException``
``NotEntitledException``
  If the caller does not have the required permissions to create a desktop definition.
``ViewDisassemblerException``
  If unable to disassemble the given desktop view `desktopView`. typically caused by some bad markup names in the view.
``DuplicateObjectException``
  if the `portalPath` and `desktopPath` combination already exist in the database
``DuplicateDefinitionException``
  if a book or page with the same definition label already exist in the database.

Related Topics

``CustomizationContext.setDisassemblerTemplateAction(int)``
``XmlDisassembler``

### deleteDesktopDefinition(CustomizationContext, DesktopDefinitionId) Method

    public void deleteDesktopDefinition(CustomizationContext customizationContext,
                                        DesktopDefinitionId desktopDefinitionId)
         throws RemoteException, ObjectNotFoundException, ObjectInUseException, NotEntitledException

Delete the `DesktopDefinition` of the supplied desktop definition identifier.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId

desktopDefinitionId
  the unique desktop definition identifier of the desktop to delete.

#### Exceptions

``RemoteException``
``ObjectNotFoundException``
  if there is no DesktopDefinition associated with desktopDefinitionId.
``ObjectInUseException``
  if this desktop definition is currently being used by desktop (user) instances.
``NotEntitledException``

### deleteDesktopDefinitionWithCascade(CustomizationContext, DesktopDefinitionId) Method

    public void deleteDesktopDefinitionWithCascade(CustomizationContext customizationContext,
                                                   DesktopDefinitionId desktopDefinitionId)
         throws RemoteException, ObjectNotFoundException, NotEntitledException

Delete the `DesktopDefinition` of the supplied desktop definition id and all desktop instances associated with this definition.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId

desktopDefinitionId
  the unique desktop definition identifier of the desktop to delete.

#### Exceptions

``RemoteException``
``ObjectNotFoundException``
  if there is no DesktopDefinition associated with desktopDefinitionId.
``NotEntitledException``

### getDesktopDefinition(CustomizationContext, DesktopDefinitionId) Method

    public DesktopDefinition getDesktopDefinition(CustomizationContext customizationContext,
                                                  DesktopDefinitionId desktopDefinitionId)
         throws RemoteException

Getter for returning a single `DesktopDefinition` object given a supplied desktop definition identifier.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId

desktopDefinitionId
  the unique desktop definition identifier.

#### Returns

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

#### Exceptions

``RemoteException``

Related Topics

``DesktopDefinition``

### getDesktopDefinitions(CustomizationContext, String) Method

    public DesktopDefinition[] getDesktopDefinitions(CustomizationContext customizationContext,
                                                   String webapp)
         throws RemoteException

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

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId

webapp
  the web application these desktop definitions are scoped to.

#### Returns

an iterator of `DesktopDefinition` objects if they exist, otherwise, an empty iterator.

#### Exceptions

``RemoteException``

### getDesktopDefinitions(CustomizationContext, String, PortalPath, DesktopPath, int) Method

    public DesktopDefinition[] getDesktopDefinitions(CustomizationContext customizationContext,
                                                   String webapp,
                                                   PortalPath portalPath,
                                                   DesktopPath firstDesktopPath,
                                                   int limit)
         throws RemoteException

Returns `DesktopDefinition`s in `desktopPath` order (create order). Starting with the supplied desktopPath and limiting the result set to size `limit`. If fewer `DesktopDefinition`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 `desktopPath`. To retrieve from the end of the list and back specify `null` as the `desktopPath` and a negative `limit`. To retrieve all the desktopDefinitions in the database supply a limit of 0.
Implementation has to ensure that repeated calls to this method return `DesktopDefinition`s in a consistent order.

#### Parameters

customizationContext
  customization information such as preferred locales.

webapp
  the web application these desktop definitions are scoped to.

portalPath
  the portal path to which these desktop definitions are scoped to.

firstDesktopPath
  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 `DesktopDefinition`s no greater than `limit` in size.

#### Exceptions

``RemoteException``

### getDesktopView(CustomizationContext, DesktopDefinitionId) Method

    public DesktopView getDesktopView(CustomizationContext customizationContext,
                                      DesktopDefinitionId desktopDefinitionId)
         throws RemoteException

Getter for returning an immutable deep copy of a `DesktopView`. The `DesktopView` object, unlike the `DesktopDefinition` or the `DesktopInstance` objects contains a full set of references to all child shells, pages, books and so on. The `DesktopView` object however is immutable.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId

desktopDefinitionId
  the unique desktopDefinitionId.

#### Returns

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

#### Exceptions

``RemoteException``

### searchDesktopDefinitions(CustomizationContext, String, PortalPath, String, int) Method

    public DesktopDefinition[] searchDesktopDefinitions(CustomizationContext customizationContext,
                                                      String webapp,
                                                      PortalPath portalPath,
                                                      String partialDesktopTitle,
                                                      int limit)
         throws RemoteException

Search for desktop definitions given the supplied search string. Desktops 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 `DesktopDefinition`s in a consistent order.

#### Parameters

customizationContext
  customization information such as preferred locales.

webapp
  the web application these desktop definitions are scoped to.

portalPath
  a portal path to which the desktops are scoped, if null then all portal paths are searched.

partialDesktopTitle
  the search string for desktop 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 `DesktopDefinition`s no greater than `limit` in size.

#### Exceptions

``RemoteException``

### updateDesktopDefinition(CustomizationContext, DesktopDefinition) Method

    public void updateDesktopDefinition(CustomizationContext customizationContext,
                                        DesktopDefinition desktopDefintion)
         throws RemoteException, ObjectNotFoundException, NotEntitledException

Update the persistent store for the supplied `DesktopDefinition`. All attributes of the DesktopDefinition are updated in persistent store.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId

desktopDefintion
  the object containing the new data for the desktop definition.

#### Exceptions

``RemoteException``
``ObjectNotFoundException``
  the `DesktopDefinitionId`
``NotEntitledException``
  if the caller does not have the required permissions to delete this object.