@freelog/freelog-cg-collection 1.0.5 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/CollectionPolicyCustomVisitor.js +112 -8
  2. package/dist/calculator/CalculatorFactory.d.ts +21 -0
  3. package/dist/calculator/CalculatorFactory.js +59 -0
  4. package/dist/calculator/CalculatorFactoryBuilder.d.ts +12 -0
  5. package/dist/calculator/CalculatorFactoryBuilder.js +25 -0
  6. package/dist/calculator/ExpArgsGroupCalculator.d.ts +3 -3
  7. package/dist/calculator/ExpArgsGroupCalculator.js +1 -1
  8. package/dist/calculator/ExpBooleanCalculator.d.ts +5 -5
  9. package/dist/calculator/ExpBooleanCalculator.js +15 -1
  10. package/dist/calculator/ExpCalculator.d.ts +5 -5
  11. package/dist/calculator/ExpCalculator.js +1 -1
  12. package/dist/calculator/ExpConditionCalculator.d.ts +3 -3
  13. package/dist/calculator/ExpConditionCalculator.js +1 -1
  14. package/dist/function-executor/ApiFunctionExecutor.d.ts +11 -0
  15. package/dist/function-executor/ApiFunctionExecutor.js +16 -0
  16. package/dist/function-executor/DefaultFunctionExecutor.d.ts +5 -0
  17. package/dist/function-executor/DefaultFunctionExecutor.js +13 -0
  18. package/dist/function-executor/DefaultFunctionInvoke.d.ts +5 -0
  19. package/dist/function-executor/DefaultFunctionInvoke.js +13 -0
  20. package/dist/function-executor/DynamicFunctionExecutor.d.ts +9 -0
  21. package/dist/function-executor/DynamicFunctionExecutor.js +41 -0
  22. package/dist/function-executor/FunFunctionExecutor.d.ts +10 -0
  23. package/dist/function-executor/FunFunctionExecutor.js +30 -0
  24. package/dist/function-executor/FunctionHandle.js +2 -1
  25. package/dist/function-executor/KitFunctionExecutor.d.ts +8 -0
  26. package/dist/function-executor/KitFunctionExecutor.js +28 -0
  27. package/dist/function-executor/QueryFunctionExecutor.d.ts +32 -0
  28. package/dist/function-executor/QueryFunctionExecutor.js +36 -0
  29. package/dist/function-executor/TimeFunctionExecutor.d.ts +6 -0
  30. package/dist/function-executor/TimeFunctionExecutor.js +25 -0
  31. package/dist/helper/ExpHelper.d.ts +4 -6
  32. package/dist/helper/ExpHelper.js +48 -34
  33. package/dist/helper/FunctionHelper.d.ts +11 -5
  34. package/dist/helper/FunctionHelper.js +38 -21
  35. package/dist/helper/PolicyHelper.d.ts +9 -4
  36. package/dist/helper/PolicyHelper.js +34 -14
  37. package/dist/interface/ExpHelperAware.d.ts +4 -0
  38. package/dist/interface/ExpHelperAware.js +3 -0
  39. package/dist/interface/FunctionHelperAware.d.ts +4 -0
  40. package/dist/interface/FunctionHelperAware.js +3 -0
  41. package/dist/model/policy/VarDeclarationInfo.d.ts +2 -1
  42. package/gen/CollectionPolicyLexer.js +544 -561
  43. package/gen/CollectionPolicyListener.js +0 -9
  44. package/gen/CollectionPolicyParser.js +704 -807
  45. package/gen/CollectionPolicyVisitor.js +0 -6
  46. package/gen/LexToken.js +569 -585
  47. package/index.js +11 -1
  48. package/package.json +1 -1
  49. package/resources/context_config/event_configs.json +120 -0
  50. package/resources/context_config/function_configs.json +224 -0
  51. package/resources/context_config/system_keywords.json +23 -0
  52. package/resources/zhaojn.json +1129 -29
  53. package/resources/zhaojn.sc +50 -6
  54. package/src/calculator/CalculatorFactory.ts +78 -0
  55. package/src/calculator/CalculatorFactoryBuilder.ts +33 -0
  56. package/src/calculator/ExpArgsGroupCalculator.ts +3 -2
  57. package/src/calculator/ExpBooleanCalculator.ts +21 -3
  58. package/src/calculator/ExpCalculator.ts +5 -3
  59. package/src/calculator/ExpConditionCalculator.ts +3 -2
  60. package/src/function-executor/ApiFunctionExecutor.ts +14 -0
  61. package/src/{interface/DefaultFunctionInvoke.ts → function-executor/DefaultFunctionExecutor.ts} +2 -2
  62. package/src/function-executor/DynamicFunctionExecutor.ts +41 -0
  63. package/src/function-executor/FunFunctionExecutor.ts +31 -0
  64. package/src/function-executor/KitFunctionExecutor.ts +29 -0
  65. package/src/function-executor/QueryFunctionExecutor.ts +45 -0
  66. package/src/function-executor/TimeFunctionExecutor.ts +25 -0
  67. package/src/helper/ExpHelper.ts +58 -43
  68. package/src/helper/FunctionHelper.ts +50 -29
  69. package/src/helper/PolicyHelper.ts +39 -15
  70. package/src/interface/ExpHelperAware.ts +5 -0
  71. package/src/interface/FunctionHelperAware.ts +5 -0
  72. package/src/model/policy/VarDeclarationInfo.ts +3 -1
  73. package/test/calculator/CalculatorTest.test.ts +10 -2
  74. package/test/function/FunAddElements.ts +4 -2
  75. package/test/function/FunctionFunExecutorTest.test.ts +2 -2
  76. package/test/helper/ExpHelperTest.test.ts +8 -3
  77. package/test/helper/FunctionHelperTest.test.ts +9 -1
  78. package/resources/function_definite.json +0 -79
  79. package/src/function-executor/FunctionHandle.ts +0 -45
  80. package/src/function-executor/api/FunctionApiExecutor.ts +0 -11
  81. package/src/function-executor/fun/FunctionFunExecutor.ts +0 -31
  82. package/src/function-executor/kit/FunctionKitExecutor.ts +0 -11
  83. package/src/function-executor/query/FunctionQueryExecutor.ts +0 -11
  84. package/src/function-executor/time/FunctionTimeExecutor.ts +0 -11
  85. package/test/function/FunctionHandleTest.test.ts +0 -9
