docs: function (obj) {
  
              if (!(ariaUtilsType.isObject(obj) || ariaUtilsType.isArray(obj))) {
                  this.$logError(this.INVALID_TYPE_OF_ARGUMENT);
                  return;
              }
  
              /**
               * Contains the initial array or map from which the view is built. This can be changed outside this class at
               * any time. If you add, remove, or replace elements in this array or map, you should call the notifyChange
               * method with CHANGED_INITIAL_ARRAY, so that the view knows it should update its data in the next refresh.
               * If changing the reference with viewobj.initialArray = ..., the call of notifyChange is not necessary (it
               * is automatically detected). If the property of an element inside the array or map is changed you do not
               * need to call notifyChange, unless this property has an incidence on the sort order, in which case you
               * should use CHANGED_SORT_CRITERIA. The initial array or map is never changed by the view itself.
               * @type Array|Object
               */
              this.initialArray = obj;
  
              /**
               * Sort order, which can be SORT_INITIAL, SORT_ASCENDING, or SORT_DESCENDING. If you modify this property,
               * it is not taken into account until the next refresh.
               * @type String
               */
              this.sortOrder = this.SORT_INITIAL;
              /**
               * An id to use to define the type of sort (e.g. "sortByName"). Allows to detect different consecutive sort
               * types. Ignored (and will be set to null) if this.sortOrder == this.SORT_INITIAL. If you modify this
               * property, it is not taken into account until the next refresh.
               * @type String
               */
              this.sortName = null;
              /**
               * Function which returns the sort key, for each element. The first parameter of the callback is of type
               * aria.templates.ViewCfgBeans.Item. Ignored (and will be set to null) if this.sortOrder ==
               * this.SORT_INITIAL. If you modify this property, it is not taken into account until the next refresh.
               * @type aria.core.CfgBeans:Callback
               */
              this.sortKeyGetter = null;
  
              /**
               * Array of items (of type aria.templates.ViewCfgBeans.Item) in the correct sort order. This array must not
               * be modified outside this class, except for the filteredIn property of each element, which can be set
               * (through aria.utils.Json.setValue) to filter in or filter out an element directly.
               * @type Array
               */
              this.items = [];
  
              /**
               * Number of filtered in elements. This property is updated in a refresh if needed.
               * @type Integer
               */
              this.filteredInCount = 0;
  
              /**
               * Number of elements per page. &gt; 0 if in pageMode, -1 otherwise. If you modify this property, it is not
               * taken into account until the next refresh.
               * @type Integer
               */
              this.pageSize = -1;
  
              /**
               * True if page-view is activated, false otherwise. This property must not be modified outside this class.
               * It is updated in a refresh.
               * @type Boolean
               */
              this.pageMode = false;
  
              /**
               * Contains the index of the current page, 0 for the first page. If page mode is disabled, must be 0. If you
               * modify this property, it is not taken into account until the next refresh. You can use
               * setCurrentPageIndex method to both change current page and do the refresh.
               */
              this.currentPageIndex = 0;
  
              /**
               * Array of pages. This property must not be modified outside this class. It is updated in a refresh if
               * needed.
               */
              this.pages = this.EMPTY_PAGES;
  
              /**
               * Keep the last values of modifiable properties to detect changes since the last refresh.
               * @protected
               */
              this._currentState = {
                  initialArray : null,
                  sortOrder : this.sortOrder,
                  sortName : this.sortName,
                  sortKeyGetter : this.sortKeyGetter,
                  pageSize : this.pageSize,
                  currentPageIndex : this.currentPageIndex
              };
              /**
               * Bitwise OR of all notified changes since the last refresh.
               * @protected
               */
              this._changes = 0;
  
              /**
               * Callback structure used when listening to json objects.
               * @type aria.core.CfgBeans:Callback
               * @protected
               */
              this._jsonChangeCallback = {
                  fn : this._notifyDataChange,
                  scope : this
              };
  
              this._refreshInitialArray();
          }