# com.bea.netuix.application.manager.persistence.jdbc
BookDefinitionManagerImpl Class

public class BookDefinitionManagerImpl
extends `Object`
implements `IBookDefinitionManager`, `IMenuDefinitionManager`, `SessionBean`

Hierarchy
  `Object`
  `BookDefinitionManagerImpl`

All Implemented Interfaces
  `EnterpriseBean`, `IBookDefinitionManager`, `IMenuDefinitionManager`, `Serializable`, `SessionBean`

## Field Summary

`protected static `Debug`` | `debug` Debug

## Constructor Summary

BookDefinitionManagerImpl()

## Method Summary

`public `NavigableInstance`` | `addNavigable`(`CustomizationContext` customizationContext, `BookDefinitionId` bookDefinitionId, `NavigableDefinitionId` navigableDefinitionId, int position, int alignment, boolean isDefault) Add a Navigable definition (BookDefinition or PageDefinition) to an existing BookDefinition.
`public `BookDefinition`` | `createBookDefinition`(`CustomizationContext` customizationContext, `BookDefinition` bookDefinition) Create a new book definition.
`public `MenuDefinition`` | `createMenuDefinition`(`CustomizationContext` customizationContext, `MenuDefinition` menuDefinition) Creates a new MenuView Definition with its placeholders.
`public void` | `deleteBookDefinition`(`CustomizationContext` customizationContext, `BookDefinitionId` bookDefinitionId) Methof for deleting a `BookDefinition` object given a supplied book definition identifier.
`public void` | `deleteBookDefinitionWithCascade`(`CustomizationContext` customizationContext, `BookDefinitionId` bookDefinitionId) Delete the `BookDefinition` of the supplied book definition identifier and and all `BookInstance` objects associated with this book definition.
`public void` | `deleteBookDefinitionWithReplacement`(`CustomizationContext` customizationContext, `BookDefinitionId` deleteBookDefinitionId, `BookDefinitionId` replacementBookDefinitionId) Delete an existing book definition and if it is in use replace it's use with thesupplied book defintion.
`public void` | `deleteMenuDefinition`(`CustomizationContext` customizationContext, `MenuDefinitionId` menuDefinitionId) Delete a menu definition.
`public void` | `deleteMenuDefinitionWithReplacement`(`CustomizationContext` customizationContext, `MenuDefinitionId` deleteMenuDefinitionId, `MenuDefinitionId` replacementMenuDefinitionId) Delete a menu definition and replace any uses of that menu with a replacement menu.
`public void` | `ejbActivate`()
`public void` | `ejbCreate`()
`public void` | `ejbPassivate`()
`public void` | `ejbRemove`()
`public `BookDefinition`` | `getBookDefinition`(`CustomizationContext` customizationContext, `BookDefinitionId` bookDefinitionId) Getter for returning a single `BookDefinition` object given a supplied book definition identifier.
`public `BookDefinition`` | `getBookDefinition`(`CustomizationContext` customizationContext, `String` definitionLabel, `String` webAppName) Getter for returning a single `BookDefinition` object given a supplied book definition label.
`public `BookDefinition`[]` | `getBookDefinitions`(`CustomizationContext` customizationContext, `String` webapp) Getter for returning a list of all `BookDefinitions` scoped to the supplied webapp.
`public `BookDefinition`[]` | `getBookDefinitions`(`CustomizationContext` customizationContext, `String` webapp, `BookDefinitionId` bookDefinitionId, int limit) Returns `BookDefinition`s in `definitionId` order (create order).
`public `BookView`` | `getBookView`(`CustomizationContext` customizationContext, `BookDefinitionId` bookDefinitionId) Getter for returning an immutable deep copy of a `BookView`.
`public `MenuDefinition`` | `getMenuDefinition`(`CustomizationContext` customizationContext, `MenuDefinitionId` menuDefinitionId) Getter for returning a single `MenuDefinition` object given a supplied menu definition identifier.
`public `MenuDefinition`` | `getMenuDefinitionFromFile`(`CustomizationContext` customizationContext, `String` menuFile, `String` webAppName) Getter for returning a single `MenuDefinition` object given a supplied menu definition identifier.
`public `MenuDefinitionId`` | `getMenuDefinitionId`(`CustomizationContext` customizationContext, `String` markupName, `String` webAppName) Getter for returning a single `MenuDefinitionId` object given a supplied menu markup name.
`public `MenuDefinition`[]` | `getMenuDefinitions`(`CustomizationContext` customizationContext, `String` webapp) Getter for returning a list of all `MenuDefinitions` scoped to the supplied webapp.
`public `MenuDefinition`[]` | `getMenuDefinitions`(`CustomizationContext` customizationContext, `String` webapp, `MenuDefinitionId` menuDefinitionId, int limit) Returns `MenuDefinition`s in `definitionId` order (create order).
`public `MenuView`` | `getMenuView`(`CustomizationContext` customizationContext, `MenuDefinitionId` menuDefinitionId) Getter for returning an immutable deep copy of a `MenuView`.
`public `BookDefinition`[]` | `getPublicBookDefinitions`(`CustomizationContext` customizationContext, `String` webapp, `BookDefinitionId` bookDefinitionId, int limit) Returns `BookDefinition`s in `definitionId` order (create order) scoped to the supplied webapp and marked as public.
`public `BookDefinition`[]` | `getPublicBookDefinitions`(`CustomizationContext` customizationContext, `String` webapp) Getter for returning a list of all `BookDefinitions` scoped to the supplied webapp and marked as public.
`public `BookDefinition`[]` | `getPublicBookDefinitions`(`CustomizationContext` customizationContext, `DesktopDefinitionId` desktopDefinitionId) Getter for returning a list of all `BookDefinitions` scoped to the supplied webapp and marked as public and not currently on the users desktop.
`public `BookDefinition`[]` | `getPublicBookDefinitions`(`CustomizationContext` customizationContext, `String` webapp, `PageDefinitionId` pageDefinitionId) Getter for returning a list of all `BookDefinitions` scoped to the supplied webapp and marked as public aand not currently in the supplied page (pageDefinitionId).
`public `BookDefinition`[]` | `getPublicBookDefinitions`(`CustomizationContext` customizationContext, `String` webapp, `BookDefinitionId` bookDefinitionId) Getter for returning a list of all `BookDefinitions` scoped to the supplied webapp and marked as public and not currently in the supplied book (bookDefinitionId).
`public `NavigableDefinition`` | `moveNavigable`(`CustomizationContext` customizationContext, `DesktopDefinitionId` desktopDefinitionId, `BookDefinitionId` fromParentBookDefinitionId, `BookDefinitionId` toParentBookDefinitionId, `NavigableDefinitionId` navigableDefinitionId, int position, int alignment) Relocate the navigable definition to a new location.
`public void` | `removeNavigable`(`CustomizationContext` customizationContext, `BookGroupId` bookGroupId) Remove a NavigableDefinition (BookDefinition or PageDefinition) from the specified book.
`public `BookDefinition`[]` | `searchPublicBookDefinitions`(`CustomizationContext` customizationContext, `String` webapp, `String` title, int limit) Search for public books given the supplied search string.
`public void` | `setDefaultNavigable`(`CustomizationContext` customizationContext, `BookDefinitionId` parentBookDefinitionId, `NavigableDefinitionId` navigableDefinitionId) Set a navigable (book or page) on a parent page as the default page.
`public void` | `setSessionContext`(`SessionContext` sessionContext)
`public void` | `updateBookDefinition`(`CustomizationContext` customizationContext, `BookDefinition` bookDefinition) Update the persistent store for the supplied `BookDefinition`.
`public void` | `updateMenuDefinition`(`CustomizationContext` customizationContext, `MenuDefinition` menuDefinition) Update the menu definition with the new data.