@@ -1,15 +1,28 @@
1
1
  const {CollectionPolicyVisitor} = require("./gen/CollectionPolicyVisitor");
2
+ const {ExpHelper} = require("./dist/helper/ExpHelper");
3
+ const {FunctionHelper} = require("./dist/helper/FunctionHelper");
4
+ const system_keywords = require("./resources/context_config/system_keywords.json");
5
+ const function_configs = require("./resources/context_config/function_configs.json");
6
+ const event_configs = require("./resources/context_config/event_configs.json");
2
7
 
3
8
  class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
4
9
  constructor() {
5
10
  super();
11
+ // 签约条件
6
12
  this.audienceSection = {};
13
+ // 全局定义(变量)声明
7
14
  this.varDeclarationList = [];
15
+ this.varDeclarationMap = new Map();
16
+ // 状态机
8
17
  this.stateMachine = [];
9
18
 
10
19
  this.currentState = null;
11
20
  this.currentStateObj = null;
12
21
  this.currentEventElem = null;
22
+
23
+ this.expHelper = new ExpHelper();
24
+ this.functionHelper = new FunctionHelper();
25
+ this.functionHelper.setExpHelper(this.expHelper);
13
26
  }
14
27
 
15
28
  visitAudience_clause(ctx) {
@@ -37,6 +50,14 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
37
50
  varValueObj: this.visitAssignment_clause(ctx.assignment_clause())
38
51
  };
39
52
 
53
+ if (system_keywords.varList.indexOf(varElem.varName) !== -1) {
54
+ throw new Error(`不能和系统关键字同名 --- ${varElem.varName}`);
55
+ }
56
+ if (this.varDeclarationMap.has(varElem.varName)) {
57
+ throw new Error(`不能重复定义同名的全局变量 --- ${varElem.varName}`);
58
+ } else {
59
+ this.varDeclarationMap.set(varElem.varName, varElem);
60
+ }
40
61
  this.varDeclarationList.push(varElem);
41
62
 
42
63
  return varElem;
@@ -51,6 +72,14 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
51
72
  varValueObj: this.visitAssignment_clause(ctx.assignment_clause())
52
73
  };
53
74
 
75
+ if (system_keywords.varList.indexOf(varElem.varName) !== -1) {
76
+ throw new Error(`不能和系统关键字同名 --- ${varElem.varName}`);
77
+ }
78
+ if (this.varDeclarationMap.has(varElem.varName)) {
79
+ throw new Error(`不能重复定义同名的全局变量 --- ${varElem.varName}`);
80
+ } else {
81
+ this.varDeclarationMap.set(varElem.varName, varElem);
82
+ }
54
83
  this.varDeclarationList.push(varElem);
55
84
 
56
85
  return varElem;
@@ -73,6 +102,14 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
73
102
  }
74
103
  varElem["paramList"] = paramList;
75
104
 
105
+ if (system_keywords.varList.indexOf(varElem.varName) !== -1) {
106
+ throw new Error(`不能和系统关键字同名 --- ${varElem.varName}`);
107
+ }
108
+ if (this.varDeclarationMap.has(varElem.varName)) {
109
+ throw new Error(`不能重复定义同名的全局变量 --- ${varElem.varName}`);
110
+ } else {
111
+ this.varDeclarationMap.set(varElem.varName, varElem);
112
+ }
76
113
  this.varDeclarationList.push(varElem);
77
114
 
78
115
  return varElem;
@@ -90,11 +127,19 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
90
127
  let assignmentElem = {
91
128
  type: "varAssigment",
92
129
  content: ctx.getText(),
93
- varName: ctx.variable_assignment().variable_chain().getText(),
130
+ varName: ctx.variable_assignment().ID().getText(),
94
131
  varValue: ctx.variable_assignment().assignment_clause().getText(),
95
132
  varValueObj: super.visitAssignment_clause(ctx.variable_assignment().assignment_clause())
96
133
  };
97
134
 
135
+ if (this.varDeclarationMap.has(assignmentElem.varName)) {
136
+ throw new Error(`全局变量不可以被再次赋值 --- ${assignmentElem.varName}`);
137
+ }
138
+ if (this.currentStateObj["assignments"].find(elem => {
139
+ return elem.varName === assignmentElem.varName;
140
+ }) == null) {
141
+ throw new Error(`该局部变量未声明 --- ${assignmentElem.varName}`);
142
+ }
98
143
  this.currentStateObj["assignments"].push(assignmentElem);
99
144
 
100
145
  return assignmentElem;
@@ -109,6 +154,14 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
109
154
  varValueObj: super.visitAssignment_clause(ctx.assignment_clause())
110
155
  };
111
156
 
157
+ if (this.varDeclarationMap.has(assignmentElem.varName)) {
158
+ throw new Error(`局部变量不可以和全局变量同名 --- ${assignmentElem.varName}`);
159
+ }
160
+ if (this.currentStateObj["assignments"].find(elem => {
161
+ return elem.varName === assignmentElem.varName;
162
+ }) != null) {
163
+ throw new Error(`该局部变量已声明 --- ${assignmentElem.varName}`);
164
+ }
112
165
  this.currentStateObj["assignments"].push(assignmentElem);
113
166
 
114
167
  return assignmentElem;
@@ -132,6 +185,24 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
132
185
  this.visitAction_section(ctx.action_section());
133
186
  }
134
187
 
188
+ let event_config = event_configs.find(ec => {
189
+ let suitable = true;
190
+ if (this.currentEventElem["eventPath"] != null) {
191
+ if (this.currentEventElem["eventPath"] !== ec["path"]) {
192
+ suitable = false;
193
+ }
194
+ }
195
+ if (this.currentEventElem["eventName"] !== ec["name"]) {
196
+ suitable = false;
197
+ }
198
+ return suitable;
199
+ });
200
+ if (event_config != null) {
201
+ if (!this.functionHelper.argsMatch(this.currentEventElem["eventParamList"], event_config["paramList"])) {
202
+ throw new Error(`参数列表错误 ----- ${ctx.event().getText()}`);
203
+ }
204
+ }
205
+
135
206
  this.currentStateObj["events"].push(this.currentEventElem);
