"use strict"; /** * Licensed Materials - Property of IBM * IBM Cognos Products: Cognos Analytics * Copyright IBM Corp. 2015, 2017 * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ define(['underscore', 'bi/admin/common/utils/parameters/SimpleParmValueItem', 'bi/admin/common/utils/parameters/BoundRangeParmValueItem', 'bi/admin/common/utils/parameters/UnboundedStartRangeParmValueItem', 'bi/admin/common/utils/parameters/UnboundedEndRangeParmValueItem', 'bi/admin/common/utils/parameters/HierarchicalParmValueItem', 'bi/admin/globalparameters/helpers/SoapHelper'], function (_, SimpleParmValueItem, BoundRangeParmValueItem, UnboundedStartRangeParmValueItem, UnboundedEndRangeParmValueItem, HierarchicalParmValueItem, SoapHelper) { function ParameterValue() { //NOSONAR this._name = ''; this._parmValueItems = []; } ParameterValue.prototype._loadParmValueItemFromJSON = function (parmValueItemJSON) { var parmValueItem; switch (parmValueItemJSON.type) { case 'simpleParmValueItem': { parmValueItem = new SimpleParmValueItem(); break; } case 'boundRangeParmValueItem': { parmValueItem = new BoundRangeParmValueItem(); break; } case 'unboundedStartRangeParmValueItem': { parmValueItem = new UnboundedStartRangeParmValueItem(); break; } case 'unboundedEndRangeParmValueItem': { parmValueItem = new UnboundedEndRangeParmValueItem(); break; } case 'hierarchicalParmValueItem': { parmValueItem = new HierarchicalParmValueItem(); break; } default: { return null; } } parmValueItem.fromJSON(parmValueItemJSON); return parmValueItem; }; ParameterValue.prototype.fromJSON = function (json) { this._name = json.name; _.each(json.values, function (parmValueItemJSON) { var parmValueItem = this._loadParmValueItemFromJSON(parmValueItemJSON); if (parmValueItem != null) { this._parmValueItems.push(parmValueItem); } }.bind(this)); }; ParameterValue.prototype.toXML = function () { var parameterValue = ''; parameterValue += '' + SoapHelper.xml_encode(this._name) + ''; parameterValue += ''; _.each(this._parmValueItems, function (parmValueItem) { parameterValue += parmValueItem.toXML('item'); }); parameterValue += ''; parameterValue += ''; return parameterValue; }; return ParameterValue; });