@freelog/freelog-cg-collection 1.0.13 → 1.0.15

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.
@@ -14,14 +14,22 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
14
14
  this.audienceSection = {conditions: []};
15
15
  // 全局定义(变量)声明
16
16
  this.varDeclarationList = [];
17
- this.varDeclarationMap = new Map();
18
17
  // 状态机
19
18
  this.stateMachine = [];
20
19
 
20
+ this.currentAssignmentClauseObj = null;
21
+ this.currentBuildInFunctionObj = null;
21
22
  this.currentState = null;
22
23
  this.currentStateObj = null;
23
24
  this.currentEventElem = null;
24
- this.parseState = {inContextArgsSectionAtEvent: 0, inActionSection: 0};
25
+ this.parseState = {
26
+ inFsmState: 0,
27
+ inFsmEvent: 0,
28
+ inContextArgsSectionAtEvent: 0,
29
+ inActionSection: 0,
30
+ atAssignmentClause: 0,
31
+ atBuildInFunction: 0
32
+ };
25
33
 
26
34
  this.expHelper = new ExpHelper();
27
35
  this.functionHelper = new FunctionHelper();
@@ -42,6 +50,65 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
42
50
  return this.generateVarValueTypeList(this.varDeclarationList);
43
51
  }
44
52
 
53
+ checkVarDeclarationEnable(varName) {
54
+ if (system_keywords.varList.indexOf(varName) !== -1) {
55
+ throw new Error(`不能和系统关键字同名 --- ${varName}`);
56
+ }
57
+ if (this.varDeclarationList.find(vd => vd["varName"] === varName) != null) {
58
+ throw new Error(`不能重复定义同名的全局变量 --- ${varName}`);
59
+ }
60
+ }
61
+
62
+ /*
63
+ * 绘制当前符号表
64
+ */
65
+ drawSymbolTable() {
66
+ let variables = [];
67
+ for (let c of context_variables) {
68
+ variables.push({name: c, scope: "context"});
69
+ }
70
+ if (this.parseState.inFsmState === 1 || this.parseState.inFsmEvent === 1) {
71
+ for (let v of this.varDeclarationList) {
72
+ variables.push({name: v["varName"], type: v["varValueType"], scope: "global"});
73
+ }
74
+ for (let s of this.currentStateObj["stateContextArgs"]) {
75
+ variables.push({name: s, scope: "fsm"});
76
+ }
77
+ for (let a of this.currentStateObj["assignments"]) {
78
+ if (a["type"] === "varInitial") {
79
+ variables.push({name: a["varName"], type: a["varValueType"], scope: "fsm"});
80
+ }
81
+ }
82
+ }
83
+ if (this.parseState.inContextArgsSectionAtEvent || this.parseState.inActionSection) {
84
+ for (let p of this.currentEventElem["config_params"]) {
85
+ variables.push({
86
+ name: p["name"],
87
+ type: p["type"],
88
+ regex: p["type"] === "argsGroup" ? `^\\$event\\.${p["name"]}(\\.[0-9A-Za-z_]+)*$` : `^\\$event\\.${p["name"]}$`,
89
+ scope: "event"
90
+ });
91
+ }
92
+ }
93
+
94
+ return variables;
95
+ }
96
+
97
+ /**
98
+ * 符号表包含某个变量
99
+ * @param varName 变量名
100
+ * @returns {boolean}
101
+ */
102
+ symbolTableHas(varName) {
103
+ return this.drawSymbolTable().find(s => {
104
+ if (s["scope"] !== "event") {
105
+ return s["name"] === varName;
106
+ } else {
107
+ return varName.match(s["regex"]) != null;
108
+ }
109
+ }) != null;
110
+ }
111
+
45
112
  visitAudience_clause(ctx) {
46
113
  this.audienceSection["audiences"] = ctx.audience().map(elem => elem.getText());
47
114
 
@@ -74,14 +141,8 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
74
141
  varValueObj: this.visitAssignment_clause(ctx.assignment_clause())
75
142
  };
76
143
 