136
207
 
137
208
  return this.currentEventElem;
@@ -172,7 +243,7 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
172
243
  type: "varAssignment",
173
244
  content: "ctx.getText()",
174
245
  actionObj: {
175
- varName: ctx.variable_assignment().variable_chain().getText(),
246
+ varName: ctx.variable_assignment().ID().getText(),
176
247
  varValue: ctx.variable_assignment().assignment_clause().getText(),
177
248
  varValueObj: this.visitAssignment_clause(ctx.variable_assignment().assignment_clause())
178
249
  }
@@ -199,6 +270,20 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
199
270
  }
200
271
  }
201
272
 
273
+ visitExpression_collection_clause(ctx) {
274
+ if (ctx.function_call() != null) {
275
+ return this.visitFunction_call(ctx.function_call());
276
+ } else if (ctx.variable_chain() != null) {
277
+ return this.visitVariable_chain(ctx.variable_chain());
278
+ } else if (ctx.condition_expression() != null) {
279
+ return this.visitCondition_expression(ctx.condition_expression());
280
+ } else if (ctx.collection_expression() != null) {
281
+ return this.visitCollection_expression(ctx.collection_expression());
282
+ } else {
283
+ return super.visitExpression_collection_clause(ctx);
284
+ }
285
+ }
286
+
202
287
  visitExpression(ctx) {
203
288
  if (ctx.expression_op() != null) {
204
289
  return {
@@ -331,8 +416,8 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
331
416
  visitExpBooleanOpCollection(ctx) {
332
417
  return {
333
418
  expType: "expBooleanOpCollection",
334
- var1: this.visitBoolean_atom_or_expression(ctx.boolean_atom_or_expression()),
335
- var2: super.visitExpression_collection_clause(ctx.expression_collection_clause()),
419
+ var1: this.visitBoolean_atom_or_expression(ctx.boolean_atom_or_expression(0)),
420
+ var2: this.visitExpression_collection_clause(ctx.expression_collection_clause()),
336
421
  op: ctx.boolean_op_collection().getText()
337
422
  };
338
423
  }
@@ -499,6 +584,24 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
499
584
  result["varChain"] = ctx.variable_chain().getText();
500
585
  }
501
586
 
587
+ let function_config = function_configs.find(fc => {
588
+ let suitable = true;
589
+ if (result["varChain"] != null) {
590
+ if (result["varChain"] !== fc["varChain"]) {
591
+ suitable = false;
592
+ }
593
+ }
594
+ if (result["funcName"] !== fc["funcName"]) {
595
+ suitable = false;
596
+ }
597
+ return suitable;
598
+ });
599
+ if (function_config != null) {
600
+ if (!this.functionHelper.argsMatch(result["paramList"], function_config["paramList"])) {
601
+ throw new Error(`参数列表错误 ----- ${ctx.getText()}`);
602
+ }
603
+ }
604
+
502
605
  return result;
503
606
  }
504
607
 
@@ -530,14 +633,15 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
530
633
 
531
634
  visitVariable_chain(ctx) {
532
635
  let varType = "normal";
533
- if (ctx.variable().environment_context() != null) {
534
- varType = "context";
535
- }
636
+ let content = ctx.getText();
637
+
536
638
  if (ctx.variable().environment_event() != null) {
537
639
  varType = "event";
640
+ } else if (content === "policy" || content === "contract") {
641
+ varType = "context";
538
642
  }
539
643
 
540
- return {expType: "variableChain", varType: varType, content: ctx.getText()};
644
+ return {expType: "variableChain", varType: varType, content: content};
541
645
  }
542
646
  }
543
647
 
