#
        new Data/BeanCollection()
    
    
    
        Base bean collection class. It extends Backbone.Collection.
A bean collection is a collection of beans. To instantiate a bean collection,
you need to use Data/DataManager#createBeanCollection.
Example of usage:
The following snippet will create a collection of bean which belongs to the
module 'Accounts':
const DataManager = require('data/data-manager');
let accounts = DataManager.createBeanCollection('Accounts');
accounts.add({name: 'account1', industry: 'Banking'});
Filtering and searching
The collection's Data/BeanCollection#fetch method supports filter and
search options. For example, to search favorite accounts that have the string
"Acme" in their name:
const DataManager = require('data/data-manager');
let accounts = DataManager.createBeanCollection('Accounts');
accounts.fetch({
    favorites: true,
    query: "Acme"
});
     
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
     
    
    
    
     
    
    
        Members
        
            
    #
    (readonly) favorites :boolean
    Flag indicating if a collection contains current user's favorite
items.
 
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
        
            
    #
    fields :Array
    Field names.
A list of fields that are populated on collection members.
This property is used to build the fields URL parameter when
fetching beans.
 
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
        
            
    #
    filterDef :Array
    Filter definition to filter the collection by.
 
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
        
            
    #
    link :Object
    Reference to a relationship.
 
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
        
            
    #
    link
    Link information.
{
    name: link name,
    bean: reference to the related bean
}
 
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
        
            
    The default model of a bean collection is a Data/Bean.
 
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
        
            
    #
    (readonly) module :string
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
        
            
    #
    (readonly) myItems :boolean
    Flag indicating if a collection contains items assigned to the
current user.
 
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
        
            
    #
    (readonly) offset :number
    Current collection offset for pagination.
 
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
        
            
    #
    (readonly) query :string
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
        
            
    #
    (readonly) total :number
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
        
    
    
        Methods
        
            
    
    
        #
        (protected) _decrementTotal()
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
        
            
    
    
        #
        abortFetchRequest()
    
    
    
        Aborts the currently active fetch request.
     
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
        
            
    
    
    
    
        Keeps track of the added models.
     
    
        Parameters:
        
    
    
        
        | Name | 
        
        Type | 
        
        
        Description | 
    
    
    
    
        
            
                models | 
            
            
            
                
Object
|
Array.<Object>
|
Data/Bean
|
Array.<Data/Bean>
            
             | 
            
            
            The models to add.  | 
        
    
        
            
                options | 
            
            
            
                
Object
            
             | 
            
            
            A hash of options.  | 
        
    
    
     
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
        
            
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    Returns:
        
            
    The new collection with an identical
list of models as this one.
 
    - 
        Type
    
 
    - 
        
Data/BeanCollection
    
 
            
     
        
            
    
    
        #
        constructor(models, optionsopt)
    
    
    
        Prepares related bean collections and attach collection plugins.
     
    
        Parameters:
        
    
    
        
        | Name | 
        
        Type | 
        
        Attributes | 
        
        
        Description | 
    
    
    
    
        
            
                models | 
            
            
            
                
Array.<Object>
|
Array.<Data/Bean>
            
             | 
            
                
                
                
                
                 | 
            
            
            Initial array of models.  | 
        
    
        
            
                options | 
            
            
            
                
Object
            
             | 
            
                
                
                    <optional> 
                
                
                
                 | 
            
            
            A hash of options. 
                Properties
                
    
    
        
        | Name | 
        
        Type | 
        
        Attributes | 
        
        
        Description | 
     
    
    
    
        
            
                link | 
            
            
            
                
Object
            
             | 
            
                
                
                    <optional> 
                
                
                
                 | 
            
            
            A link specification.  | 
         
    
    
 
             | 
        
    
    
     
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
        
            
    
    
        #
        dispose()
    
    
    
        Disposes this collection.
     
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
        
            
    
    
        #
        fetch(optionsopt) → {SUGAR.HttpRequest}
    
    
    
        Fetches beans. See Data/BeanCollection#paginate for details
about pagination options.
Only one fetch request can be executed at a time - previous fetch
requests will be aborted.
     
    
        Parameters:
        
    
    
        
        | Name | 
        
        Type | 
        
        Attributes | 
        
        
        Description | 
    
    
    
    
        
            
                options | 
            
            
            
                
Object
            
             | 
            
                
                
                    <optional> 
                
                
                
                 | 
            
            
            Fetch options. 
                Properties
                
    
    
        
        | Name | 
        
        Type | 
        
        Attributes | 
        
        
        Description | 
     
    
    
    
        
            
                relate | 
            
            
            
                
boolean
            
             | 
            
                
                
                    <optional> 
                
                
                
                 | 
            
            
            true if relationships should be
fetched. false otherwise.
  | 
         
    
        
            
                myItems | 
            
            
            
                