77
- if (system_keywords.varList.indexOf(varElem.varName) !== -1) {
78
- throw new Error(`不能和系统关键字同名 --- ${varElem.varName}`);
79
- }
80
- if (this.varDeclarationMap.has(varElem.varName)) {
81
- throw new Error(`不能重复定义同名的全局变量 --- ${varElem.varName}`);
82
- } else {
83
- this.varDeclarationMap.set(varElem.varName, varElem);
84
- }
144
+ this.checkVarDeclarationEnable(varElem.varName);
145
+
85
146
  varElem["varValueType"] = this.expHelper.guessBaseTypeByExpType(varElem["varValueObj"], this.getVarDeclarationValueTypeList());
86
147
  console.debug(`>> ${ctx.getText()} --> ${varElem["varValueType"]}`);
87
148
 
@@ -99,14 +160,8 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
99
160
  varValueObj: this.visitAssignment_clause(ctx.assignment_clause())
100
161
  };
101
162
 
102
- if (system_keywords.varList.indexOf(varElem.varName) !== -1) {
103
- throw new Error(`不能和系统关键字同名 --- ${varElem.varName}`);
104
- }
105
- if (this.varDeclarationMap.has(varElem.varName)) {
106
- throw new Error(`不能重复定义同名的全局变量 --- ${varElem.varName}`);
107
- } else {
108
- this.varDeclarationMap.set(varElem.varName, varElem);
109
- }
163
+ this.checkVarDeclarationEnable(varElem.varName);
164
+
110
165
  varElem["varValueType"] = this.expHelper.guessBaseTypeByExpType(varElem["varValueObj"], this.getVarDeclarationValueTypeList());
111
166
  console.debug(`>> ${ctx.getText()} --> ${varElem["varValueType"]}`);
112
167
 
@@ -132,20 +187,17 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
132
187
  }
133
188
  varElem["paramList"] = paramList;
134
189
 
135
- if (system_keywords.varList.indexOf(varElem.varName) !== -1) {
136
- throw new Error(`不能和系统关键字同名 --- ${varElem.varName}`);
137
- }
138
- if (this.varDeclarationMap.has(varElem.varName)) {
139
- throw new Error(`不能重复定义同名的全局变量 --- ${varElem.varName}`);
140
- } else {
141
- this.varDeclarationMap.set(varElem.varName, varElem);
142
- }
190
+ this.checkVarDeclarationEnable(varElem.varName);
191
+
143
192
  this.varDeclarationList.push(varElem);
144
193
 
145
194
  return varElem;
146
195
  }
147
196
 
148
197
  visitState_definition(ctx) {
198
+ console.debug(`^^ ${ctx.state_name().getText()}`)
199
+
200
+ this.parseState.inFsmState = 1;
149
201
  this.currentState = ctx.state_name().getText();
150
202
  this.currentStateObj = {stateName: this.currentState, assignments: [], events: []};
151
203
  if (ctx.service_state_section() != null) {
@@ -159,8 +211,7 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
159
211
  this.stateMachine.push(this.currentStateObj);
160
212
 
161
213
  let result = super.visitState_definition(ctx);
162
- this.currentState = null;
163
- this.currentStateObj = null;
214
+ this.parseState.inFsmState = 0;
164
215
  return result;
165
216
  }
166
217
 
@@ -188,24 +239,22 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
188
239
  varValueObj: this.visitAssignment_clause(ctx.variable_assignment().assignment_clause())
189
240
  };
190
241
 
