Properties

new EditableRootCollection([eventHandlers])

Creates a new asynchronous editable root collection instance.

The name of the model type available as: <instance>.constructor.modelType, returns 'EditableRootCollection'.

Parameter

Name Type Optional Description

eventHandlers

bo.shared.EventHandlerList

Yes

The event handlers of the instance.

Extends
CollectionBase
Fires
EditableRootCollection#event:preCreate
EditableRootCollection#event:postCreate
EditableRootCollection#event:preFetch
EditableRootCollection#event:postFetch
EditableRootCollection#event:preInsert
EditableRootCollection#event:postInsert
EditableRootCollection#event:preUpdate
EditableRootCollection#event:postUpdate
EditableRootCollection#event:preRemove
EditableRootCollection#event:postRemove
EditableRootCollection#event:preSave
EditableRootCollection#event:postSave
Throws

Argument error: The event handlers must be an EventHandlerList object or null.

Properties

read-only
$modelName  string

The name of the model.

read-only
count  number

The count of the child objects in the collection.

Methods

static
create([eventHandlers], callback)

Creates a new editable business object collection.

Parameters

Name Type Optional Description

eventHandlers

bo.shared.EventHandlerList

Yes

The event handlers of the instance.

callback

external.cbDataPortal

 

Returns a new editable business object collection.

Throws

Argument error: The event handlers must be an EventHandlerList object or null.

Authorization error: The user has no permission to execute the action.

Data portal error: Creating the business object collection has failed.

static
fetch([filter][, method][, eventHandlers], callback)

Retrieves an editable business object collection from the repository.

Parameters

Name Type Optional Description

filter

any type

Yes

The filter criteria.

method

string

Yes

An alternative fetch method of the data access object.

eventHandlers

bo.shared.EventHandlerList

Yes

The event handlers of the instance.

callback

external.cbDataPortal

 

Returns the required editable business object collection.

Throws

Argument error: The method must be a string or null.

Argument error: The event handlers must be an EventHandlerList object or null.

Authorization error: The user has no permission to execute the action.

Data portal error: Fetching the business object collection has failed.

at(index) → EditableChildModel

Gets a collection item at a specific position.

Parameter

Name Type Optional Description

index

number

 

The index of the required item in the collection.

Returns

EditableChildModel The required collection item.

checkRules()

Executes all the validation rules of the business object, including the ones of its child objects.

protected
childHasChanged()

Notes that a child object has changed.
This method is called by child objects.

protected
create(callback)

Initializes a newly created business object collection.
This method is called by a factory method with the same name.

Parameter

Name Type Optional Description

callback

external.cbDataPortal

 

Returns a new editable business object collection.

Throws

Argument error: The callback must be a function.

Authorization error: The user has no permission to execute the action.

Data portal error: Creating the business object collection has failed.

create(index, callback)

Creates a new item and adds it to the collection at the specified index.

Parameters

Name Type Optional Description

index

number

 

The index of the new item.

callback

external.cbDataPortal

 

Returns the newly created business object of the collection.

every(callback) → boolean

Tests whether all items in the collection pass the test implemented by the provided function.

Parameter

Name Type Optional Description

callback

external.cbCollectionItem

 

Function to test for each collection item.

Returns

boolean True when callback returns truthy value for each item, otherwise false.

protected
fetch([filter][, method], callback)

Initializes a business object collection to be retrieved from the repository.
This method is called by a factory method with the same name.

Parameters

Name Type Optional Description

filter

any type

Yes

The filter criteria.

method

string

Yes

An alternative fetch method of the data access object.

callback

external.cbDataPortal

 

Returns the required editable business object collection.

Throws

Argument error: The method must be a string or null.

Argument error: The callback must be a function.

Authorization error: The user has no permission to execute the action.

Data portal error: Fetching the business object collection has failed.

filter(callback) → Array of EditableChildModel

Creates a new array with all collection items that pass the test implemented by the provided function.

Parameter

Name Type Optional Description

callback

external.cbCollectionItem

 

Function to test for each collection item.

Returns

Array of EditableChildModel The new array of collection items.

forEach(callback)

Executes a provided function once per collection item.

Parameter

Name Type Optional Description

callback

external.cbCollectionItem

 

Function that produces an item of the new collection.

fromCto(cto, callback)

Rebuilds the business object collection from a plain object array sent by the client.

Parameters

Name Type Optional Description

cto

object

 

The client transfer object.

callback

external.cbFromCto

 

Returns the eventual error.

getBrokenRules([namespace]) → bo.rules.BrokenRulesOutput

Gets the broken rules of the business object.

Parameter

Name Type Optional Description

namespace

string

Yes

The namespace of the message keys when messages are localizable.

Returns

bo.rules.BrokenRulesOutput The broken rules of the business object.

getModelState() → string

Gets the state of the collection. Valid states are: pristine, created, changed, markedForRemoval and removed.

Returns

string The state of the collection.

getResponse([message][, namespace]) → bo.rules.BrokenRulesResponse

Gets the response to send to the client in case of broken rules.

Parameters

Name Type Optional Description

message

string

Yes

Human-readable description of the reason of the failure.

namespace

string

Yes

The namespace of the message keys when messages are localizable.

Returns

bo.rules.BrokenRulesResponse The broken rules response to send to the client.

isDeleted() → boolean

Indicates whether the business object collection will be deleted from the repository, i.e. its state is markedForRemoval.

Returns

boolean True when the business object collection will be deleted, otherwise false.

isDirty() → boolean

Indicates whether the business object collection itself or any of its child objects differs the one that is stored in the repository, i.e. its state is created, changed or markedForRemoval.

Returns