boolean
            
             | 
            
                
                
                    <optional> 
                
                
                
                 | 
            
            
            true if only records assigned to
the current user should be fetched. false otherwise.
  | 
         
    
        
            
                favorites | 
            
            
            
                
boolean
            
             | 
            
                
                
                    <optional> 
                
                
                
                 | 
            
            
            true if favorited records should
be fetched. false otherwise.
  | 
         
    
        
            
                add | 
            
            
            
                
boolean
            
             | 
            
                
                
                    <optional> 
                
                
                
                 | 
            
            
            true if new records should be appended
to the collection. false otherwise.
  | 
         
    
        
            
                query | 
            
            
            
                
string
            
             | 
            
                
                
                    <optional> 
                
                
                
                 | 
            
            
            Search query string.  | 
         
    
        
            
                success | 
            
            
            
                
function
            
             | 
            
                
                
                    <optional> 
                
                
                
                 | 
            
            
            The success callback to execute.  | 
         
    
        
            
                error | 
            
            
            
                
function
            
             | 
            
                
                
                    <optional> 
                
                
                
                 | 
            
            
            The error callback to execute.  | 
         
    
    
 
             | 
        
    
    
     
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    Returns:
        
            
    The created fetch request.
 
    - 
        Type
    
 
    - 
        
SUGAR.HttpRequest
    
 
            
     
        
            
    
    
        #
        fetchTotal(optionsopt) → {SUGAR.HttpRequest|undefined}
    
    
    
        Fetches the total amount of records on the bean collection, and sets
it on the Data/BeanCollection#total property.
Returns the total amount of filtered records if a filterDef
property is set on the collection.
     
    
        Parameters:
        
    
    
        
        | Name | 
        
        Type | 
        
        Attributes | 
        
        
        Description | 
    
    
    
    
        
            
                options | 
            
            
            
                
Object
            
             | 
            
                
                
                    <optional> 
                
                
                
                 | 
            
            
            Fetch total options. 
                Properties
                
    
    
        
        | Name | 
        
        Type | 
        
        Attributes | 
        
        
        Description | 
     
    
    
    
        
            
                success | 
            
            
            
                
function
            
             | 
            
                
                
                    <optional> 
                
                
                
                 | 
            
            
            Success callback.  | 
         
    
        
            
                complete | 
            
            
            
                
function
            
             | 
            
                
                
                    <optional> 
                
                
                
                 | 
            
            
            Complete callback.  | 
         
    
        
            
                error | 
            
            
            
                
function
            
             | 
            
                
                
                    <optional> 
                
                
                
                 | 
            
            
            Error callback.  | 
         
    
    
 
             | 
        
    
    
     
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    Returns:
        
            
    - 
        Type
    
 
    - 
        
SUGAR.HttpRequest
|
undefined
    
 
            
     
        
            
    
    
        #
        getDelta() → {Object}
    
    
    
        Gets a hash of unsynced changes operated on the collection.
Adds the relationship fields for records to be linked.
     
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    Returns:
        
            
    A hash representing the unsynced changes.
 
    - 
        Type
    
 
    - 
        
Object
    
 
            
     
        
            
    
    
        #
        getFetchRequest() → {SUGAR.HttpRequest}
    
    
    
        Gets the currently active fetch request.
     
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    Returns:
        
            
    The currently active http fetch request.
 
    - 
        Type
    
 
    - 
        
SUGAR.HttpRequest
    
 
            
     
        
            
    
    
        #
        getModelIndex(model) → {number}
    
    
    
        Returns the index of the model in this collection.
     
    
        Parameters:
        
    
    
        
        | Name | 
        
        Type | 
        
        
        Description | 
    
    
    
    
        
            
                model | 
            
            
            
                
Object
            
             | 
            
            
            Current model.  | 
        
    
    
     
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    Returns:
        
            
    The index of the passed model in this array.
 
    - 
        Type
    
 
    - 
        
number
    
 
            
     
        
            
    
    
        #
        getNext(current, callback)
    
    
    
        Returns the next model in a collection, paginating if needed.
     
    
        Parameters:
        
    
    
        
        | Name | 
        
        Type | 
        
        
        Description | 
    
    
    
    
        
            
                current | 
            
            
            
                
Object
            
             | 
            
            
            Current model or id of a model.  | 
        
    
        
            
                callback | 
            
            
            
                
Object
            
             | 
            
            
            Callback for success call.  | 
        
    
    
     
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
        
            
    
    
        #
        getOption(keyopt) → {*}
    
    
    
        Gets one or all persistent fetch options.
     
    
        Parameters:
        
    
    
        
        | Name | 
        
        Type | 
        
        Attributes | 
        
        
        Description | 
    
    
    
    
        
            
                key | 
            
            
            
                