Methods from class `java.lang.`Object``
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods from class `com.bea.netuix.application.manager.`IBookDefinitionManager``
``addNavigable`, `createBookDefinition`, `deleteBookDefinition`, `deleteBookDefinitionWithCascade`, `deleteBookDefinitionWithReplacement`, `getBookDefinition`, `getBookDefinition`, `getBookDefinitions`, `getBookDefinitions`, `getBookView`, `getPublicBookDefinitions`, `getPublicBookDefinitions`, `getPublicBookDefinitions`, `getPublicBookDefinitions`, `getPublicBookDefinitions`, `moveNavigable`, `removeNavigable`, `searchPublicBookDefinitions`, `setDefaultNavigable`, `updateBookDefinition``

Methods from class `com.bea.netuix.application.manager.`IMenuDefinitionManager``
``createMenuDefinition`, `deleteMenuDefinition`, `deleteMenuDefinitionWithReplacement`, `getMenuDefinition`, `getMenuDefinitionFromFile`, `getMenuDefinitionId`, `getMenuDefinitions`, `getMenuDefinitions`, `getMenuView`, `updateMenuDefinition``

Methods from class `javax.ejb.`SessionBean``
`ejbActivate, ejbPassivate, ejbRemove, setSessionContext`

## Field Detail

