QueryPostProcessor.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. 'use strict';
  2. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  3. /*
  4. *+------------------------------------------------------------------------+
  5. *| Licensed Materials - Property of IBM
  6. *| IBM Cognos Products: BI Dashboard
  7. *| (C) Copyright IBM Corp. 2019
  8. *|
  9. *| US Government Users Restricted Rights - Use, duplication or disclosure
  10. *| restricted by GSA ADP Schedule Contract with IBM Corp.
  11. *+------------------------------------------------------------------------+
  12. */
  13. define([], function () {
  14. /**
  15. * This Class does Query result response post-processing such as processing the original query result
  16. * into a data structure that is required by GeoInfo, Data for small multiples visualization etc.
  17. **/
  18. var QueryPostProcessor = function () {
  19. /*
  20. * @Constructor
  21. * @param {Object} options
  22. * options.queryResultData QueryResultData object that is to be processed
  23. */
  24. function QueryPostProcessor(options) {
  25. _classCallCheck(this, QueryPostProcessor);
  26. /* Process Information, such as now of clipped data rows */
  27. this._processInfo = null;
  28. this._queryResultData = options.queryResultData;
  29. }
  30. QueryPostProcessor.prototype.destroy = function destroy() {
  31. for (var prop in this) {
  32. // clear everything referenced by this object in case someone is still holding on to it.
  33. if (Object.prototype.hasOwnProperty.call(this, prop) && this[prop]) {
  34. delete this[prop];
  35. }
  36. }
  37. };
  38. /**
  39. *@return {QueryResultData}
  40. *
  41. *To be overridden by child class
  42. **/
  43. QueryPostProcessor.prototype._processData = function _processData() {
  44. this._setProcessInfo(null); /*Set process info depending on the process*/
  45. return this._queryResultData; /*processed data*/
  46. };
  47. QueryPostProcessor.prototype._getProcessInfo = function _getProcessInfo() {
  48. return this._processInfo;
  49. };
  50. QueryPostProcessor.prototype._setProcessInfo = function _setProcessInfo(info) {
  51. this._processInfo = info;
  52. };
  53. QueryPostProcessor.prototype.processData = function processData() {
  54. return {
  55. 'result': this._processData(),
  56. 'info': this._getProcessInfo()
  57. };
  58. };
  59. return QueryPostProcessor;
  60. }();
  61. return QueryPostProcessor;
  62. });
  63. //# sourceMappingURL=QueryPostProcessor.js.map