function(data) {
        var fieldsCollection = this.getModel().getFields();

        /*
         * We check here whether the fields are dirty since the last read.
         * This works around an issue when a Model is used for both a Tree and another
         * source, because the tree decorates the model with extra fields and it causes
         * issues because the readers aren't notified.
         */
        if (fieldsCollection.isDirty) {
            this.buildExtractors(true);
            delete fieldsCollection.isDirty;
        }

        if (this.rootAccessor) {
            return this.rootAccessor.call(this, data);
        } else {
            return data;
        }
    }
function(data) {
        var fieldsCollection = this.getModel().getFields();

        /*
         * We check here whether the fields are dirty since the last read.
         * This works around an issue when a Model is used for both a Tree and another
         * source, because the tree decorates the model with extra fields and it causes
         * issues because the readers aren't notified.
         */
        if (fieldsCollection.isDirty) {
            this.buildExtractors(true);
            delete fieldsCollection.isDirty;
        }

        if (this.rootAccessor) {
            return this.rootAccessor.call(this, data);
        } else {
            return data;
        }
    }
function ( data ) { var fieldsCollection = this . getModel ( ) . getFields ( ) ; /*
         * We check here whether the fields are dirty since the last read.
         * This works around an issue when a Model is used for both a Tree and another
         * source, because the tree decorates the model with extra fields and it causes
         * issues because the readers aren't notified.
         */ if ( fieldsCollection . isDirty ) { this . buildExtractors ( true ) ; delete fieldsCollection . isDirty ; } if ( this . rootAccessor ) { return this . rootAccessor . call ( this , data ) ; } else { return data ; } }
We create this method because `root` is now a config so `getRoot` is already defined, but in the old
data package `getRoot` was passed a data argument and it would return the data inside of the `root`
property. This method handles both cases.
@param {Array/Object} [data]
@return {String/Object} Returns the config root value if this method was called without passing
data. Else it returns the object in the data bound to the root.
@private
We create this method because root is now a config so getRoot is already defined but in the old data package getRoot was passed a data argument and it would return the data inside of the root property . This method handles both cases .