@@ -0,0 +1,21 @@
1
+ import { FunctionHelperAware } from "../interface/FunctionHelperAware";
2
+ import { FunctionHelper } from "../helper/FunctionHelper";
3
+ import { ExpHelperAware } from "../interface/ExpHelperAware";
4
+ import { ExpHelper } from "../helper/ExpHelper";
5
+ import { Calculator } from "../interface/Calculator";
6
+ export declare class CalculatorFactory implements FunctionHelperAware, ExpHelperAware {
7
+ private expTypeMap;
8
+ private expCalculator;
9
+ private expBooleanCalculator;
10
+ private expConditionCalculator;
11
+ private expArgsGroupCalculator;
12
+ constructor();
13
+ getCalculatorByExpType(expType: string): Calculator;
14
+ init(): void;
15
+ private initExp;
16
+ private initExpBoolean;
17
+ private initExpCondition;
18
+ private initExpArgsGroup;
19
+ setFunctionHelper(functionHelper: FunctionHelper): void;
20
+ setExpHelper(expHelper: ExpHelper): void;
21
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CalculatorFactory = void 0;
4
+ const ExpCalculator_1 = require("./ExpCalculator");
5
+ const ExpBooleanCalculator_1 = require("./ExpBooleanCalculator");
6
+ const ExpConditionCalculator_1 = require("./ExpConditionCalculator");
7
+ const ExpArgsGroupCalculator_1 = require("./ExpArgsGroupCalculator");
8
+ class CalculatorFactory {
9
+ constructor() {
10
+ this.expTypeMap = new Map();
11
+ this.expCalculator = new ExpCalculator_1.ExpCalculator();
12
+ this.expBooleanCalculator = new ExpBooleanCalculator_1.ExpBooleanCalculator();
13
+ this.expConditionCalculator = new ExpConditionCalculator_1.ExpConditionCalculator();
14
+ this.expArgsGroupCalculator = new ExpArgsGroupCalculator_1.ExpArgsGroupCalculator();
15
+ }
16
+ getCalculatorByExpType(expType) {
17
+ return this.expTypeMap.get(expType);
18
+ }
19
+ init() {
20
+ this.initExp();
21
+ this.initExpBoolean();
22
+ this.initExpCondition();
23
+ this.initExpArgsGroup();
24
+ }
25
+ initExp() {
26
+ this.expTypeMap.set("expOp", this.expCalculator);
27
+ this.expTypeMap.set("number", this.expCalculator);
28
+ this.expTypeMap.set("string", this.expCalculator);
29
+ this.expTypeMap.set("entity", this.expCalculator);
30
+ this.expTypeMap.set("variableChain", this.expCalculator);
31
+ this.expTypeMap.set("functionCall", this.expCalculator);
32
+ this.expTypeMap.set("expParen", this.expCalculator);
33
+ this.expTypeMap.set("expSigned", this.expCalculator);
34
+ }
35
+ initExpBoolean() {
36
+ this.expTypeMap.set("expBooleanOpLogic", this.expBooleanCalculator);
37
+ this.expTypeMap.set("expBooleanOpCollection", this.expBooleanCalculator);
38
+ this.expTypeMap.set("expBooleanOpCompare", this.expBooleanCalculator);
39
+ this.expTypeMap.set("expBooleanParen", this.expBooleanCalculator);
40
+ this.expTypeMap.set("boolean", this.expBooleanCalculator);
41
+ }
42
+ initExpCondition() {
43
+ this.expTypeMap.set("expCondition", this.expConditionCalculator);
44
+ }
45
+ initExpArgsGroup() {
46
+ this.expTypeMap.set("expArgsGroup", this.expArgsGroupCalculator);
47
+ }
48
+ setFunctionHelper(functionHelper) {
49
+ this.expCalculator.setFunctionHelper(functionHelper);
50
+ }
51
+ setExpHelper(expHelper) {
52
+ this.expCalculator.setExpHelper(expHelper);
53
+ this.expBooleanCalculator.setExpHelper(expHelper);
54
+ this.expConditionCalculator.setExpHelper(expHelper);
55
+ this.expArgsGroupCalculator.setExpHelper(expHelper);
56
+ }
57
+ }
58
+ exports.CalculatorFactory = CalculatorFactory;
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FsY3VsYXRvckZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2FsY3VsYXRvci9DYWxjdWxhdG9yRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBOEM7QUFDOUMsaUVBQTREO0FBQzVELHFFQUFnRTtBQUNoRSxxRUFBZ0U7QUFPaEUsTUFBYSxpQkFBaUI7SUFZMUI7UUFWUSxlQUFVLEdBQUcsSUFBSSxHQUFHLEVBQXNCLENBQUM7UUFXL0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLDZCQUFhLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSwyQ0FBb0IsRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLCtDQUFzQixFQUFFLENBQUM7UUFDM0QsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksK0NBQXNCLEVBQUUsQ0FBQztJQUMvRCxDQUFDO0lBRUQsc0JBQXNCLENBQUMsT0FBZTtRQUNsQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJO1FBQ0EsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTyxPQUFPO1FBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTyxjQUFjO1FBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLHdCQUF3QixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsaUJBQWlCLENBQUMsY0FBOEI7UUFDNUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQW9CO1FBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7Q0FDSjtBQW5FRCw4Q0FtRUMifQ==
@@ -0,0 +1,12 @@
1
+ import { FunctionHelperAware } from "../interface/FunctionHelperAware";
2
+ import { ExpHelperAware } from "../interface/ExpHelperAware";
3
+ import { FunctionHelper } from "../helper/FunctionHelper";
4
+ import { ExpHelper } from "../helper/ExpHelper";
5
+ import { CalculatorFactory } from "./CalculatorFactory";
6
+ export declare class CalculatorFactoryBuilder implements FunctionHelperAware, ExpHelperAware {
7
+ private functionHelper;
8
+ private expHelper;
9
+ build(): CalculatorFactory;
10
+ setFunctionHelper(functionHelper: FunctionHelper): void;
11
+ setExpHelper(expHelper: ExpHelper): void;
12
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CalculatorFactoryBuilder = void 0;
4
+ const CalculatorFactory_1 = require("./CalculatorFactory");
5
+ class CalculatorFactoryBuilder {
6
+ build() {
7
+ let calculatorFactory = new CalculatorFactory_1.CalculatorFactory();
8
+ if (this.functionHelper != null) {
9
+ calculatorFactory.setFunctionHelper(this.functionHelper);
10
+ }
11
+ if (this.expHelper != null) {
12
+ calculatorFactory.setExpHelper(this.expHelper);
13
+ }
14
+ calculatorFactory.init();
15
+ return calculatorFactory;
16
+ }
17
+ setFunctionHelper(functionHelper) {
18
+ this.functionHelper = functionHelper;
19
+ }
20
+ setExpHelper(expHelper) {
21
+ this.expHelper = expHelper;
22
+ }
23
+ }
24
+ exports.CalculatorFactoryBuilder = CalculatorFactoryBuilder;
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FsY3VsYXRvckZhY3RvcnlCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NhbGN1bGF0b3IvQ2FsY3VsYXRvckZhY3RvcnlCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLDJEQUFzRDtBQUV0RCxNQUFhLHdCQUF3QjtJQU1qQyxLQUFLO1FBQ0QsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLHFDQUFpQixFQUFFLENBQUM7UUFDaEQsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzlCLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3pCLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO1FBRXpCLE9BQU8saUJBQWlCLENBQUM7SUFDN0IsQ0FBQztJQUVELGlCQUFpQixDQUFDLGNBQThCO1FBQzVDLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBb0I7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDL0IsQ0FBQztDQUNKO0FBMUJELDREQTBCQyJ9
@@ -2,10 +2,10 @@ import { Calculator } from "../interface/Calculator";
2
2
  import { AssignmentClauseInfo } from "../model/AssignmentClauseInfo";
3
3
  import { VarContextCapable } from "../interface/VarContextCapable";
4
4
  import { ExpHelper } from "../helper/ExpHelper";
5
- import { ExpArgsGroup } from "../model/exp-args-group/ExpArgsGroup";
6
- export declare class ExpArgsGroupCalculator implements Calculator {
5
+ import { ExpHelperAware } from "../interface/ExpHelperAware";
6
+ export declare class ExpArgsGroupCalculator implements Calculator, ExpHelperAware {
7
7
  private expHelper;
8
8
  getExpValue(varObj: AssignmentClauseInfo, varContextCapable: VarContextCapable<any>): any;
9
- generateExpArgsGroupValue(expArgsGroup: ExpArgsGroup, varContextCapable: VarContextCapable<any>): {};
9
+ private generateExpArgsGroupValue;
10
10
  setExpHelper(expHelper: ExpHelper): void;
11
11
  }
@@ -23,4 +23,4 @@ class ExpArgsGroupCalculator {
23
23
  }
24
24
  }
25
25
  exports.ExpArgsGroupCalculator = ExpArgsGroupCalculator;
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwQXJnc0dyb3VwQ2FsY3VsYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jYWxjdWxhdG9yL0V4cEFyZ3NHcm91cENhbGN1bGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBTUEsTUFBYSxzQkFBc0I7SUFJL0IsV0FBVyxDQUFDLE1BQTRCLEVBQUUsaUJBQXlDO1FBQy9FLElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQyxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFhLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUM1RSxDQUFDO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxZQUEwQixFQUFFLGlCQUF5QztRQUMzRixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsYUFBYTtRQUNiLElBQUksWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDckMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ25DLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1lBQ2pHLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBb0I7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDL0IsQ0FBQztDQUNKO0FBM0JELHdEQTJCQyJ9
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwQXJnc0dyb3VwQ2FsY3VsYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jYWxjdWxhdG9yL0V4cEFyZ3NHcm91cENhbGN1bGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBT0EsTUFBYSxzQkFBc0I7SUFJL0IsV0FBVyxDQUFDLE1BQTRCLEVBQUUsaUJBQXlDO1FBQy9FLElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQyxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFhLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUM1RSxDQUFDO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxZQUEwQixFQUFFLGlCQUF5QztRQUNuRyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsYUFBYTtRQUNiLElBQUksWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDckMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ25DLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1lBQ2pHLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBb0I7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDL0IsQ0FBQztDQUNKO0FBM0JELHdEQTJCQyJ9
@@ -2,12 +2,12 @@ import { Calculator } from "../interface/Calculator";
2
2
  import { AssignmentClauseInfo } from "../model/AssignmentClauseInfo";
3
3
  import { VarContextCapable } from "../interface/VarContextCapable";
4
4
  import { ExpHelper } from "../helper/ExpHelper";
5
- import { ExpBooleanOpCompare } from "../model/exp-boolean/ExpBooleanOpCompare";
6
- import { ExpBooleanOpLogic } from "../model/exp-boolean/ExpBooleanOpLogic";
7
- export declare class ExpBooleanCalculator implements Calculator {
5
+ import { ExpHelperAware } from "../interface/ExpHelperAware";
6
+ export declare class ExpBooleanCalculator implements Calculator, ExpHelperAware {
8
7
  private expHelper;
9
8
  getExpValue(varObj: AssignmentClauseInfo, varContextCapable: VarContextCapable<any>): boolean;
10
- calculateExpBooleanOpLogic(expBooleanOpLogic: ExpBooleanOpLogic, varContextCapable: VarContextCapable<any>): boolean;
11
- calculateExpBooleanOpCompare(expBooleanOpCompare: ExpBooleanOpCompare, varContextCapable: VarContextCapable<any>): boolean;
9
+ private calculateExpBooleanOpLogic;
10
+ private calculateExpBooleanOpCollection;
11
+ private calculateExpBooleanOpCompare;
12
12
  setExpHelper(expHelper: ExpHelper): void;
13
13
  }
@@ -6,9 +6,15 @@ class ExpBooleanCalculator {
6
6
  if (varObj.expType == "expBooleanOpLogic") {
7
7
  return this.calculateExpBooleanOpLogic(varObj, varContextCapable);
8
8
  }
9
+ if (varObj.expType == "expBooleanOpCollection") {
10
+ return this.calculateExpBooleanOpCollection(varObj, varContextCapable);
11
+ }
9
12
  if (varObj.expType == "expBooleanOpCompare") {
10
13
  return this.calculateExpBooleanOpCompare(varObj, varContextCapable);
11
14
  }
15
+ if (varObj.expType == "expBooleanParen") {
16
+ return this.expHelper.getExpValue(varObj["var1"], varContextCapable);
17
+ }
12
18
  if (varObj.expType == "boolean") {
13
19
  return varObj["value"] == "true";
14
20
  }
@@ -30,6 +36,14 @@ class ExpBooleanCalculator {
30
36
  }
31
37
  return false;
32
38
  }
39
+ calculateExpBooleanOpCollection(expBooleanOpCollection, varContextCapable) {
40
+ let var1 = this.expHelper.getExpValue(expBooleanOpCollection.var1, varContextCapable);
41
+ let var2 = this.expHelper.getExpValue(expBooleanOpCollection.var2, varContextCapable);
42
+ if (expBooleanOpCollection.op == "in") {
43
+ return var2.indexOf(var1) != -1;
44
+ }
45
+ return false;
46
+ }
33
47
  calculateExpBooleanOpCompare(expBooleanOpCompare, varContextCapable) {
34
48
  let var1 = this.expHelper.getExpValue(expBooleanOpCompare.var1, varContextCapable);
35
49
  let var2 = this.expHelper.getExpValue(expBooleanOpCompare.var2, varContextCapable);
@@ -64,4 +78,4 @@ class ExpBooleanCalculator {
64
78
  }
65
79
  }
66
80
  exports.ExpBooleanCalculator = ExpBooleanCalculator;
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwQm9vbGVhbkNhbGN1bGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2FsY3VsYXRvci9FeHBCb29sZWFuQ2FsY3VsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFPQSxNQUFhLG9CQUFvQjtJQUk3QixXQUFXLENBQUMsTUFBNEIsRUFBRSxpQkFBeUM7UUFDL0UsSUFBSSxNQUFNLENBQUMsT0FBTyxJQUFJLG1CQUFtQixFQUFFLENBQUM7WUFDeEMsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsTUFBYSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDN0UsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1lBQzFDLE9BQU8sSUFBSSxDQUFDLDRCQUE0QixDQUFDLE1BQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQy9FLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksU0FBUyxFQUFFLENBQUM7WUFDOUIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDO1FBQ3JDLENBQUM7UUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELDBCQUEwQixDQUFDLGlCQUFvQyxFQUFFLGlCQUF5QztRQUN0RyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUNqRixJQUFJLGlCQUFpQixDQUFDLEVBQUUsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNoQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ2pCLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDakYsSUFBSSxpQkFBaUIsQ0FBQyxFQUFFLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ2hDLE9BQU8sSUFBSSxJQUFJLElBQUksQ0FBQztZQUN4QixDQUFDO1lBQ0QsSUFBSSxpQkFBaUIsQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQy9CLE9BQU8sSUFBSSxJQUFJLElBQUksQ0FBQztZQUN4QixDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCw0QkFBNEIsQ0FBQyxtQkFBd0MsRUFBRSxpQkFBeUM7UUFDNUcsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDbkYsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDbkYsSUFBSSxtQkFBbUIsQ0FBQyxFQUFFLElBQUksTUFBTSxJQUFJLG1CQUFtQixDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNwRSxPQUFPLElBQUksR0FBRyxJQUFJLENBQUM7UUFDdkIsQ0FBQztRQUNELElBQUksbUJBQW1CLENBQUMsRUFBRSxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ3JDLE9BQU8sSUFBSSxHQUFHLElBQUksQ0FBQztRQUN2QixDQUFDO1FBQ0QsSUFBSSxtQkFBbUIsQ0FBQyxFQUFFLElBQUksYUFBYSxJQUFJLG1CQUFtQixDQUFDLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM1RSxPQUFPLElBQUksSUFBSSxJQUFJLENBQUM7UUFDeEIsQ0FBQztRQUNELElBQUksbUJBQW1CLENBQUMsRUFBRSxJQUFJLFNBQVMsSUFBSSxtQkFBbUIsQ0FBQyxFQUFFLElBQUksR0FBRyxFQUFFLENBQUM7WUFDdkUsT0FBTyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxJQUFJLG1CQUFtQixDQUFDLEVBQUUsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNwQyxPQUFPLElBQUksR0FBRyxJQUFJLENBQUM7UUFDdkIsQ0FBQztRQUNELElBQUksbUJBQW1CLENBQUMsRUFBRSxJQUFJLGdCQUFnQixJQUFJLG1CQUFtQixDQUFDLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMvRSxPQUFPLElBQUksSUFBSSxJQUFJLENBQUM7UUFDeEIsQ0FBQztRQUNELElBQUksbUJBQW1CLENBQUMsRUFBRSxJQUFJLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7WUFDdEUsT0FBTyxJQUFJLElBQUksSUFBSSxDQUFDO1FBQ3hCLENBQUM7UUFDRCxJQUFJLG1CQUFtQixDQUFDLEVBQUUsSUFBSSxVQUFVLElBQUksbUJBQW1CLENBQUMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3pFLE9BQU8sSUFBSSxJQUFJLElBQUksQ0FBQztRQUN4QixDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUFvQjtRQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUMvQixDQUFDO0NBQ0o7QUFyRUQsb0RBcUVDIn0=
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwQm9vbGVhbkNhbGN1bGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2FsY3VsYXRvci9FeHBCb29sZWFuQ2FsY3VsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFTQSxNQUFhLG9CQUFvQjtJQUk3QixXQUFXLENBQUMsTUFBNEIsRUFBRSxpQkFBeUM7UUFDL0UsSUFBSSxNQUFNLENBQUMsT0FBTyxJQUFJLG1CQUFtQixFQUFFLENBQUM7WUFDeEMsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsTUFBYSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDN0UsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSx3QkFBd0IsRUFBRSxDQUFDO1lBQzdDLE9BQU8sSUFBSSxDQUFDLCtCQUErQixDQUFDLE1BQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2xGLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUkscUJBQXFCLEVBQUUsQ0FBQztZQUMxQyxPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFhLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUMvRSxDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsT0FBTyxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDdEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsT0FBTyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQzlCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQztRQUNyQyxDQUFDO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFTywwQkFBMEIsQ0FBQyxpQkFBb0MsRUFBRSxpQkFBeUM7UUFDOUcsSUFBSSxJQUFJ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
@@ -1,16 +1,16 @@
1
- import { ExpOp } from "../model/exp/ExpOp";
2
1
  import { VarContextCapable } from "../interface/VarContextCapable";
3
2
  import { FunctionHelper } from "../helper/FunctionHelper";
4
3
  import { AssignmentClauseInfo } from "../model/AssignmentClauseInfo";
5
4
  import { Calculator } from "../interface/Calculator";
6
5
  import { ExpHelper } from "../helper/ExpHelper";
7
- import { ExpSigned } from "../model/exp/ExpSigned";
8
- export declare class ExpCalculator implements Calculator {
6
+ import { FunctionHelperAware } from "../interface/FunctionHelperAware";
7
+ import { ExpHelperAware } from "../interface/ExpHelperAware";
8
+ export declare class ExpCalculator implements Calculator, FunctionHelperAware, ExpHelperAware {
9
9
  private functionHelper;
10
10
  private expHelper;
11
11
  getExpValue(varObj: AssignmentClauseInfo, varContextCapable: VarContextCapable<any>): any;
12
- calculateExpOp(expOp: ExpOp, varContextCapable: VarContextCapable<any>): number;
13
- calculateExpSigned(expSigned: ExpSigned, varContextCapable: VarContextCapable<any>): number;
12
+ private calculateExpOp;
13
+ private calculateExpSigned;
14
14
  setFunctionHelper(functionHelper: FunctionHelper): void;
15
15
  setExpHelper(expHelper: ExpHelper): void;
16
16
  }
@@ -52,4 +52,4 @@ class ExpCalculator {
52
52
  }
53
53
  }
54
54
  exports.ExpCalculator = ExpCalculator;
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwQ2FsY3VsYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jYWxjdWxhdG9yL0V4cENhbGN1bGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBUUEsTUFBYSxhQUFhO0lBTXRCLFdBQVcsQ0FBQyxNQUE0QixFQUFFLGlCQUF5QztRQUMvRSxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksT0FBTyxFQUFFLENBQUM7WUFDNUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7WUFDN0IsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUM3QixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQzdCLE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEMsT0FBTyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsTUFBYSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDbEYsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUMvQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBYSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDckUsQ0FBQztRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQVksRUFBRSxpQkFBeUM7UUFDbEUsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JFLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUNyRSxJQUFJLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxLQUFLLENBQUMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO1FBRTNDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxTQUFvQixFQUFFLGlCQUF5QztRQUM5RSxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDekUsSUFBSSxTQUFTLENBQUMsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQzFCLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDakIsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUFDLGNBQThCO1FBQzVDLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBb0I7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDL0IsQ0FBQztDQUNKO0FBM0RELHNDQTJEQyJ9
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwQ2FsY3VsYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jYWxjdWxhdG9yL0V4cENhbGN1bGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBVUEsTUFBYSxhQUFhO0lBTXRCLFdBQVcsQ0FBQyxNQUE0QixFQUFFLGlCQUF5QztRQUMvRSxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksT0FBTyxFQUFFLENBQUM7WUFDNUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7WUFDN0IsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUM3QixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsSUFBSSxNQUFNLENBQUMsT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQzdCLE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEMsT0FBTyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsTUFBYSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDbEYsQ0FBQztRQUNELElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUMvQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBYSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDckUsQ0FBQztRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQVksRUFBRSxpQkFBeUM7UUFDMUUsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JFLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUNyRSxJQUFJLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxLQUFLLENBQUMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO1FBRTNDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxTQUFvQixFQUFFLGlCQUF5QztRQUN0RixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDekUsSUFBSSxTQUFTLENBQUMsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQzFCLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDakIsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUFDLGNBQThCO1FBQzVDLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBb0I7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDL0IsQ0FBQztDQUNKO0FBM0RELHNDQTJEQyJ9
@@ -2,10 +2,10 @@ import { Calculator } from "../interface/Calculator";
2
2
  import { AssignmentClauseInfo } from "../model/AssignmentClauseInfo";
3
3
  import { VarContextCapable } from "../interface/VarContextCapable";
4
4
  import { ExpHelper } from "../helper/ExpHelper";
5
- import { ExpCondition } from "../model/exp-condition/ExpCondition";
6
- export declare class ExpConditionCalculator implements Calculator {
5
+ import { ExpHelperAware } from "../interface/ExpHelperAware";
6
+ export declare class ExpConditionCalculator implements Calculator, ExpHelperAware {
7
7
  private expHelper;
8
8
  getExpValue(varObj: AssignmentClauseInfo, varContextCapable: VarContextCapable<any>): any;
9
- generateExpConditionValue(expCondition: ExpCondition, varContextCapable: VarContextCapable<any>): any[];
9
+ private generateExpConditionValue;
10
10
  setExpHelper(expHelper: ExpHelper): void;
11
11
  }
@@ -33,4 +33,4 @@ class ExpConditionCalculator {
33
33
  }
34
34
  }
35
35
  exports.ExpConditionCalculator = ExpConditionCalculator;
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwQ29uZGl0aW9uQ2FsY3VsYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jYWxjdWxhdG9yL0V4cENvbmRpdGlvbkNhbGN1bGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBTUEsTUFBYSxzQkFBc0I7SUFJL0IsV0FBVyxDQUFDLE1BQTRCLEVBQUUsaUJBQXlDO1FBQy9FLElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQyxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFhLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUM1RSxDQUFDO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxZQUEwQixFQUFFLGlCQUF5QztRQUMzRixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsYUFBYTtRQUNiLElBQUksWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDckMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ25DLElBQUksS0FBSyxDQUFDLGlCQUFpQixJQUFJLElBQUksRUFBRSxDQUFDO29CQUNsQyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLENBQUM7b0JBQ2hGLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3hCLENBQUM7cUJBQU0sQ0FBQztvQkFDSixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztvQkFDcEYsSUFBSSxNQUFNLEVBQUUsQ0FBQzt3QkFDVCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLENBQUM7d0JBQ2hGLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3hCLENBQUM7Z0JBQ0wsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBb0I7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDL0IsQ0FBQztDQUNKO0FBcENELHdEQW9DQyJ9
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwQ29uZGl0aW9uQ2FsY3VsYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jYWxjdWxhdG9yL0V4cENvbmRpdGlvbkNhbGN1bGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBT0EsTUFBYSxzQkFBc0I7SUFJL0IsV0FBVyxDQUFDLE1BQTRCLEVBQUUsaUJBQXlDO1FBQy9FLElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQyxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFhLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUM1RSxDQUFDO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxZQUEwQixFQUFFLGlCQUF5QztRQUNuRyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsYUFBYTtRQUNiLElBQUksWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDckMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ25DLElBQUksS0FBSyxDQUFDLGlCQUFpQixJQUFJLElBQUksRUFBRSxDQUFDO29CQUNsQyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLENBQUM7b0JBQ2hGLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3hCLENBQUM7cUJBQU0sQ0FBQztvQkFDSixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztvQkFDcEYsSUFBSSxNQUFNLEVBQUUsQ0FBQzt3QkFDVCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLENBQUM7d0JBQ2hGLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3hCLENBQUM7Z0JBQ0wsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBb0I7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDL0IsQ0FBQztDQUNKO0FBcENELHdEQW9DQyJ9
@@ -0,0 +1,11 @@
1
+ import { DynamicFunctionExecutor } from "./DynamicFunctionExecutor";
2
+ export declare class ApiFunctionExecutor extends DynamicFunctionExecutor {
3
+ getFunctionCodeMap(): Map<string, string>;
4
+ F_001(args: {
5
+ node?: string;
6
+ subject?: any;
7
+ policyId?: string;
8
+ status?: number;
9
+ licensee?: any;
10
+ }): number;
11
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiFunctionExecutor = void 0;
4
+ const DynamicFunctionExecutor_1 = require("./DynamicFunctionExecutor");
5
+ class ApiFunctionExecutor extends DynamicFunctionExecutor_1.DynamicFunctionExecutor {
6
+ getFunctionCodeMap() {
7
+ return new Map([
8
+ ["api.contract.querySignCount", "F_001"]
9
+ ]);
10
+ }
11
+ F_001(args) {
12
+ throw new Error("该函数未实现【api.contract.querySignCount】");
13
+ }
14
+ }
15
+ exports.ApiFunctionExecutor = ApiFunctionExecutor;
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpRnVuY3Rpb25FeGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mdW5jdGlvbi1leGVjdXRvci9BcGlGdW5jdGlvbkV4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVFQUFrRTtBQUVsRSxNQUFhLG1CQUFvQixTQUFRLGlEQUF1QjtJQUU1RCxrQkFBa0I7UUFDZCxPQUFPLElBQUksR0FBRyxDQUFpQjtZQUMzQixDQUFDLDZCQUE2QixFQUFFLE9BQU8sQ0FBQztTQUMzQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQTBGO1FBQzVGLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0NBQ0o7QUFYRCxrREFXQyJ9
@@ -0,0 +1,5 @@
1
+ import { FunctionInvoke } from "../interface/FunctionInvoke";
2
+ export declare abstract class DefaultFunctionExecutor implements FunctionInvoke {
3
+ invoke(functionName: string, args: any[]): any;
4
+ invokeEnable(functionName: string): boolean;
5
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DefaultFunctionExecutor = void 0;
4
+ class DefaultFunctionExecutor {
5
+ invoke(functionName, args) {
6
+ throw new Error("这是个空实现,不能被调用!");
7
+ }
8
+ invokeEnable(functionName) {
9
+ return false;
10
+ }
11
+ }
12
+ exports.DefaultFunctionExecutor = DefaultFunctionExecutor;
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdEZ1bmN0aW9uRXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZnVuY3Rpb24tZXhlY3V0b3IvRGVmYXVsdEZ1bmN0aW9uRXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsTUFBc0IsdUJBQXVCO0lBRXpDLE1BQU0sQ0FBQyxZQUFvQixFQUFFLElBQVc7UUFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsWUFBWSxDQUFDLFlBQW9CO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Q0FDSjtBQVRELDBEQVNDIn0=
@@ -0,0 +1,5 @@
1
+ import { FunctionInvoke } from "../interface/FunctionInvoke";
2
+ export declare abstract class DefaultFunctionInvoke implements FunctionInvoke {
3
+ invoke(functionName: string, args: any[]): any;
4
+ invokeEnable(functionName: string): boolean;
5
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DefaultFunctionInvoke = void 0;
4
+ class DefaultFunctionInvoke {
5
+ invoke(functionName, args) {
6
+ throw new Error("这是个空实现,不能被调用!");
7
+ }
8
+ invokeEnable(functionName) {
9
+ return false;
10
+ }
11
+ }
12
+ exports.DefaultFunctionInvoke = DefaultFunctionInvoke;
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdEZ1bmN0aW9uSW52b2tlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Z1bmN0aW9uLWV4ZWN1dG9yL0RlZmF1bHRGdW5jdGlvbkludm9rZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxNQUFzQixxQkFBcUI7SUFFdkMsTUFBTSxDQUFDLFlBQW9CLEVBQUUsSUFBVztRQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxZQUFZLENBQUMsWUFBb0I7UUFDN0IsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztDQUNKO0FBVEQsc0RBU0MifQ==
@@ -0,0 +1,9 @@
1
+ import { DefaultFunctionExecutor } from "./DefaultFunctionExecutor";
2
+ import { FunctionInvoke } from "../interface/FunctionInvoke";
3
+ export declare class DynamicFunctionExecutor extends DefaultFunctionExecutor {
4
+ protected executorsMap: Map<string, FunctionInvoke>;
5
+ invokeEnable(functionName: string): boolean;
6
+ invoke(functionName: string, args: any[]): any;
7
+ addExecutor(functionName: string, executor: FunctionInvoke): void;
8
+ getFunctionCodeMap(): Map<string, string>;
9
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DynamicFunctionExecutor = void 0;
4
+ const DefaultFunctionExecutor_1 = require("./DefaultFunctionExecutor");
5
+ class DynamicFunctionExecutor extends DefaultFunctionExecutor_1.DefaultFunctionExecutor {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.executorsMap = new Map();
9
+ }
10
+ invokeEnable(functionName) {
11
+ return this.executorsMap.has(functionName) || this.getFunctionCodeMap().has(functionName);
12
+ }
13
+ invoke(functionName, args) {
14
+ if (this.executorsMap.has(functionName)) {
15
+ return this.executorsMap.get(functionName).invoke(functionName, args);
16
+ }
17
+ if (this.getFunctionCodeMap().has(functionName)) {
18
+ let functionCode = this.getFunctionCodeMap().get(functionName);
19
+ let argsStr = "";
20
+ for (let i = 0; i < args.length; i++) {
21
+ if (i == 0) {
22
+ argsStr = JSON.stringify(args[i]);
23
+ }
24
+ else {
25
+ argsStr = argsStr + "," + JSON.stringify(args[i]);
26
+ }
27
+ }
28
+ let expStr = `this.${functionCode}(${argsStr})`;
29
+ return eval(expStr);
30
+ }
31
+ throw new Error("该函数未实现");
32
+ }
33
+ addExecutor(functionName, executor) {
34
+ this.executorsMap.set(functionName, executor);
35
+ }
36
+ getFunctionCodeMap() {
37
+ return new Map();
38
+ }
39
+ }
40
+ exports.DynamicFunctionExecutor = DynamicFunctionExecutor;
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHluYW1pY0Z1bmN0aW9uRXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZnVuY3Rpb24tZXhlY3V0b3IvRHluYW1pY0Z1bmN0aW9uRXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUVBQWtFO0FBR2xFLE1BQWEsdUJBQXdCLFNBQVEsaURBQXVCO0lBQXBFOztRQUVjLGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQTBCLENBQUM7SUFtQy9ELENBQUM7SUFqQ0csWUFBWSxDQUFDLFlBQW9CO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBb0IsRUFBRSxJQUFXO1FBQ3BDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUN0QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUUsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDOUMsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQy9ELElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNqQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDVCxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdEMsQ0FBQztxQkFBTSxDQUFDO29CQUNKLE9BQU8sR0FBRyxPQUFPLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RELENBQUM7WUFDTCxDQUFDO1lBQ0QsSUFBSSxNQUFNLEdBQUcsUUFBUSxZQUFZLElBQUksT0FBTyxHQUFHLENBQUM7WUFFaEQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEIsQ0FBQztRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxZQUFvQixFQUFFLFFBQXdCO1FBQ3RELElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsT0FBTyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztJQUNyQyxDQUFDO0NBQ0o7QUFyQ0QsMERBcUNDIn0=