191
- // if (this.varDeclarationMap.has(assignmentElem.varName)) {
192
- // throw new Error(`全局变量不可以被再次赋值 --- ${assignmentElem.varName}`);
193
- // }
194
- if (this.currentStateObj["assignments"].find(elem => {
195
- return elem.varName === assignmentElem.varName;
196
- }) == null) {
242
+ if (this.currentStateObj["assignments"].find(elem => elem.varName === assignmentElem.varName) == null) {
197
243
  throw new Error(`该局部变量未声明 --- ${assignmentElem.varName}`);
198
244
  }
199
245
  let varValueTypeList = [...this.varDeclarationList, ...this.currentStateObj["assignments"]];
200
246
  assignmentElem["varValueType"] = this.expHelper.guessBaseTypeByExpType(assignmentElem["varValueObj"], this.generateVarValueTypeList(varValueTypeList));
201
- console.debug(`| ${this.currentState} | ${ctx.getText()} --> ${assignmentElem["varValueType"]}`);
202
- let varValueTypeListTmp = [...varValueTypeList].reverse();
203
- let varValueTypeObj = varValueTypeListTmp.find(elem => {
204
- return elem.varName === assignmentElem.varName;
205
- });
247
+ let varValueTypeObj = [...varValueTypeList].reverse().find(elem => elem.varName === assignmentElem.varName);
206
248
  if (assignmentElem["varValueType"] !== varValueTypeObj.varValueType) {
207
249
  throw new Error(`类型验证不通过 >| ${ctx.getText()}`);
208
250
  }
251
+ if (this.currentAssignmentClauseObj != null && this.currentAssignmentClauseObj["variableChainList"] != null) {
252
+ for (let vc of this.currentAssignmentClauseObj["variableChainList"]) {
253
+ if (!this.symbolTableHas(vc)) {
254
+ throw new Error(`存在无效的变量引用 --- ${vc} | ${assignmentElem.content}`);
255
+ }
256
+ }
257
+ }
209
258
 
210
259
  this.currentStateObj["assignments"].push(assignmentElem);
211
260
 
@@ -221,7 +270,7 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
221
270
  varValueObj: this.visitAssignment_clause(ctx.assignment_clause())
222
271
  };
223
272
 
224
- if (this.varDeclarationMap.has(assignmentElem.varName)) {
273
+ if (this.varDeclarationList.find(vd => vd["varName"] === assignmentElem.varName) != null) {
225
274
  throw new Error(`局部变量不可以和全局变量同名 --- ${assignmentElem.varName}`);
226
275
  }
227
276
  if (this.currentStateObj["stateContextArgs"].indexOf(assignmentElem.varName) !== -1) {
@@ -232,10 +281,18 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
232
281
  }) != null) {
233
282
  throw new Error(`该局部变量已声明 --- ${assignmentElem.varName}`);
234
283
  }
284
+ if (this.currentAssignmentClauseObj != null && this.currentAssignmentClauseObj["variableChainList"] != null) {
285
+ for (let vc of this.currentAssignmentClauseObj["variableChainList"]) {
286
+ if (!this.symbolTableHas(vc)) {
287
+ throw new Error(`存在无效的变量引用 --- ${vc} | ${assignmentElem.content}`);
288
+ }
289
+ }
290
+ }
291
+
235
292
  let varValueTypeList = [...this.varDeclarationList, ...this.currentStateObj["assignments"]];
236
293
  assignmentElem["varValueType"] = this.expHelper.guessBaseTypeByExpType(assignmentElem["varValueObj"], this.generateVarValueTypeList(varValueTypeList));
237
294
 
238
- console.debug(`| ${this.currentState} | ${ctx.getText()} --> ${assignmentElem["varValueType"]}`);
295
+ console.debug(`${ctx.getText()} --> ${assignmentElem["varValueType"]}`);
239
296
 
240
297
  this.currentStateObj["assignments"].push(assignmentElem);
241
298
 
@@ -244,14 +301,18 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
244
301
 
245
302
  visitEventNormal(ctx) {
246
303
  console.debug(`>> ${ctx.event().getText()}`);
304
+ this.parseState.inFsmEvent = 1;
247
305
 
248
306
  let builtInFunctionResult = this.visitBuilt_in_function(ctx.event().built_in_function());
249
307
  this.currentEventElem = {
250
308
  type: "normal",
251
309
  content: ctx.getText(),
310
+ config_params: [],
252
311
  eventName: builtInFunctionResult["funcName"],
312
+ variableChainList: builtInFunctionResult["variableChainList"],
253
313
  eventParamList: builtInFunctionResult["paramList"],
254
314
  toState: ctx.state_name().getText(),
315
+ stateContextArgs: [],
255
316
  actions: []
256
317
  };
257
318
  if (ctx.event().event_path() != null) {
@@ -269,7 +330,6 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
269
330
  }
270
331
  return suitable;
271
332
  });