### debug

    protected static Debug debug

## Constructor Detail

### BookDefinitionManagerImpl

    public BookDefinitionManagerImpl()

## Method Detail

### addNavigable(CustomizationContext, BookDefinitionId, NavigableDefinitionId, int, int, boolean) Method

    public NavigableInstance addNavigable(CustomizationContext customizationContext,
                                          BookDefinitionId bookDefinitionId,
                                          NavigableDefinitionId navigableDefinitionId,
                                          int position,
                                          int alignment,
                                          boolean isDefault)
         throws RemoteException, ObjectNotFoundException, NotEntitledException, IllegalDependencyException, DuplicateObjectException

Description copied from `IBookDefinitionManager.addNavigable(CustomizationContext, BookDefinitionId, NavigableDefinitionId, int, int, boolean)`

Add a Navigable definition (BookDefinition or PageDefinition) to an existing BookDefinition.

#### Parameters

customizationContext
  customization information such as prefered locales and desktopInstanceId

bookDefinitionId
  the book definition to add the navigable to.

navigableDefinitionId
  the definition id of the navigable defintion from which to add.

position
  the position in the book (or menu) to insert this navigable (starts with 0)

alignment
  position the page from the left (top) or right (bottom)

#### Returns

the Navigable instance which was created.

#### Exceptions

``RemoteException``
``ObjectNotFoundException``
``NotEntitledException``
``IllegalDependencyException``
``DuplicateObjectException``

### createBookDefinition(CustomizationContext, BookDefinition) Method

    public BookDefinition createBookDefinition(CustomizationContext customizationContext,
                                               BookDefinition bookDefinition)
         throws RemoteException, MissingDataException, NotEntitledException

Description copied from `IBookDefinitionManager.createBookDefinition(CustomizationContext, BookDefinition)`

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

#### Parameters

customizationContext
  customization information such as prefered locales and desktopInstanceId

bookDefinition
  the book definition object containing all the required data.

#### Returns