boolean True when the business object collection has been changed, otherwise false.

isNew() → boolean

Indicates whether the business object collection has been created newly and not has been yet saved, i.e. its state is created.

Returns

boolean True when the business object collection is new, otherwise false.

isSavable() → boolean

Indicates whether the business object collection can be saved to the repository, i.e. it has ben changed and is valid, and the user has permission to save it.

Returns

boolean True when the user can save the business object collection, otherwise false.

isSelfDirty() → boolean

Indicates whether the business object collection itself, ignoring its child objects, differs the one that is stored in the repository.

Returns

boolean True when the business object collection itself has been changed, otherwise false.

isValid() → boolean

Indicates whether all validation rules of all business objects of the collection succeeds. A valid business object collection may have broken rules with severity of success, information and warning.

Returns

boolean True when the business object collection is valid, otherwise false.

map(callback) → Array of any type

Creates a new array with the results of calling a provided function on every item in this collection.

Parameter

Name Type Optional Description

callback

external.cbCollectionItem

 

Function to test for each collection item.

Returns

Array of any type The new array of callback results.

remove()

Marks the business object collection to be deleted from the repository on next save.

save(callback)

Saves the changes of the business object collection to the repository.

Parameter

Name Type Optional Description

callback

external.cbDataPortal

 

Returns the business object collection with the new state after the save.

Throws

Argument error: The callback must be a function.

Authorization error: The user has no permission to execute the action.

Data portal error: Inserting the business object collection has failed.

Data portal error: Updating the business object collection has failed.

Data portal error: Deleting the business object collection has failed.

some(callback) → boolean

Tests whether some item in the collection pass the test implemented by the provided function.

Parameter

Name Type Optional Description

callback

external.cbCollectionItem

 

Function to test for each collection item.

Returns

boolean True when callback returns truthy value for some item, otherwise false.

sort([fnCompare]) → Array of EditableChildModel

Sorts the items of the collection in place and returns the collection.

Parameter

Name Type Optional Description

fnCompare

external.cbCompare

Yes

Function that defines the sort order. If omitted, the collection is sorted according to each character's Unicode code point value, according to the string conversion of each item.

Returns

Array of EditableChildModel The sorted collection.

toCto() → object

Transforms the business object collection to a plain object array to send to the client.

Returns

object The client transfer object.

Events

postCreate

The event arises after the business object collection has been initialized in the repository.

Parameters

Name Type Optional Description

eventArgs

bo.shared.DataPortalEventArgs

 

Data portal event arguments.

newObject

EditableRootCollection

 

The instance of the collection after the data portal action.

postFetch

The event arises after the collection instance has been retrieved from the repository.

Parameters

Name Type Optional Description

eventArgs

bo.shared.DataPortalEventArgs

 

Data portal event arguments.

newObject

EditableRootCollection

 

The collection instance after the data portal action.

postInsert

The event arises after the business object collection has been created in the repository.

Parameters

Name Type Optional Description

eventArgs

bo.shared.DataPortalEventArgs

 

Data portal event arguments.

newObject

EditableRootCollection

 

The instance of the collection after the data portal action.

postRemove

The event arises after the business object collection has been removed from the repository.

Parameters

Name Type Optional Description

eventArgs

bo.shared.DataPortalEventArgs

 

Data portal event arguments.

newObject

EditableRootCollection

 

The instance of the collection after the data portal action.

postSave

The event arises after the business object collection has been saved in the repository. The event is preceded by a postInsert, postUpdate or postRemove event depending on the state of the business object collection.

Parameters

Name Type Optional Description

eventArgs

bo.shared.DataPortalEventArgs

 

Data portal event arguments.

newObject

EditableRootCollection

 

The instance of the collection after the data portal action.

postUpdate

The event arises after the business object collection has been updated in the repository.

Parameters

Name Type Optional Description

eventArgs

bo.shared.DataPortalEventArgs

 

Data portal event arguments.

newObject

EditableRootCollection

 

The instance of the collection after the data portal action.

preCreate

The event arises before the business object collection will be initialized in the repository.

Parameters

Name Type Optional Description

eventArgs

bo.shared.DataPortalEventArgs

 

Data portal event arguments.

oldObject

EditableRootCollection

 

The instance of the collection before the data portal action.

preFetch

The event arises before the collection instance will be retrieved from the repository.

Parameters

Name Type Optional Description

eventArgs

bo.shared.DataPortalEventArgs

 

Data portal event arguments.

oldObject

EditableRootCollection

 

The collection instance before the data portal action.

preInsert

The event arises before the business object collection will be created in the repository.

Parameters

Name Type Optional Description

eventArgs

bo.shared.DataPortalEventArgs

 

Data portal event arguments.

oldObject

EditableRootCollection

 

The instance of the collection before the data portal action.

preRemove

The event arises before the business object collection will be removed from the repository.

Parameters

Name Type Optional Description

eventArgs

bo.shared.DataPortalEventArgs

 

Data portal event arguments.

oldObject

EditableRootCollection

 

The instance of the collection before the data portal action.

preSave

The event arises before the business object collection will be saved in the repository. The event is followed by a preInsert, preUpdate or preRemove event depending on the state of the business object collection.

Parameters

Name Type Optional Description

eventArgs

bo.shared.DataPortalEventArgs

 

Data portal event arguments.

oldObject

EditableRootCollection

 

The instance of the collection before the data portal action.

preUpdate

The event arises before the business object collection will be updated in the repository.

Parameters

Name Type Optional Description

eventArgs

bo.shared.DataPortalEventArgs

 

Data portal event arguments.

oldObject

EditableRootCollection

 

The instance of the collection before the data portal action.