lib/Ext/data/association/HasMany.js
function(storeConfig) {
        var me = this,
            associatedModel = me.getAssociatedModel(),
            storeName       = me.getStoreName(),
            foreignKey      = me.getForeignKey(),
            primaryKey      = me.getPrimaryKey(),
            filterProperty  = me.getFilterProperty(),
            autoLoad        = me.getAutoLoad(),
            autoSync        = me.getAutoSync();

        return function() {
            var record = this,
                config, filter, store,
                modelDefaults = {},
                listeners = {
                    addrecords: me.onAddRecords,
                    removerecords: me.onRemoveRecords,
                    scope: me
                };

            if (record[storeName] === undefined) {
                if (filterProperty) {
                    filter = {
                        property  : filterProperty,
                        value     : record.get(filterProperty),
                        exactMatch: true
                    };
                } else {
                    filter = {
                        property  : foreignKey,
                        value     : record.get(primaryKey),
                        exactMatch: true
                    };
                }

                modelDefaults[foreignKey] = record.get(primaryKey);

                config = Ext.apply({}, storeConfig, {
                    model        : associatedModel,
                    filters      : [filter],
                    remoteFilter : true,
                    autoSync     : autoSync,
                    modelDefaults: modelDefaults
                });

                store = record[storeName] = Ext.create('Ext.data.Store', config);
                store.boundTo = record;

                store.onAfter(listeners);

                if (autoLoad) {
                    record[storeName].load();
                }
            }

            return record[storeName];
        };
    }
function(storeConfig) {
        var me = this,
            associatedModel = me.getAssociatedModel(),
            storeName       = me.getStoreName(),
            foreignKey      = me.getForeignKey(),
            primaryKey      = me.getPrimaryKey(),
            filterProperty  = me.getFilterProperty(),
            autoLoad        = me.getAutoLoad(),
            autoSync        = me.getAutoSync();

        return function() {
            var record = this,
                config, filter, store,
                modelDefaults = {},
                listeners = {
                    addrecords: me.onAddRecords,
                    removerecords: me.onRemoveRecords,
                    scope: me
                };

            if (record[storeName] === undefined) {
                if (filterProperty) {
                    filter = {
                        property  : filterProperty,
                        value     : record.get(filterProperty),
                        exactMatch: true
                    };
                } else {
                    filter = {
                        property  : foreignKey,
                        value     : record.get(primaryKey),
                        exactMatch: true
                    };
                }

                modelDefaults[foreignKey] = record.get(primaryKey);

                config = Ext.apply({}, storeConfig, {
                    model        : associatedModel,
                    filters      : [filter],
                    remoteFilter : true,
                    autoSync     : autoSync,
                    modelDefaults: modelDefaults
                });

                store = record[storeName] = Ext.create('Ext.data.Store', config);
                store.boundTo = record;

                store.onAfter(listeners);

                if (autoLoad) {
                    record[storeName].load();
                }
            }

            return record[storeName];
        };
    }
function ( storeConfig ) { var me = this , associatedModel = me . getAssociatedModel ( ) , storeName = me . getStoreName ( ) , foreignKey = me . getForeignKey ( ) , primaryKey = me . getPrimaryKey ( ) , filterProperty = me . getFilterProperty ( ) , autoLoad = me . getAutoLoad ( ) , autoSync = me . getAutoSync ( ) ; return function ( ) { var record = this , config , filter , store , modelDefaults = { } , listeners = { addrecords : me . onAddRecords , removerecords : me . onRemoveRecords , scope : me } ; if ( record [ storeName ] === undefined ) { if ( filterProperty ) { filter = { property : filterProperty , value : record . get ( filterProperty ) , exactMatch : true } ; } else { filter = { property : foreignKey , value : record . get ( primaryKey ) , exactMatch : true } ; } modelDefaults [ foreignKey ] = record . get ( primaryKey ) ; config = Ext . apply ( { } , storeConfig , { model : associatedModel , filters : [ filter ] , remoteFilter : true , autoSync : autoSync , modelDefaults : modelDefaults } ) ; store = record [ storeName ] = Ext . create ( 'Ext.data.Store' , config ) ; store . boundTo = record ; store . onAfter ( listeners ) ; if ( autoLoad ) { record [ storeName ] . load ( ) ; } } return record [ storeName ] ; } ; }
@private
@deprecated as of v2.0.0 on an association. Instead use the store configuration.

Creates a function that returns an Ext.data.Store which is configured to load a set of data filtered
by the owner model's primary key - e.g. in a `hasMany` association where Group `hasMany` Users, this function
returns a Store configured to return the filtered set of a single Group's Users.
@return {Function} The store-generating function.
@private @deprecated as of v2 . 0 . 0 on an association . Instead use the store configuration .