58
|
1 "use strict";
|
|
2 var query_step_1 = require('./query-step');
|
|
3 var query_mode_1 = require('./query-mode');
|
|
4 var QueryState = (function () {
|
|
5 function QueryState() {
|
|
6 this.steps = [];
|
|
7 }
|
|
8 /**
|
|
9 * Sets the query state from a string.
|
|
10 */
|
|
11 QueryState.prototype.setStateFromString = function (newStateString) {
|
|
12 try {
|
|
13 // state string is json
|
|
14 var newState = JSON.parse(newStateString);
|
|
15 // state should be list of steps
|
|
16 if (!Array.isArray(newState))
|
|
17 return;
|
|
18 var newSteps_1 = [];
|
|
19 newState.forEach(function (elem) {
|
|
20 // step is an array [mode, params]
|
|
21 if (!Array.isArray(elem))
|
|
22 return;
|
|
23 var mode = elem[0];
|
|
24 // get QueryMode object
|
|
25 var qm = query_mode_1.getQueryModeById(mode);
|
|
26 var params = elem[1];
|
|
27 if (qm != null && params != null) {
|
|
28 // construct QueryStep
|
|
29 var qs = new query_step_1.QueryStep(qm, params);
|
|
30 newSteps_1.push(qs);
|
|
31 }
|
|
32 });
|
|
33 if (newSteps_1.length > 0) {
|
|
34 // set new state
|
|
35 this.steps = newSteps_1;
|
|
36 }
|
|
37 }
|
|
38 catch (e) {
|
|
39 console.error("Unable to set state from string: " + newStateString);
|
|
40 }
|
|
41 };
|
|
42 QueryState.prototype.getNumSteps = function () {
|
|
43 return this.steps.length;
|
|
44 };
|
|
45 /**
|
|
46 * Returns the current query state as a string.
|
|
47 */
|
|
48 QueryState.prototype.getStateAsString = function () {
|
|
49 var stateList = this.steps.map(function (qs) { return [qs.mode.id, qs.params]; });
|
|
50 var stateStr = JSON.stringify(stateList);
|
|
51 return stateStr;
|
|
52 };
|
|
53 /**
|
|
54 * Returns the cypher query as text for display.
|
|
55 */
|
|
56 QueryState.prototype.getQueryText = function () {
|
|
57 var text = this.resultCypherQuery;
|
|
58 var hasParams = false;
|
|
59 for (var k in this.cypherQueryParams) {
|
|
60 if (!hasParams) {
|
|
61 hasParams = true;
|
|
62 text += '\n';
|
|
63 }
|
|
64 text += "[" + k + "='" + this.cypherQueryParams[k] + "'] ";
|
|
65 }
|
|
66 return text;
|
|
67 };
|
|
68 return QueryState;
|
|
69 }());
|
|
70 exports.QueryState = QueryState;
|
|
71 //# sourceMappingURL=query-state.js.map |