src/sap.ui.core/src/sap/ui/model/analytics/odata4analytics.js
function(oModel, oEntityType, oEntitySet, oParameterization, oAssocFromParamsToResult) {
			this._oModel = oModel;
			this._oEntityType = oEntityType;
			this._oEntitySet = oEntitySet;
			this._oParameterization = oParameterization;

			this._oDimensionSet = {};
			this._oMeasureSet = {};

			// parse entity type for analytic semantics described by annotations
			var aProperty = oEntityType.getTypeDescription().property;
			var oAttributeForPropertySet = {};
			for (var i = -1, oProperty; (oProperty = aProperty[++i]) !== undefined;) {
				if (oProperty.extensions == undefined) {
					continue;
				}
				for (var j = -1, oExtension; (oExtension = oProperty.extensions[++j]) !== undefined;) {

					if (!oExtension.namespace == odata4analytics.constants.SAP_NAMESPACE) {
						continue;
					}

					switch (oExtension.name) {
					case "aggregation-role":
						switch (oExtension.value) {
						case "dimension": {
							var oDimension = new odata4analytics.Dimension(this, oProperty);
							this._oDimensionSet[oDimension.getName()] = oDimension;
							break;
							}
						case "measure": {
							var oMeasure = new odata4analytics.Measure(this, oProperty);
							this._oMeasureSet[oMeasure.getName()] = oMeasure;
							break;
							}
						case "totaled-properties-list":
							this._oTotaledPropertyListProperty = oProperty;
							break;
						default:
							}
						break;
					case "attribute-for": {
						var oDimensionAttribute = new odata4analytics.DimensionAttribute(this, oProperty);
						var oKeyProperty = oDimensionAttribute.getKeyProperty();
						oAttributeForPropertySet[oKeyProperty.name] = oDimensionAttribute;
						break;
						}
					default:
					}
				}
			}

			// assign dimension attributes to the respective dimension objects
			for ( var sDimensionAttributeName in oAttributeForPropertySet) {
				var oDimensionAttribute2 = oAttributeForPropertySet[sDimensionAttributeName];
				oDimensionAttribute2.getDimension().addAttribute(oDimensionAttribute2);
			}

			// apply workaround for missing text properties if requested
			if (oModel._oActivatedWorkarounds.IdentifyTextPropertiesByName) {
				var aMatchedTextPropertyName = [];
				for ( var oDimName in this._oDimensionSet) {
					var oDimension2 = this._oDimensionSet[oDimName];
					if (!oDimension2.getTextProperty()) {
						var oTextProperty = null; // order of matching is
						// significant!
						oTextProperty = oEntityType.findPropertyByName(oDimName + "Name");
						if (!oTextProperty) {
							oTextProperty = oEntityType.findPropertyByName(oDimName + "Text");
						}
						if (!oTextProperty) {
							oTextProperty = oEntityType.findPropertyByName(oDimName + "Desc");
						}
						if (!oTextProperty) {
							oTextProperty = oEntityType.findPropertyByName(oDimName + "Description");
						}
						if (oTextProperty) { // any match?
							oDimension2.setTextProperty(oTextProperty); // link
							// dimension
							// with text
							// property
							aMatchedTextPropertyName.push(oTextProperty.name);
						}
					}
				}
				// make sure that any matched text property is not exposed as
				// dimension (according to spec)
				for (var t = -1, sPropertyName; (sPropertyName = aMatchedTextPropertyName[++t]) !== undefined;) {
					delete this._oDimensionSet[sPropertyName];
				}
			}
		}
function(oModel, oEntityType, oEntitySet, oParameterization, oAssocFromParamsToResult) {
			this._oModel = oModel;
			this._oEntityType = oEntityType;
			this._oEntitySet = oEntitySet;
			this._oParameterization = oParameterization;

			this._oDimensionSet = {};
			this._oMeasureSet = {};

			// parse entity type for analytic semantics described by annotations
			var aProperty = oEntityType.getTypeDescription().property;
			var oAttributeForPropertySet = {};
			for (var i = -1, oProperty; (oProperty = aProperty[++i]) !== undefined;) {
				if (oProperty.extensions == undefined) {
					continue;
				}
				for (var j = -1, oExtension; (oExtension = oProperty.extensions[++j]) !== undefined;) {

					if (!oExtension.namespace == odata4analytics.constants.SAP_NAMESPACE) {
						continue;
					}

					switch (oExtension.name) {
					case "aggregation-role":
						switch (oExtension.value) {
						case "dimension": {
							var oDimension = new odata4analytics.Dimension(this, oProperty);
							this._oDimensionSet[oDimension.getName()] = oDimension;
							break;
							}
						case "measure": {
							var oMeasure = new odata4analytics.Measure(this, oProperty);
							this._oMeasureSet[oMeasure.getName()] = oMeasure;
							break;
							}
						case "totaled-properties-list":
							this._oTotaledPropertyListProperty = oProperty;
							break;
						default:
							}
						break;
					case "attribute-for": {
						var oDimensionAttribute = new odata4analytics.DimensionAttribute(this, oProperty);
						var oKeyProperty = oDimensionAttribute.getKeyProperty();
						oAttributeForPropertySet[oKeyProperty.name] = oDimensionAttribute;
						break;
						}
					default:
					}
				}
			}

			// assign dimension attributes to the respective dimension objects
			for ( var sDimensionAttributeName in oAttributeForPropertySet) {
				var oDimensionAttribute2 = oAttributeForPropertySet[sDimensionAttributeName];
				oDimensionAttribute2.getDimension().addAttribute(oDimensionAttribute2);
			}

			// apply workaround for missing text properties if requested
			if (oModel._oActivatedWorkarounds.IdentifyTextPropertiesByName) {
				var aMatchedTextPropertyName = [];
				for ( var oDimName in this._oDimensionSet) {
					var oDimension2 = this._oDimensionSet[oDimName];
					if (!oDimension2.getTextProperty()) {
						var oTextProperty = null; // order of matching is
						// significant!
						oTextProperty = oEntityType.findPropertyByName(oDimName + "Name");
						if (!oTextProperty) {
							oTextProperty = oEntityType.findPropertyByName(oDimName + "Text");
						}
						if (!oTextProperty) {
							oTextProperty = oEntityType.findPropertyByName(oDimName + "Desc");
						}
						if (!oTextProperty) {
							oTextProperty = oEntityType.findPropertyByName(oDimName + "Description");
						}
						if (oTextProperty) { // any match?
							oDimension2.setTextProperty(oTextProperty); // link
							// dimension
							// with text
							// property
							aMatchedTextPropertyName.push(oTextProperty.name);
						}
					}
				}
				// make sure that any matched text property is not exposed as
				// dimension (according to spec)
				for (var t = -1, sPropertyName; (sPropertyName = aMatchedTextPropertyName[++t]) !== undefined;) {
					delete this._oDimensionSet[sPropertyName];
				}
			}
		}