272
- let event_configParamList = [];
273
333
  if (event_config != null) {
274
334
  try {
275
335
  if (!this.functionHelper.argsMatch(this.currentEventElem["eventParamList"], event_config["paramList"], this.getVarDeclarationValueTypeList())) {
@@ -279,38 +339,16 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
279
339
  console.debug(`参数验证错误 ----- ${ctx.event().getText()}`);
280
340
  throw e;
281
341
  }
282
- event_configParamList = event_config["paramList"];
342
+ this.currentEventElem["config_params"] = event_config["paramList"];
343
+ }
344
+ for (let vc of this.currentEventElem["variableChainList"]) {
345
+ if (!this.symbolTableHas(vc)) {
346
+ throw new Error(`存在无效的变量引用 --- ${vc} | ${this.currentEventElem["content"]}`);
347
+ }
283
348
  }
284
349
 
285
350
  if (ctx.state_context_args_section_at_event() != null) {
286
- this.currentEventElem["stateContextArgs"] = ctx.state_context_args_section_at_event().sc_args_at_event_param().map(elem => {
287
- this.parseState.inContextArgsSectionAtEvent = 1;
288
- let paramElem = {
289
- paramName: elem.sc_args_at_event_param_name().getText(),
290
- paramValue: elem.sc_args_at_event_param_value().assignment_clause().getText(),
291
- paramValueObj: this.visitAssignment_clause(elem.sc_args_at_event_param_value().assignment_clause()),
292
- content: elem.getText()
293
- };
294
- this.parseState.inContextArgsSectionAtEvent = 0;
295
-
296
- if (paramElem["paramValueObj"]["expType"] === "variableChain"
297
- && context_variables.indexOf(paramElem["paramValue"]) === -1
298
- && !this.varDeclarationMap.has(paramElem["paramValue"])
299
- && this.currentStateObj["stateContextArgs"].indexOf(paramElem["paramValue"]) === -1
300
- && this.currentStateObj["assignments"].find(assignment => assignment.varName === paramElem["paramValue"]) == null
301
- && event_configParamList.find(event_configParam => {
302
- if (event_configParam["type"] === "argsGroup") {
303
- return paramElem["paramValue"].match(`^\\$event\\.${event_configParam["name"]}(\\.[0-9A-Za-z_]+)*$`) != null
304
- } else {
305
- return paramElem["paramValue"].match(`^\\$event\\.${event_configParam["name"]}$`) != null;
306
- }
307
- }
308
- ) == null) {
309
- throw new Error(`该环境参数未声明 --- ${paramElem["content"]}`);
310
- }
311
-
312
- return paramElem;
313
- });
351
+ this.visitState_context_args_section_at_event(ctx.state_context_args_section_at_event());
314
352
  }
315
353
 
316
354
  if (ctx.action_section() != null) {
@@ -320,7 +358,7 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
320
358
  this.currentStateObj["events"].push(this.currentEventElem);
321
359
 
322
360
  let result = this.currentEventElem;
323
- this.currentEventElem = null;
361
+ this.parseState.inFsmEvent = 0;
324
362
  return result;
325
363
  }
326
364
 
@@ -331,16 +369,36 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
331
369
 
332
370
  this.currentStateObj["events"].push(this.currentEventElem);
333
371
 
334
- let result = this.currentEventElem;
335
- this.currentEventElem = null;
372
+ return this.currentEventElem;
373
+ }
374
+
375
+ visitState_context_args_section_at_event(ctx) {
376
+ this.parseState.inContextArgsSectionAtEvent = 1;
377
+ this.currentEventElem["stateContextArgs"] = ctx.sc_args_at_event_param().map(elem => {
378
+ let paramElem = {
379
+ paramName: elem.sc_args_at_event_param_name().getText(),
380
+ paramValue: elem.sc_args_at_event_param_value().assignment_clause().getText(),
381
+ paramValueObj: this.visitAssignment_clause(elem.sc_args_at_event_param_value().assignment_clause()),
382
+ content: elem.getText()
383
+ };
384
+
385
+ for (let vc of this.currentAssignmentClauseObj["variableChainList"]) {
386
+ if (!this.symbolTableHas(vc)) {
387
+ throw new Error(`存在无效的变量引用 --- ${vc} | ${this.currentEventElem["content"]}`);
388
+ }
389
+ }
390
+
391
+ return paramElem;
392
+ });
393
+
394
+ let result = super.visitState_context_args_section_at_event(ctx);
395
+ this.parseState.inContextArgsSectionAtEvent = 0;
336
396
  return result;
337
397
  }
338
398
 
