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

public interface ILayoutDefinitionManager

This is the primary interface for performing persistent store operations on `LayoutDefinitions`. 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 preferred 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 `LayoutDefinition`` | `createLayoutDefinition`(`CustomizationContext` customizationContext, `LayoutDefinition` layoutDefinition) Creates a new LayoutView Definition with its placeholders.
`public void` | `deleteLayoutDefinition`(`CustomizationContext` customizationContext, `LayoutDefinitionId` layoutDefinitionId) Delete a layout definition and all its associated placeholders.
`public void` | `deleteLayoutDefinitionWithReplacement`(`CustomizationContext` customizationContext, `LayoutDefinitionId` deleteLayoutDefinitionId, `LayoutDefinitionId` replacementLayoutDefinitionId) Delete a layout definition (and its placeholders) and replace any uses of that layout with a replacement layout.
`public `LayoutDefinition`` | `getLayoutDefinition`(`CustomizationContext` customizationContext, `LayoutDefinitionId` layoutDefinitionId) Getter for returning a single `LayoutDefinition` object given a supplied layout definition identifier.
`public `LayoutDefinition`` | `getLayoutDefinitionFromFile`(`CustomizationContext` customizationContext, `String` layoutFile, `String` webAppName) Getter for returning a single `LayoutDefinition` object given a supplied layout file name and web app name.
`public `LayoutDefinitionId`` | `getLayoutDefinitionId`(`CustomizationContext` customizationContext, `String` markupName, `String` webAppName) Getter for returning a single `LayoutDefinitionId` object given a supplied layout markup name.
`public `LayoutDefinition`[]` | `getLayoutDefinitions`(`CustomizationContext` customizationContext, `String` webapp) Getter for returning a list of all `LayoutDefinitions` scoped to the supplied webapp.
`public `LayoutDefinition`[]` | `getLayoutDefinitions`(`CustomizationContext` customizationContext, `String` webapp, `LayoutDefinitionId` firstLayoutDefinitionId, int limit) Returns `LayoutDefinition`s in `definitionId` order (create order).
`public `PlaceholderDefinitionId`` | `getPlaceholderDefinitionId`(`CustomizationContext` customizationContext, `LayoutDefinitionId` layoutDefinitionId, int layoutLocation) Getter for returning a single `PlaceholderDefinitionId` object given a supplied placeholder markup name.
`public void` | `updateLayoutDefinition`(`CustomizationContext` customizationContext, `LayoutDefinition` layoutDefinition) Update the layout definition with the new data.

## Method Detail

### createLayoutDefinition(CustomizationContext, LayoutDefinition) Method

    public LayoutDefinition createLayoutDefinition(CustomizationContext customizationContext,
                                                   LayoutDefinition layoutDefinition)
         throws RemoteException, MissingDataException, NotEntitledException

Creates a new LayoutView Definition with its placeholders.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId

layoutDefinition
  the layout data and associated placeholders

#### Returns

a fully populated LayoutDefinition

#### Exceptions

``RemoteException``
``MissingDataException``
  the layoutDefiniiton supplied as an argument is missing some vital data.
``NotEntitledException``
  the caller is not entitled to create a new layout.

### deleteLayoutDefinition(CustomizationContext, LayoutDefinitionId) Method

    public void deleteLayoutDefinition(CustomizationContext customizationContext,
                                       LayoutDefinitionId layoutDefinitionId)
         throws RemoteException, ObjectNotFoundException, ObjectInUseException, NotEntitledException

Delete a layout definition and all its associated placeholders.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId

layoutDefinitionId
  the id of the layout definition to delete.

#### Exceptions

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

Related Topics

``ILayoutDefinitionManager.deleteLayoutDefinitionWithReplacement(CustomizationContext, LayoutDefinitionId, LayoutDefinitionId)``

### deleteLayoutDefinitionWithReplacement(CustomizationContext, LayoutDefinitionId, LayoutDefinitionId) Method

    public void deleteLayoutDefinitionWithReplacement(CustomizationContext customizationContext,
                                                      LayoutDefinitionId deleteLayoutDefinitionId,
                                                      LayoutDefinitionId replacementLayoutDefinitionId)
         throws RemoteException, ObjectNotFoundException, NotEntitledException

Delete a layout definition (and its placeholders) and replace any uses of that layout with a replacement layout. This method is useful for deleting a layout that is in use by page instances and not having to delete those page instances.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId

deleteLayoutDefinitionId
  the id of the layout definition to delete.

replacementLayoutDefinitionId
  the id of the replacement layout

#### Exceptions

``RemoteException``
``ObjectNotFoundException``
  if either of the layoutDefinitionIds are bogus
``NotEntitledException``
  the caller is not entitled to perform this operation.

Related Topics

``ILayoutDefinitionManager.deleteLayoutDefinition(CustomizationContext, LayoutDefinitionId)``

### getLayoutDefinition(CustomizationContext, LayoutDefinitionId) Method

    public LayoutDefinition getLayoutDefinition(CustomizationContext customizationContext,
                                                LayoutDefinitionId layoutDefinitionId)
         throws RemoteException

Getter for returning a single `LayoutDefinition` object given a supplied layout definition identifier.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId

layoutDefinitionId
  the unique layout definition identifier.

#### Returns

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

#### Exceptions

``RemoteException``

Related Topics

``LayoutDefinition``

### getLayoutDefinitionFromFile(CustomizationContext, String, String) Method

    public LayoutDefinition getLayoutDefinitionFromFile(CustomizationContext customizationContext,
                                                        String layoutFile,
                                                        String webAppName)
         throws RemoteException

Getter for returning a single `LayoutDefinition` object given a supplied layout file name and web app name.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId

layoutFile
  the name of the .layout file

webAppName
  the name of the web app as defined in the config.xml

#### Returns

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

#### Exceptions

``RemoteException``

Related Topics

``LayoutDefinition``

### getLayoutDefinitionId(CustomizationContext, String, String) Method

    public LayoutDefinitionId getLayoutDefinitionId(CustomizationContext customizationContext,
                                                    String markupName,
                                                    String webAppName)
         throws RemoteException

Getter for returning a single `LayoutDefinitionId` object given a supplied layout markup name.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId

markupName
  as supplied on the tag.

webAppName
  as defined in the config.xml

#### Returns

LayoutDefinitionId the unique layout definition identifier or null if none exist.

#### Exceptions

``RemoteException``

### getLayoutDefinitions(CustomizationContext, String) Method

    public LayoutDefinition[] getLayoutDefinitions(CustomizationContext customizationContext,
                                                 String webapp)
         throws RemoteException

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

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId

webapp
  the web application these layout definitions are scoped to.

#### Returns

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

#### Exceptions

``RemoteException``

Related Topics

``LayoutDefinition``

### getLayoutDefinitions(CustomizationContext, String, LayoutDefinitionId, int) Method

    public LayoutDefinition[] getLayoutDefinitions(CustomizationContext customizationContext,
                                                 String webapp,
                                                 LayoutDefinitionId firstLayoutDefinitionId,
                                                 int limit)
         throws RemoteException

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

#### Parameters

customizationContext
  customization information such as preferred locales.

webapp
  the web application these layout definitions are scoped to.

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

#### Exceptions

``RemoteException``

### getPlaceholderDefinitionId(CustomizationContext, LayoutDefinitionId, int) Method

    public PlaceholderDefinitionId getPlaceholderDefinitionId(CustomizationContext customizationContext,
                                                              LayoutDefinitionId layoutDefinitionId,
                                                              int layoutLocation)
         throws RemoteException

Getter for returning a single `PlaceholderDefinitionId` object given a supplied placeholder markup name.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId

#### Returns

PlaceholderDefinitionId the unique placeholder definition identifier or null if none exist.

#### Exceptions

``RemoteException``

### updateLayoutDefinition(CustomizationContext, LayoutDefinition) Method

    public void updateLayoutDefinition(CustomizationContext customizationContext,
                                       LayoutDefinition layoutDefinition)
         throws RemoteException, ObjectNotFoundException, MissingDataException, NotEntitledException

Update the layout definition with the new data.

#### Parameters

customizationContext
  customization information such as preferred locales and desktopInstanceId

layoutDefinition
  the layout definition containing the new data

#### Exceptions

``RemoteException``
``ObjectNotFoundException``
  if the LocalizationIntersectionId in the LocalizationResource is bogus.
``MissingDataException``
  if layoutDefinition is missing required data.
``NotEntitledException``