function _AggregationCache(oRequestor, sResourcePath, oAggregation, mQueryOptions,
			bHasGrandTotal) {
		_Cache.call(this, oRequestor, sResourcePath, mQueryOptions, true);

		this.aElements = [];
		this.aElements.$byPredicate = {};
		this.aElements.$count = undefined;
		this.aElements.$created = 0; // required for _Cache#drillDown (see _Cache.from$skip)
		// Whether this cache is a unified cache, using oFirstLevel with ExpandLevels instead of
		// separate group level caches
		this.bUnifiedCache = oAggregation.expandTo >= Number.MAX_SAFE_INTEGER
			|| !!oAggregation.createInPlace;

		this.doReset(oAggregation, mQueryOptions, bHasGrandTotal);
		this.addKeptElement = this.oFirstLevel.addKeptElement; // @borrows ...
		this.removeKeptElement = this.oFirstLevel.removeKeptElement; // @borrows ...
		this.requestSideEffects = this.oFirstLevel.requestSideEffects; // @borrows ...
		this.oTreeState = new _TreeState(oAggregation.$NodeProperty,
			(oNode) => _Helper.getKeyFilter(oNode, this.sMetaPath, this.getTypes()));
	}
******************************************************************************************
	// _AggregationCache
	//*********************************************************************************************

	/**
Creates a cache for data aggregation that performs requests using the given requestor.
Note: The paths in $expand and $select will always be sorted in the cache's query string.
This kind of cache is only used if grand totals or group levels are involved!

@param {sap.ui.model.odata.v4.lib._Requestor} oRequestor
  The requestor
@param {string} sResourcePath
  A resource path relative to the service URL
@param {object} oAggregation
  An object holding the information needed for data aggregation; see also "OData Extension
  for Data Aggregation Version 4.0"; must already be normalized by
  {@link _AggregationHelper.buildApply}
@param {object} mQueryOptions
  A map of key-value pairs representing the query string
@param {boolean} bHasGrandTotal
  Whether a grand total is needed

@alias sap.ui.model.odata.v4.lib._AggregationCache
@borrows sap.ui.model.odata.v4.lib._CollectionCache#addKeptElement as #addKeptElement
@borrows sap.ui.model.odata.v4.lib._CollectionCache#removeKeptElement as #removeKeptElement
@borrows sap.ui.model.odata.v4.lib._CollectionCache#requestSideEffects as #requestSideEffects
@constructor
@extends sap.ui.model.odata.v4.lib._Cache
@private