function ( oModel , oEntityType , oEntitySet , oParameterization , oAssocFromParamsToResult ) { this . _oModel = oModel ; this . _oEntityType = oEntityType ; this . _oEntitySet = oEntitySet ; this . _oParameterization = oParameterization ; this . _oDimensionSet = { } ; this . _oMeasureSet = { } ; // parse entity type for analytic semantics described by annotations var aProperty = oEntityType . getTypeDescription ( ) . property ; var oAttributeForPropertySet = { } ; for ( var i = - 1 , oProperty ; ( oProperty = aProperty [ ++ i ] ) !== undefined ; ) { if ( oProperty . extensions == undefined ) { continue ; } for ( var j = - 1 , oExtension ; ( oExtension = oProperty . extensions [ ++ j ] ) !== undefined ; ) { if ( ! oExtension . namespace == odata4analytics . constants . SAP_NAMESPACE ) { continue ; } switch ( oExtension . name ) { case "aggregation-role" : switch ( oExtension . value ) { case "dimension" : { var oDimension = new odata4analytics . Dimension ( this , oProperty ) ; this . _oDimensionSet [ oDimension . getName ( ) ] = oDimension ; break ; } case "measure" : { var oMeasure = new odata4analytics . Measure ( this , oProperty ) ; this . _oMeasureSet [ oMeasure . getName ( ) ] = oMeasure ; break ; } case "totaled-properties-list" : this . _oTotaledPropertyListProperty = oProperty ; break ; default : } break ; case "attribute-for" : { var oDimensionAttribute = new odata4analytics . DimensionAttribute ( this , oProperty ) ; var oKeyProperty = oDimensionAttribute . getKeyProperty ( ) ; oAttributeForPropertySet [ oKeyProperty . name ] = oDimensionAttribute ; break ; } default : } } } // assign dimension attributes to the respective dimension objects for ( var sDimensionAttributeName in oAttributeForPropertySet ) { var oDimensionAttribute2 = oAttributeForPropertySet [ sDimensionAttributeName ] ; oDimensionAttribute2 . getDimension ( ) . addAttribute ( oDimensionAttribute2 ) ; } // apply workaround for missing text properties if requested if ( oModel . _oActivatedWorkarounds . IdentifyTextPropertiesByName ) { var aMatchedTextPropertyName = [ ] ; for ( var oDimName in this . _oDimensionSet ) { var oDimension2 = this . _oDimensionSet [ oDimName ] ; if ( ! oDimension2 . getTextProperty ( ) ) { var oTextProperty = null ; // order of matching is // significant! oTextProperty = oEntityType . findPropertyByName ( oDimName + "Name" ) ; if ( ! oTextProperty ) { oTextProperty = oEntityType . findPropertyByName ( oDimName + "Text" ) ; } if ( ! oTextProperty ) { oTextProperty = oEntityType . findPropertyByName ( oDimName + "Desc" ) ; } if ( ! oTextProperty ) { oTextProperty = oEntityType . findPropertyByName ( oDimName + "Description" ) ; } if ( oTextProperty ) { // any match? oDimension2 . setTextProperty ( oTextProperty ) ; // link // dimension // with text // property aMatchedTextPropertyName . push ( oTextProperty . name ) ; } } } // make sure that any matched text property is not exposed as // dimension (according to spec) for ( var t = - 1 , sPropertyName ; ( sPropertyName = aMatchedTextPropertyName [ ++ t ] ) !== undefined ; ) { delete this . _oDimensionSet [ sPropertyName ] ; } } }
initialize new object

@private
initialize new object