339
399
  visitAction_section(ctx) {
340
400
  this.parseState.inActionSection = 1;
341
401
 
342
- this.currentEventElem["actions"] = [];
343
-
344
402
  let result = super.visitAction_section(ctx);
345
403
  this.parseState.inActionSection = 0;
346
404
  return result;
@@ -350,6 +408,11 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
350
408
  let actionElem = {
351
409
  type: "functionCall", content: ctx.getText(), actionObj: this.visitFunction_call(ctx.function_call())
352
410
  };
411
+ for (let vc of actionElem["actionObj"]["variableChainList"]) {
412
+ if (!this.symbolTableHas(vc)) {
413
+ throw new Error(`存在无效的变量引用 --- ${vc} | ${actionElem["content"]}`);
414
+ }
415
+ }
353
416
 
354
417
  this.currentEventElem["actions"].push(actionElem);
355
418
 
@@ -366,7 +429,7 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
366
429
  varValueObj: this.visitAssignment_clause(ctx.variable_assignment().assignment_clause())
367
430
  };
368
431
 
369
- if (this.varDeclarationMap.has(actionObj.varName)) {
432
+ if (this.varDeclarationList.find(vd => vd["varName"] === actionObj.varName) != null) {
370
433
  throw new Error(`全局变量不可以被再次赋值 --- ${actionObj.varName}`);
371
434
  }
372
435
  if (this.currentStateObj["assignments"].find(elem => {
@@ -376,14 +439,15 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
376
439
  }
377
440
  let varValueTypeList = [...this.varDeclarationList, ...this.currentStateObj["assignments"]];
378
441
  actionObj["varValueType"] = this.expHelper.guessBaseTypeByExpType(actionObj["varValueObj"], this.generateVarValueTypeList(varValueTypeList));
379
- console.debug(`actions -- ${ctx.getText()} --> ${actionObj["varValueType"]}`);
380
- let varValueTypeListTmp = [...varValueTypeList].reverse();
381
- let varValueTypeObj = varValueTypeListTmp.find(elem => {
382
- return elem.varName === actionObj.varName;
383
- });
442
+ let varValueTypeObj = [...varValueTypeList].reverse().find(elem => elem.varName === actionObj.varName);
384
443
  if (actionObj["varValueType"] !== varValueTypeObj.varValueType) {
385
444
  throw new Error(`类型验证不通过 >| ${ctx.getText()}`);
386
445
  }
446
+ for (let vc of this.currentAssignmentClauseObj["variableChainList"]) {
447
+ if (!this.symbolTableHas(vc)) {
448
+ throw new Error(`存在无效的变量引用 --- ${vc} | ${this.currentEventElem["content"]}`);
449
+ }
450
+ }
387
451
 
388
452
  actionElem["actionObj"] = actionObj;
389
453
  this.currentEventElem["actions"].push(actionElem);
@@ -392,19 +456,26 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
392
456
  }
393
457
 
394
458
  visitAssignment_clause(ctx) {
459
+ this.parseState.atAssignmentClause++;
460
+ this.currentAssignmentClauseObj = {variableChainList: []};
461
+ let result = null;
462
+
395
463
  if (ctx.expression() != null) {
396
- return this.visitExpression(ctx.expression());
464
+ result = this.visitExpression(ctx.expression());
397
465
  } else if (ctx.boolean_expression() != null) {
398
- return this.visitBoolean_expression(ctx.boolean_expression());
466
+ result = this.visitBoolean_expression(ctx.boolean_expression());
399
467
  } else if (ctx.condition_expression() != null) {
400
- return this.visitCondition_expression(ctx.condition_expression());
468
+ result = this.visitCondition_expression(ctx.condition_expression());
401
469
  } else if (ctx.args_group_expression() != null) {
402
- return this.visitArgs_group_expression(ctx.args_group_expression());
470
+ result = this.visitArgs_group_expression(ctx.args_group_expression());
403
471
  } else if (ctx.collection_expression() != null) {
404
- return this.visitCollection_expression(ctx.collection_expression());
472
+ result = this.visitCollection_expression(ctx.collection_expression());
405
473
  } else {
406
- return super.visitAssignment_clause(ctx);
474
+ result = super.visitAssignment_clause(ctx);
407
475
  }
476
+
477
+ this.parseState.atAssignmentClause--;
478
+ return result;
408
479
  }
409
480
 
410
481
  visitExpression_collection_clause(ctx) {
@@ -530,6 +601,7 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
530
601
 
531
602
  visitBoolean_expression_clause(ctx) {
532
603
  let result = null;
604
+
533
605
  if (ctx.boolean_atom() != null) {
534
606
  result = this.visitExpBooleanSingle(ctx);
535
607
  } else if (ctx.boolean_op_collection() != null) {
@@ -712,7 +784,7 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
712
784
  }
713
785
 
714
786
  visitFunction_call(ctx) {
715
- console.debug(`>> ${ctx.getText()}`);
787
+ console.debug(`| ${this.parseState.inFsmState}-${this.parseState.inFsmEvent}-${this.parseState.inContextArgsSectionAtEvent}-${this.parseState.inActionSection} | >> ${ctx.getText()}`);
716
788
 
717
789
  let result = this.visitBuilt_in_function(ctx.built_in_function());
718
790
  result["expType"] = "functionCall";
@@ -736,15 +808,17 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
736
808
  }
737
809
 
738
810
  visitBuilt_in_function(ctx) {
739
- let result = {funcName: ctx.funcname().getText()};
811
+ this.parseState.atBuildInFunction++;
812
+ this.currentBuildInFunctionObj = {funcName: ctx.funcname().getText(), variableChainList: []};
740
813
 
741
814
  if (ctx.expression_param_list() != null) {
742
- result["paramList"] = this.visitExpression_param_list(ctx.expression_param_list());
815
+ this.currentBuildInFunctionObj["paramList"] = this.visitExpression_param_list(ctx.expression_param_list());
743
816
  } else {
744
- result["paramList"] = [];
817
+ this.currentBuildInFunctionObj["paramList"] = [];
745
818
  }
746
819
 
747
- return result;
820
+ this.parseState.atBuildInFunction--;
821
+ return this.currentBuildInFunctionObj;
748
822
  }
749
823
 
750
824
  visitScientific(ctx) {
@@ -776,6 +850,13 @@ class CollectionPolicyCustomVisitor extends CollectionPolicyVisitor {
776
850
  varType = "context";
777
851
  }
778
852
 
853
+ if (this.parseState.atAssignmentClause > 0) {
854
+ this.currentAssignmentClauseObj["variableChainList"].push(content);
855
+ }
856
+ if (this.parseState.atBuildInFunction > 0) {
857
+ this.currentBuildInFunctionObj["variableChainList"].push(content);
858
+ }
859
+
779
860
  return {expType: "variableChain", varType: varType, content: content};
780
861
  }
781
862
  }
@@ -14,7 +14,7 @@ export declare class PolicyHelper implements VarContextCapable<any>, Calculator,
14
14
  protected functionHelper: FunctionHelper;
15
15
  private audienceInfo;
16
16
  constructor(policyInfo: PolicyInfo);
17
- init(varContextCapable: VarContextCapable<any>): void;
17
+ init(varContextCapable: VarContextCapable<any>, checkConditions: boolean): void;
18
18
  setVarGlobal(varName: string, varValue: any): void;
19
19
  setVarGlobalList(varGlobalList: any[]): void;
20
20
  getVarGlobal(varName: string): any;
@@ -16,7 +16,7 @@ class PolicyHelper {
16
16
  this.audienceInfo = {};
17
17
  }
18
18
  // 在合约签约的时候,可签约条件和全局申明的变量是已经计算完毕的,在这里做这件事
19
- init(varContextCapable) {
19
+ init(varContextCapable, checkConditions) {
20
20
  let varDeclarationList = this.policyInfo.varDeclarationList;
21
21
  for (let varDeclaration of varDeclarationList) {
22
22
  if (varDeclaration.type == "varGlobal") {
@@ -36,7 +36,42 @@ class PolicyHelper {
36
36
  this.audienceInfo["audiences"] = this.policyInfo.audienceSection.audiences;
37
37
  this.audienceInfo["condition"] = {};
38
38
  for (let c of this.policyInfo.audienceSection.conditions) {
39
- this.audienceInfo["condition"][c.paramName] = this.getExpValue(c.paramValueObj, varContextCapable);
39
+ let ev = this.getExpValue(c.paramValueObj, varContextCapable);
40
+ if (c.paramName == "echoSubject" && ev["expType"] != "entity") {
41
+ throw new Error(`【echoSubject】类型错误!`);
42
+ }
43
+ if (c.paramName == "labels") {
44
+ if (!Array.isArray(ev)) {
45
+ throw new Error(`【labels】类型错误!`);
46
+ }
47
+ if (ev.find(elem => typeof elem != "string") != null) {
48
+ throw new Error(`【labels】元素错误!`);
49
+ }
50
+ }
51
+ if (c.paramName == "exps") {
52
+ if (!Array.isArray(ev)) {
53
+ throw new Error(`【exps】类型错误!`);
54
+ }
55
+ if (ev.find(elem => [true, false].indexOf(elem) == -1) != null) {
56
+ throw new Error(`【exps】元素错误!`);
57
+ }
58
+ }
59
+ this.audienceInfo["condition"][c.paramName] = ev;
60
+ }
61
+ if (checkConditions) {
62
+ if (this.audienceInfo["condition"]["exps"] != null) {
63
+ if (this.audienceInfo["condition"]["exps"].indexOf(false) != -1) {
64
+ throw new Error(`【exps】验证失败!`);
65
+ }
66
+ }
67
+ if (this.audienceInfo["condition"]["echoSubject"] != null && this.audienceInfo["condition"]["labels"] != null) {
68
+ let echoSubject = this.audienceInfo["condition"]["echoSubject"];
69
+ let contractLicensee = this.getVarContext("contract.licensee");
70
+ let labels = this.invoke("Query.EchoService.Labels", [echoSubject, contractLicensee]);
71
+ if (labels.filter(label => this.audienceInfo["condition"]["labels"].indexOf(label) != -1).length != this.audienceInfo["condition"]["labels"].length) {
72
+ throw new Error(`【echoSubject】【labels】验证失败!`);
73
+ }
74
+ }
40
75
  }
41
76
  for (let varDeclaration of varDeclarationList) {
42
77
  if (varDeclaration.type == "varGlobal") {
@@ -105,4 +140,4 @@ class PolicyHelper {
105
140
  }
106
141
  }
107
142
  exports.PolicyHelper = PolicyHelper;
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9saWN5SGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlci9Qb2xpY3lIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsMkNBQXNDO0FBRXRDLHFEQUFnRDtBQU1oRCxNQUFhLFlBQVk7SUFnQnJCLFlBQVksVUFBc0I7UUFWMUIsaUJBQVksR0FBRyxJQUFJLEdBQUcsRUFBOEIsQ0FBQztRQVd6RCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUkscUJBQVMsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSwrQkFBYyxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWpELElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCx5Q0FBeUM7SUFDekMsSUFBSSxDQUFDLGlCQUF5QztRQUMxQyxJQUFJLGtCQUFrQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUM7UUFDNUQsS0FBSyxJQUFJLGNBQWMsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1lBQzVDLElBQUksY0FBYyxDQUFDLElBQUksSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDckMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztZQUNsRSxDQUFDO1lBQ0QsSUFBSSxjQUFjLENBQUMsSUFBSSxJQUFJLFVBQVUsRUFBRSxD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
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9saWN5SGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlci9Qb2xpY3lIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsMkNBQXNDO0FBRXRDLHFEQUFnRDtBQU1oRCxNQUFhLFlBQVk7SUFnQnJCLFlBQVksVUFBc0I7UUFWMUIsaUJBQVksR0FBRyxJQUFJLEdBQUcsRUFBOEIsQ0FBQztRQVd6RCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUkscUJBQVMsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSwrQkFBYyxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWpELElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCx5Q0FBeUM7SUFDekMsSUFBSSxDQUFDLGlCQUF5QyxFQUFFLGVBQXdCO1FBQ3BFLElBQUksa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQztRQUM1RCxLQUFLLElBQUksY0FBYyxJQUFJLGtCQUFrQixFQUFFLENBQUM7WUFDNUMsSUFBSSxjQUFjLENBQUMsSUFBSSxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNyQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQ2xFLENBQUM7WUFDRCxJQUFJLGNBQWMsQ0FBQyxJQUFJLElBQUks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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@freelog/freelog-cg-collection",
3
- "version": "1.0.13",
3
+ "version": "1.0.15",
4
4
  "main": "index.js",
5
5
  "dependencies": {
6
6
  "antlr4": "4.8.0",
Binary file