the fully populated BookDefinition object (with id's).

#### Exceptions

``RemoteException``
``MissingDataException``
``NotEntitledException``

### createMenuDefinition(CustomizationContext, MenuDefinition) Method

    public MenuDefinition createMenuDefinition(CustomizationContext customizationContext,
                                               MenuDefinition menuDefinition)
         throws RemoteException, MissingDataException, NotEntitledException

Description copied from `IMenuDefinitionManager.createMenuDefinition(CustomizationContext, MenuDefinition)`
Creates a new MenuView Definition with its placeholders.

#### Parameters

customizationContext
  customization information such as prefered locales and desktopInstanceId

menuDefinition
  the menu data and associated placeholders

#### Returns

a fully populated MenuDefinition

#### Exceptions

``RemoteException``
``MissingDataException``
``NotEntitledException``

### deleteBookDefinition(CustomizationContext, BookDefinitionId) Method

    public void deleteBookDefinition(CustomizationContext customizationContext,
                                     BookDefinitionId bookDefinitionId)
         throws RemoteException, ObjectNotFoundException, ObjectInUseException, NotEntitledException

Description copied from `IBookDefinitionManager.deleteBookDefinition(CustomizationContext, BookDefinitionId)`

Methof for deleting a `BookDefinition` object given a supplied book definition identifier. If the BookDefinition is in use by clients then a `ObjectInUseFound` exception is thrown.

#### Parameters

customizationContext
  customization information such as prefered locales and desktopInstanceId

bookDefinitionId
  the unique book definition identifier.

#### Exceptions

``RemoteException``
``ObjectNotFoundException``
``ObjectInUseException``
``NotEntitledException``

### deleteBookDefinitionWithCascade(CustomizationContext, BookDefinitionId) Method

    public void deleteBookDefinitionWithCascade(CustomizationContext customizationContext,
                                                BookDefinitionId bookDefinitionId)
         throws RemoteException, ObjectNotFoundException, NotEntitledException, ObjectInUseException

Description copied from `IBookDefinitionManager.deleteBookDefinitionWithCascade(CustomizationContext, BookDefinitionId)`

Delete the `BookDefinition` of the supplied book definition identifier and and all `BookInstance` objects associated with this book definition. While this method will cascade delete all the user's and admin's customizations it will complain (`ObjectInUseException`) if the definition is the primary book of a desktop. In that case you may want to try deleteBookDefinitionWithReplacement().

#### Parameters

customizationContext
  customization information such as prefered locales and desktopInstanceId

bookDefinitionId
  the unique book definition identifier of the book to delete.

#### Exceptions

``RemoteException``
``ObjectNotFoundException``
``NotEntitledException``
``ObjectInUseException``

### deleteBookDefinitionWithReplacement(CustomizationContext, BookDefinitionId, BookDefinitionId) Method

    public void deleteBookDefinitionWithReplacement(CustomizationContext customizationContext,
                                                    BookDefinitionId deleteBookDefinitionId,
                                                    BookDefinitionId replacementBookDefinitionId)
         throws RemoteException, ObjectNotFoundException, NotEntitledException

Description copied from `IBookDefinitionManager.deleteBookDefinitionWithReplacement(CustomizationContext, BookDefinitionId, BookDefinitionId)`

Delete an existing book definition and if it is in use replace it's use with thesupplied book defintion.

Note all customization of the deleted book will be lost.

#### Parameters

customizationContext
  customization information such as prefered locales and desktopInstanceId

deleteBookDefinitionId
  the definition id of the book to delete

replacementBookDefinitionId
  the definition id of the book to replace the deleted book.

#### Exceptions

``RemoteException``
``ObjectNotFoundException``
``NotEntitledException``

### deleteMenuDefinition(CustomizationContext, MenuDefinitionId) Method

    public void deleteMenuDefinition(CustomizationContext customizationContext,
                                     MenuDefinitionId menuDefinitionId)
         throws RemoteException, ObjectNotFoundException, ObjectInUseException, NotEntitledException

Description copied from `IMenuDefinitionManager.deleteMenuDefinition(CustomizationContext, MenuDefinitionId)`

Delete a menu definition.

#### Parameters

customizationContext
  customization information such as prefered locales and desktopInstanceId

menuDefinitionId
  the id of the menu definition to delete.

#### Exceptions

``RemoteException``
``ObjectNotFoundException``
``ObjectInUseException``
``NotEntitledException``

### deleteMenuDefinitionWithReplacement(CustomizationContext, MenuDefinitionId, MenuDefinitionId) Method

    public void deleteMenuDefinitionWithReplacement(CustomizationContext customizationContext,
                                                    MenuDefinitionId deleteMenuDefinitionId,
                                                    MenuDefinitionId replacementMenuDefinitionId)
         throws RemoteException, ObjectNotFoundException, NotEntitledException

Description copied from `IMenuDefinitionManager.deleteMenuDefinitionWithReplacement(CustomizationContext, MenuDefinitionId, MenuDefinitionId)`

Delete a menu definition and replace any uses of that menu with a replacement menu. This method is useful for deleting a menu that is in use by book instances and not having to delete those book instances.

#### Parameters

customizationContext
  customization information such as prefered locales and desktopInstanceId

deleteMenuDefinitionId
  the id of the menu definition to delete.

replacementMenuDefinitionId
  the id of the replacement menu

#### Exceptions

``RemoteException``
``ObjectNotFoundException``
``NotEntitledException``

### ejbActivate() Method

    public void ejbActivate()
         throws EJBException, RemoteException

#### Exceptions

``EJBException``
``RemoteException``

### ejbCreate() Method

    public void ejbCreate()
         throws CreateException, RemoteException

#### Exceptions

``CreateException``
``RemoteException``

### ejbPassivate() Method

    public void ejbPassivate()
         throws EJBException, RemoteException

#### Exceptions

``EJBException``
``RemoteException``

### ejbRemove() Method

    public void ejbRemove()
         throws EJBException, RemoteException

#### Exceptions

``EJBException``
``RemoteException``

### getBookDefinition(CustomizationContext, BookDefinitionId) Method

    public BookDefinition getBookDefinition(CustomizationContext customizationContext,
                                            BookDefinitionId bookDefinitionId)
         throws RemoteException

Description copied from `IBookDefinitionManager.getBookDefinition(CustomizationContext, BookDefinitionId)`

Getter for returning a single `BookDefinition` object given a supplied book definition identifier.

#### Parameters

customizationContext
  customization information such as prefered locales and desktopInstanceId

bookDefinitionId
  the unique book definition identifier.

#### Returns

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

#### Exceptions

``RemoteException``

### getBookDefinition(CustomizationContext, String, String) Method

    public BookDefinition getBookDefinition(CustomizationContext customizationContext,
                                            String definitionLabel,
                                            String webAppName)
         throws RemoteException

Description copied from `IBookDefinitionManager.getBookDefinition(CustomizationContext, String, String)`

Getter for returning a single `BookDefinition` object given a supplied book definition label.

#### Parameters

customizationContext
  customization information such as prefered locales and desktopInstanceId

definitionLabel
  the unique book definition identifier.

webAppName
  the webapp this book is scoped to.

#### Returns

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

#### Exceptions

``RemoteException``

### getBookDefinitions(CustomizationContext, String) Method

    public BookDefinition[] getBookDefinitions(CustomizationContext customizationContext,
                                             String webapp)
         throws RemoteException

Description copied from `IBookDefinitionManager.getBookDefinitions(CustomizationContext, String)`

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

#### Parameters

customizationContext
  customization information such as prefered locales and desktopInstanceId

webapp
  the web application these book definitions are scoped to.

#### Returns

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

#### Exceptions

``RemoteException``

### getBookDefinitions(CustomizationContext, String, BookDefinitionId, int) Method

    public BookDefinition[] getBookDefinitions(CustomizationContext customizationContext,
                                             String webapp,
                                             BookDefinitionId bookDefinitionId,
                                             int limit)
         throws RemoteException

Description copied from `IBookDefinitionManager.getBookDefinitions(CustomizationContext, String, BookDefinitionId, int)`

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

#### Parameters

customizationContext
  customization information such as preferred locales.

webapp
  the web application these book definitions are scoped to.

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

#### Exceptions

``RemoteException``

### getBookView(CustomizationContext, BookDefinitionId) Method

    public BookView getBookView(CustomizationContext customizationContext,
                                BookDefinitionId bookDefinitionId)

Description copied from `IBookDefinitionManager.getBookView(CustomizationContext, BookDefinitionId)`

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

#### Parameters

customizationContext
  customization information such as prefered locales and desktopInstanceId.

bookDefinitionId
  the unique bookDefinitionId.

#### Returns

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

### getMenuDefinition(CustomizationContext, MenuDefinitionId) Method

    public MenuDefinition getMenuDefinition(CustomizationContext customizationContext,
                                            MenuDefinitionId menuDefinitionId)
         throws RemoteException

Description copied from `IMenuDefinitionManager.getMenuDefinition(CustomizationContext, MenuDefinitionId)`

Getter for returning a single `MenuDefinition` object given a supplied menu definition identifier.

#### Parameters

customizationContext
  customization information such as prefered locales and desktopInstanceId

menuDefinitionId
  the unique menu definition identifier.

#### Returns

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

#### Exceptions

``RemoteException``

### getMenuDefinitionFromFile(CustomizationContext, String, String) Method

    public MenuDefinition getMenuDefinitionFromFile(CustomizationContext customizationContext,
                                                    String menuFile,
                                                    String webAppName)
         throws RemoteException

Description copied from `IMenuDefinitionManager.getMenuDefinitionFromFile(CustomizationContext, String, String)`

Getter for returning a single `MenuDefinition` object given a supplied menu definition identifier.

#### Parameters

customizationContext
  customization information such as prefered locales and desktopInstanceId

menuFile
  the name of the .menu file

webAppName
  the name of the webapp as defined in the config.xml

#### Returns

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

#### Exceptions

``RemoteException``

### getMenuDefinitionId(CustomizationContext, String, String) Method

    public MenuDefinitionId getMenuDefinitionId(CustomizationContext customizationContext,
                                                String markupName,
                                                String webAppName)
         throws RemoteException

Description copied from `IMenuDefinitionManager.getMenuDefinitionId(CustomizationContext, String, String)`

Getter for returning a single `MenuDefinitionId` object given a supplied menu markup name.

#### Parameters

customizationContext
  customization information such as prefered locales and desktopInstanceId

markupName
  the markup name attribute supplied on the tag,

webAppName
  as defined in the config.xml

#### Returns

menuDefinitionId the unique menu definition identifier or null if none exist.

#### Exceptions

``RemoteException``

### getMenuDefinitions(CustomizationContext, String) Method

    public MenuDefinition[] getMenuDefinitions(CustomizationContext customizationContext,
                                             String webapp)
         throws RemoteException

Description copied from `IMenuDefinitionManager.getMenuDefinitions(CustomizationContext, String)`

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

#### Parameters

customizationContext
  customization information such as prefered locales and desktopInstanceId

webapp
  the web application these menu definitions are scoped to.

#### Returns

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

#### Exceptions

``RemoteException``

### getMenuDefinitions(CustomizationContext, String, MenuDefinitionId, int) Method

    public MenuDefinition[] getMenuDefinitions(CustomizationContext customizationContext,
                                             String webapp,
                                             MenuDefinitionId menuDefinitionId,
                                             int limit)
         throws RemoteException

Description copied from `IMenuDefinitionManager.getMenuDefinitions(CustomizationContext, String, MenuDefinitionId, int)`

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

#### Parameters

customizationContext
  customization information such as preferred locales.

webapp
  the web application these menu definitions are scoped to.

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

#### Exceptions

``RemoteException``

### getMenuView(CustomizationContext, MenuDefinitionId) Method

    public MenuView getMenuView(CustomizationContext customizationContext,
                                MenuDefinitionId menuDefinitionId)
         throws RemoteException

Description copied from `IMenuDefinitionManager.getMenuView(CustomizationContext, MenuDefinitionId)`

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

#### Parameters

customizationContext
  customization information such as prefered locales and desktopInstanceId

menuDefinitionId
  the unique menuDefinitionId.

#### Returns

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

#### Exceptions

``RemoteException``

### getPublicBookDefinitions(CustomizationContext, String, BookDefinitionId, int) Method

    public BookDefinition[] getPublicBookDefinitions(CustomizationContext customizationContext,
                                                   String webapp,
                                                   BookDefinitionId bookDefinitionId,
                                                   int limit)
         throws RemoteException

Description copied from `IBookDefinitionManager.getPublicBookDefinitions(CustomizationContext, String, BookDefinitionId, int)`

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

#### Parameters

customizationContext
  customization information such as preferred locales.

webapp
  the web application these book definitions are scoped to.

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

#### Exceptions

``RemoteException``

### getPublicBookDefinitions(CustomizationContext, String) Method

    public BookDefinition[] getPublicBookDefinitions(CustomizationContext customizationContext,
                                                   String webapp)
         throws RemoteException

Description copied from `IBookDefinitionManager.getPublicBookDefinitions(CustomizationContext, String)`

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

#### Parameters

customizationContext
  customization information such as prefered locales and desktopInstanceId

webapp
  the web application these book definitions are scoped to.

#### Returns

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

#### Exceptions

``RemoteException``

### getPublicBookDefinitions(CustomizationContext, DesktopDefinitionId) Method

    public BookDefinition[] getPublicBookDefinitions(CustomizationContext customizationContext,
                                                   DesktopDefinitionId desktopDefinitionId)
         throws RemoteException

Description copied from `IBookDefinitionManager.getPublicBookDefinitions(CustomizationContext, DesktopDefinitionId)`

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

#### Parameters

customizationContext
  customization information such as prefered locales and desktopInstanceId

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

#### Returns

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

#### Exceptions

``RemoteException``

### getPublicBookDefinitions(CustomizationContext, String, PageDefinitionId) Method

    public BookDefinition[] getPublicBookDefinitions(CustomizationContext customizationContext,
                                                   String webapp,
                                                   PageDefinitionId pageDefinitionId)
         throws RemoteException

Description copied from `IBookDefinitionManager.getPublicBookDefinitions(CustomizationContext, String, PageDefinitionId)`

Getter for returning a list of all `BookDefinitions` scoped to the supplied webapp and marked as public aand not currently in the supplied page (pageDefinitionId).

#### Parameters

customizationContext
  customization information such as prefered locales and desktopInstanceId

webapp
  the web application these book definitions are scoped to.

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

#### Returns

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

#### Exceptions

``RemoteException``

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

    public BookDefinition[] getPublicBookDefinitions(CustomizationContext customizationContext,
                                                   String webapp,
                                                   BookDefinitionId bookDefinitionId)
         throws RemoteException

Description copied from `IBookDefinitionManager.getPublicBookDefinitions(CustomizationContext, String, BookDefinitionId)`

Getter for returning a list of all `BookDefinitions` scoped to the supplied webapp and marked as public and not currently in the supplied book (bookDefinitionId).

#### Parameters

customizationContext
  customization information such as prefered locales and desktopInstanceId

webapp
  the web application these book definitions are scoped to.

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

#### Returns

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

#### Exceptions

``RemoteException``

### moveNavigable(CustomizationContext, DesktopDefinitionId, BookDefinitionId, BookDefinitionId, NavigableDefinitionId, int, int) Method

    public NavigableDefinition moveNavigable(CustomizationContext customizationContext,
                                             DesktopDefinitionId desktopDefinitionId,
                                             BookDefinitionId fromParentBookDefinitionId,
                                             BookDefinitionId toParentBookDefinitionId,
                                             NavigableDefinitionId navigableDefinitionId,
                                             int position,
                                             int alignment)
         throws RemoteException, ObjectNotFoundException, NotEntitledException

Description copied from `IBookDefinitionManager.moveNavigable(CustomizationContext, DesktopDefinitionId, BookDefinitionId, BookDefinitionId, NavigableDefinitionId, int, int)`

Relocate the navigable definition to a new location.

#### Parameters

customizationContext
  the desktop context to which this update applies.

desktopDefinitionId
  the parent book definition id we are moving this navigable from.

fromParentBookDefinitionId
  the parent book definition to move the navigable definition to.

toParentBookDefinitionId
  the identifier identifying the definition to move.

navigableDefinitionId
  the position in the book (or menu) to insert this navigable (starts with 0)

position
  position the page from the left (top) or right (bottom) reference the same book defnition.

#### Returns

a reference to the newly positioned navigableDefinition

#### Exceptions

``RemoteException``
``ObjectNotFoundException``
``NotEntitledException``

### removeNavigable(CustomizationContext, BookGroupId) Method

    public void removeNavigable(CustomizationContext customizationContext,
                                BookGroupId bookGroupId)
         throws RemoteException, ObjectNotFoundException, NotEntitledException

Description copied from `IBookDefinitionManager.removeNavigable(CustomizationContext, BookGroupId)`

Remove a NavigableDefinition (BookDefinition or PageDefinition) from the specified book. This method does not delete the NavigableDefintion it just removes it from the book.

#### Parameters

customizationContext
  the book group id of the navigable to be removed.

#### Exceptions

``RemoteException``
``ObjectNotFoundException``
``NotEntitledException``

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

    public BookDefinition[] searchPublicBookDefinitions(CustomizationContext customizationContext,
                                                      String webapp,
                                                      String title,
                                                      int limit)
         throws RemoteException

Description copied from `IBookDefinitionManager.searchPublicBookDefinitions(CustomizationContext, String, String, int)`

Search for public books given the supplied search string. Books 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 `BookDefinition`s in a consistent order.

#### Parameters

customizationContext
  customization information such as preferred locales.

webapp
  the web application these book definitions are scoped to.

title
  the search string for book 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 `BookDefinition`s no greater than `limit` in size.

#### Exceptions

``RemoteException``

### setDefaultNavigable(CustomizationContext, BookDefinitionId, NavigableDefinitionId) Method

    public void setDefaultNavigable(CustomizationContext customizationContext,
                                    BookDefinitionId parentBookDefinitionId,
                                    NavigableDefinitionId navigableDefinitionId)
         throws RemoteException, ObjectNotFoundException, NotEntitledException

Description copied from `IBookDefinitionManager.setDefaultNavigable(CustomizationContext, BookDefinitionId, NavigableDefinitionId)`

Set a navigable (book or page) on a parent page as the default page.

#### Parameters

customizationContext
  the book definition id of the parent book

parentBookDefinitionId
  the child book or page definition id to become the new defualt page

#### Exceptions

``RemoteException``
``ObjectNotFoundException``
``NotEntitledException``

### setSessionContext(SessionContext) Method

    public void setSessionContext(SessionContext sessionContext)
         throws EJBException, RemoteException

#### Exceptions

``EJBException``
``RemoteException``

### updateBookDefinition(CustomizationContext, BookDefinition) Method

    public void updateBookDefinition(CustomizationContext customizationContext,
                                     BookDefinition bookDefinition)
         throws RemoteException, ObjectNotFoundException, NotEntitledException

Description copied from `IBookDefinitionManager.updateBookDefinition(CustomizationContext, BookDefinition)`

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

#### Parameters

customizationContext
  customization information such as prefered locales and desktopInstanceId

bookDefinition
  the object containing the new data for the book definition.

#### Exceptions

``RemoteException``
``ObjectNotFoundException``
``NotEntitledException``

### updateMenuDefinition(CustomizationContext, MenuDefinition) Method

    public void updateMenuDefinition(CustomizationContext customizationContext,
                                     MenuDefinition menuDefinition)
         throws RemoteException, ObjectNotFoundException, NotEntitledException

Description copied from `IMenuDefinitionManager.updateMenuDefinition(CustomizationContext, MenuDefinition)`

Update the menu definition with the new data.

#### Parameters

customizationContext
  customization information such as prefered locales and desktopInstanceId

menuDefinition
  the menu definition containing the new data

#### Exceptions

``RemoteException``
``ObjectNotFoundException``
``NotEntitledException``