ParameterValue.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. "use strict";
  2. /**
  3. * Licensed Materials - Property of IBM
  4. * IBM Cognos Products: Cognos Analytics
  5. * Copyright IBM Corp. 2015, 2017
  6. * US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  7. */
  8. 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) {
  9. function ParameterValue() {
  10. //NOSONAR
  11. this._name = '';
  12. this._parmValueItems = [];
  13. }
  14. ParameterValue.prototype._loadParmValueItemFromJSON = function (parmValueItemJSON) {
  15. var parmValueItem;
  16. switch (parmValueItemJSON.type) {
  17. case 'simpleParmValueItem':
  18. {
  19. parmValueItem = new SimpleParmValueItem();
  20. break;
  21. }
  22. case 'boundRangeParmValueItem':
  23. {
  24. parmValueItem = new BoundRangeParmValueItem();
  25. break;
  26. }
  27. case 'unboundedStartRangeParmValueItem':
  28. {
  29. parmValueItem = new UnboundedStartRangeParmValueItem();
  30. break;
  31. }
  32. case 'unboundedEndRangeParmValueItem':
  33. {
  34. parmValueItem = new UnboundedEndRangeParmValueItem();
  35. break;
  36. }
  37. case 'hierarchicalParmValueItem':
  38. {
  39. parmValueItem = new HierarchicalParmValueItem();
  40. break;
  41. }
  42. default:
  43. {
  44. return null;
  45. }
  46. }
  47. parmValueItem.fromJSON(parmValueItemJSON);
  48. return parmValueItem;
  49. };
  50. ParameterValue.prototype.fromJSON = function (json) {
  51. this._name = json.name;
  52. _.each(json.values, function (parmValueItemJSON) {
  53. var parmValueItem = this._loadParmValueItemFromJSON(parmValueItemJSON);
  54. if (parmValueItem != null) {
  55. this._parmValueItems.push(parmValueItem);
  56. }
  57. }.bind(this));
  58. };
  59. ParameterValue.prototype.toXML = function () {
  60. var parameterValue = '<item xsi:type="parameterValue">';
  61. parameterValue += '<name xsi:type="xsd:string">' + SoapHelper.xml_encode(this._name) + '</name>';
  62. parameterValue += '<value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parmValueItem[]">';
  63. _.each(this._parmValueItems, function (parmValueItem) {
  64. parameterValue += parmValueItem.toXML('item');
  65. });
  66. parameterValue += '</value>';
  67. parameterValue += '</item>';
  68. return parameterValue;
  69. };
  70. return ParameterValue;
  71. });