Property

new ReadOnlyRootModel([eventHandlers])

Creates a new asynchronous read-only root model instance.

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

Parameter

Name Type Optional Description

eventHandlers

bo.shared.EventHandlerList

Yes

The event handlers of the instance.

Extends
ModelBase
Fires
ReadOnlyRootModel#event:preFetch
ReadOnlyRootModel#event:postFetch
Throws

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

Property

read-only
$modelName  string

The name of the model. However, it can be hidden by a model property with the same name.

Methods

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

Retrieves a read-only business object 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 read-only business object.

Throws

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

Argument error: The event handlers must be an EventHandlerList object 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 has failed.

checkRules()

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

By default read-only business objects are supposed to be valid.

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

Initializes a business object 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 read-only business object.

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 has failed.

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

Gets the broken rules of the business object.

By default read-only business objects are supposed to be valid.

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.

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

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

By default read-only business objects are supposed to be valid.

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.

isValid() → boolean

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

By default read-only business objects are supposed to be valid.

Returns

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

toCto() → object

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

Returns

object The client transfer object.

Events

postFetch

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

Parameters

Name Type Optional Description

eventArgs

bo.shared.DataPortalEventArgs

 

Data portal event arguments.

newObject

ReadOnlyRootModel

 

The instance of the model after the data portal action.

preFetch

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

Parameters

Name Type Optional Description

eventArgs

bo.shared.DataPortalEventArgs

 

Data portal event arguments.

oldObject

ReadOnlyRootModel

 

The instance of the model before the data portal action.