string
|
Object
            
             | 
            
                
                
                    <optional> 
                
                
                
                 | 
            
            
            The name of the option to retrieve, or
nothing to retrieve all options.  | 
        
    
    
     
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    Returns:
        
            
    A specific option, or the list of options.
 
    - 
        Type
    
 
    - 
        
*
    
 
            
     
        
            
    
    
        #
        getPageNumber(optionsopt) → {number}
    
    
    
        Gets the current page of collection being displayed depending on the
offset.
     
    
        Parameters:
        
    
    
        
        | Name | 
        
        Type | 
        
        Attributes | 
        
        
        Description | 
    
    
    
    
        
            
                options | 
            
            
            
                
Object
            
             | 
            
                
                
                    <optional> 
                
                
                
                 | 
            
            
            Fetch options used when paginating. 
                Properties
                
    
    
        
        | Name | 
        
        Type | 
        
        Attributes | 
        
        
        Default | 
        
        Description | 
     
    
    
    
        
            
                limit | 
            
            
            
                
number
            
             | 
            
                
                
                    <optional> 
                
                
                
                 | 
            
            
                
                
                    App.config.maxQueryResult
                
                 | 
            
            The size of
each page.  | 
         
    
    
 
             | 
        
    
    
     
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
        
            
    
    
        #
        getPrev(current, callback)
    
    
    
        Finds the previous model in a collection and calls a function on it.
     
    
        Parameters:
        
    
    
        
        | Name | 
        
        Type | 
        
        
        Description | 
    
    
    
    
        
            
                current | 
            
            
            
                
Object
            
             | 
            
            
            Current model or id of a model.  | 
        
    
        
            
                callback | 
            
            
            
                
function
            
             | 
            
            
            Callback for success call.  | 
        
    
    
     
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
        
            
    
    
        #
        hasAtLeast(amount, optionsopt) → {SUGAR.HttpRequest}
    
    
    
        A convenience method that checks to see if there are at least the
amount of records passed in amount. Also passes to a provided
success callback the length of records up to amount, and if there
are more records to be fetched (hasMore).
Fetches the partial amount of filtered records if a filterDef
property is set on the collection.
     
    
        Parameters:
        
    
    
        
        | Name | 
        
        Type | 
        
        Attributes | 
        
        
        Description | 
    
    
    
    
        
            
                amount | 
            
            
            
                
number
            
             | 
            
                
                
                
                
                 | 
            
            
            The number of records to check if there are a
minimum of.  | 
        
    
        
            
                options | 
            
            
            
                
Object
            
             | 
            
                
                
                    <optional> 
                
                
                
                 | 
            
            
            Fetch partial total options. 
                Properties
                
    
    
        
        | Name | 
        
        Type | 
        
        Attributes | 
        
        
        Description | 
     
    
    
    
        
            
                filterDef | 
            
            
            
                
Object
            
             | 
            
                
                
                    <optional> 
                
                
                
                 | 
            
            
            Filter definition to be applied.  | 
         
    
        
            
                success | 
            
            
            
                
function
            
             | 
            
                
                
                    <optional> 
                
                
                
                 | 
            
            
            Success callback.  | 
         
    
        
            
                complete | 
            
            
            
                
function
            
             | 
            
                
                
                    <optional> 
                
                
                
                 | 
            
            
            Complete callback.  | 
         
    
        
            
                error | 
            
            
            
                
function
            
             | 
            
                
                
                    <optional> 
                
                
                
                 | 
            
            
            Error callback.  | 
         
    
    
 
             | 
        
    
    
     
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    Returns:
        
            
    Result of SUGAR.Api#call.
 
    - 
        Type
    
 
    - 
        
SUGAR.HttpRequest
    
 
            
     
        
            
    
    
        #
        hasDelta() → {boolean}
    
    
    
        Checks if there is anything in the deltas.
     
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    Returns:
        
            
    true if some records are to be created, linked
or unlinked to the bean.
 
    - 
        Type
    
 
    - 
        
boolean
    
 
            
     
        
            
    
    
        #
        hasNextModel(current) → {boolean}
    
    
    
        Checks whether is there next model in collection.
     
    
        Parameters:
        
    
    
        
        | Name | 
        
        Type | 
        
        
        Description | 
    
    
    
    
        
            
                current | 
            
            
            
                
Object
            
             | 
            
            
            Current model or id of a model.  | 
        
    
    
     
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    Returns:
        
            
    true if has next model, false otherwise.
 
    - 
        Type
    
 
    - 
        
boolean
    
 
            
     
        
            
    
    
        #
        hasPreviousModel(current) → {boolean}
    
    
    
        Checks whether is there previous model in this collection.
     
    
        Parameters:
        
    
    
        
        | Name | 
        
        Type | 
        
        
        Description | 
    
    
    
    
        
            
                current | 
            
            
            
                
Object
            
             | 
            
            
            Current model or id of a model.  | 
        
    
    
     
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    Returns:
        
            
    true if has previous model, false otherwise.
 
    - 
        Type
    
 
    - 
        
boolean
    
 
            
     
        
            
    
    
        #
        initialize(models, options)
    
    
    
    
        Parameters:
        
    
    
        
        | Name | 
        
        Type | 
        
        
        Description | 
    
    
    
    
        
            
                models | 
            
            
            
                
Array.<Object>
|
Array.<Data/Bean>
            
             | 
            
            
            Initial array of models.  | 
        
    
        
            
                options | 
            
            
            
                
Object
            
             | 
            
            
            Backbone collection options.  | 
        
    
    
     
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
        
            
    
    
        #
        paginate(optionsopt)
    
    
    
        Paginates a collection. This methods calls
Data/BeanCollection#fetch, hence it
supports the same options as well as the one described below.
     
    
        Parameters:
        
    
    
        
        | Name | 
        
        Type | 
        
        Attributes | 
        
        
        Description | 
    
    
    
    
        
            
                options | 
            
            
            
                
Object
            
             | 
            
                
                
                    <optional> 
                
                
                
                 | 
            
            
            Fetch options. 
                Properties
                
    
    
        
        | Name | 
        
        Type | 
        
        Attributes | 
        
        
        Default | 
        
        Description | 
     
    
    
    
        
            
                page | 
            
            
            
                
number
            
             | 
            
                
                
                    <optional> 
                
                
                
                 | 
            
            
                
                
                    1
                
                 | 
            
            Page index from the current page to
paginate to.  | 
         
    
    
 
             | 
        
    
    
     
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
        
            
    
    
    
    
        Keeps track of the removed models.
     
    
        Parameters:
        
    
    
        
        | Name | 
        
        Type | 
        
        
        Description | 
    
    
    
    
        
            
                models | 
            
            
            
                
Object
|
Array.<Object>
|
Data/Bean
|
Array.<Data/Bean>
            
             | 
            
            
            The models to
remove.  | 
        
    
        
            
                options | 
            
            
            
                
Object
            
             | 
            
            
            A hash of options.  | 
        
    
    
     
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
        
            
    
    
    
    
        Keeps track of the unsynced changes on this collection.
     
    
        Parameters:
        
    
    
        
        | Name | 
        
        Type | 
        
        
        Description | 
    
    
    
    
        
            
                models | 
            
            
            
                
Object
|
Array.<Object>
|
Data/Bean
|
Array.<Data/Bean>
            
             | 
            
            
            The models to
reset the collection with.  | 
        
    
        
            
                options | 
            
            
            
                
Object
            
             | 
            
            
            A hash of options.  | 
        
    
    
     
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    Returns:
        
            
    The model(s) you have reset the
collection with.
 
    - 
        Type
    
 
    - 
        
Data/Bean
|
Array.<Data/Bean>
    
 
            
     
        
            
    
    
        #
        resetDelta()
    
    
    
        Resets the delta object representing the unsaved collection changes.
     
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
        
            
    
    
    
    
        Resets pagination properties on this collection to initial values.
     
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
        
            
    
    
    
    
        Sets the default fetch options (one or many) on the model.
     
    
        Parameters:
        
    
    
        
        | Name | 
        
        Type | 
        
        Attributes | 
        
        
        Description | 
    
    
    
    
        
            
                key | 
            
            
            
                
string
|
Object
            
             | 
            
                
                
                
                
                 | 
            
            
            The name of the attribute, or a hash of
attributes.  | 
        
    
        
            
                val | 
            
            
            
                
*
            
             | 
            
                
                
                    <optional> 
                
                
                
                 | 
            
            
            The default value for the key argument.  | 
        
    
    
     
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
        
            
    
    
        #
        toString() → {string}
    
    
    
        Returns string representation useful for debugging.
Format:
coll:[module-name]-[length]  or
coll:[related-module-name]/[id]/[module-name]-[length]
if it's a collection of related beans.
     
    
    
    
    
    
    
    
    
    
    
    
    
    
        
    
    
    
    
    
    Returns:
        
            
    The string representation of this collection.
 
    - 
        Type
    
 
    - 
        
string
    
 
            
     
        
            
    
    
    
    
        Unsets a default fetch option (or all).
     
    
        Parameters:
        
    
    
        
        | Name | 
        
        Type | 
        
        Attributes | 
        
        
        Description | 
    
    
    
    
        
            
                key | 
            
            
            
                
string
|
Object
            
             | 
            
                
                
                    <optional> 
                
                
                
                 | 
            
            
            The name of the option to unset, or
nothing to unset all options.  |