ts2famix 2.0.0 → 2.0.1

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 (212) hide show
  1. package/LICENSE +1 -0
  2. package/README.md +29 -60
  3. package/dist/analyze.js +1 -1
  4. package/dist/analyze_functions/process_functions.js +49 -43
  5. package/dist/famix_functions/EntityDictionary.js +309 -182
  6. package/dist/famix_functions/helpers_creation.js +36 -5
  7. package/dist/fqn.js +76 -114
  8. package/dist/lib/famix/famix_JSON_exporter.js +55 -0
  9. package/dist/lib/famix/famix_base_element.js +18 -0
  10. package/dist/lib/famix/famix_repository.js +224 -0
  11. package/dist/lib/famix/{src/index.js → index.js} +1 -1
  12. package/dist/lib/famix/model/famix/access.js +40 -0
  13. package/dist/lib/famix/model/famix/accessor.js +17 -0
  14. package/dist/lib/famix/model/famix/alias.js +33 -0
  15. package/dist/lib/famix/model/famix/arrow_function.js +17 -0
  16. package/dist/lib/famix/model/famix/behavioral_entity.js +79 -0
  17. package/dist/lib/famix/model/famix/class.js +71 -0
  18. package/dist/lib/famix/model/famix/comment.js +39 -0
  19. package/dist/lib/famix/model/famix/concretisation.js +31 -0
  20. package/dist/lib/famix/model/famix/container_entity.js +126 -0
  21. package/dist/lib/famix/model/famix/decorator.js +32 -0
  22. package/dist/lib/famix/model/famix/entity.js +17 -0
  23. package/dist/lib/famix/model/famix/enum.js +31 -0
  24. package/dist/lib/famix/model/famix/enum_value.js +25 -0
  25. package/dist/lib/famix/model/famix/function.js +17 -0
  26. package/dist/lib/famix/model/famix/import_clause.js +41 -0
  27. package/dist/lib/famix/{src/model → model}/famix/index.js +6 -10
  28. package/dist/lib/famix/model/famix/indexed_file_anchor.js +38 -0
  29. package/dist/lib/famix/model/famix/inheritance.js +33 -0
  30. package/dist/lib/famix/model/famix/interface.js +64 -0
  31. package/dist/lib/famix/model/famix/invocation.js +54 -0
  32. package/dist/lib/famix/model/famix/method.js +67 -0
  33. package/dist/lib/famix/model/famix/module.js +60 -0
  34. package/dist/lib/famix/model/famix/named_entity.js +78 -0
  35. package/dist/lib/famix/model/famix/parameter.js +25 -0
  36. package/dist/lib/famix/model/famix/parameter_concretisation.js +44 -0
  37. package/dist/lib/famix/model/famix/parameter_type.js +45 -0
  38. package/dist/lib/famix/model/famix/parametric_arrow_function.js +31 -0
  39. package/dist/lib/famix/model/famix/parametric_class.js +44 -0
  40. package/dist/lib/famix/model/famix/parametric_function.js +31 -0
  41. package/dist/lib/famix/model/famix/parametric_interface.js +44 -0
  42. package/dist/lib/famix/model/famix/parametric_method.js +31 -0
  43. package/dist/lib/famix/model/famix/primitive_type.js +17 -0
  44. package/dist/lib/famix/model/famix/property.js +73 -0
  45. package/dist/lib/famix/model/famix/reference.js +33 -0
  46. package/dist/lib/famix/model/famix/scoping_entity.js +36 -0
  47. package/dist/lib/famix/model/famix/script_entity.js +29 -0
  48. package/dist/lib/famix/model/famix/source_anchor.js +27 -0
  49. package/dist/lib/famix/model/famix/source_language.js +35 -0
  50. package/dist/lib/famix/model/famix/sourced_entity.js +60 -0
  51. package/dist/lib/famix/model/famix/structural_entity.js +39 -0
  52. package/dist/lib/famix/model/famix/type.js +73 -0
  53. package/dist/lib/famix/model/famix/variable.js +24 -0
  54. package/dist/lib/ts-complex/cyclomatic-service.js +2 -2
  55. package/dist/refactorer/refactor-getter-setter.js +142 -0
  56. package/dist/ts2famix-cli-wrapper.js +29 -3
  57. package/dist/ts2famix-cli.js +1 -1
  58. package/doc-uml/famix-typescript-model.puml +390 -341
  59. package/doc-uml/famix-typescript-model.svg +1 -1
  60. package/package.json +8 -7
  61. package/src/analyze.ts +2 -2
  62. package/src/analyze_functions/process_functions.ts +49 -44
  63. package/src/famix_functions/EntityDictionary.ts +345 -216
  64. package/src/famix_functions/helpers_creation.ts +36 -4
  65. package/src/fqn.ts +76 -125
  66. package/src/lib/famix/famix_JSON_exporter.ts +56 -0
  67. package/src/lib/famix/famix_base_element.ts +22 -0
  68. package/src/lib/famix/famix_repository.ts +243 -0
  69. package/src/lib/famix/model/famix/access.ts +50 -0
  70. package/src/lib/famix/model/famix/alias.ts +39 -0
  71. package/src/lib/famix/model/famix/behavioral_entity.ts +97 -0
  72. package/src/lib/famix/model/famix/class.ts +85 -0
  73. package/src/lib/famix/model/famix/comment.ts +47 -0
  74. package/src/lib/famix/model/famix/concretisation.ts +40 -0
  75. package/src/lib/famix/model/famix/container_entity.ts +160 -0
  76. package/src/lib/famix/model/famix/decorator.ts +37 -0
  77. package/src/lib/famix/model/famix/enum.ts +30 -0
  78. package/src/lib/famix/model/famix/enum_value.ts +28 -0
  79. package/src/lib/famix/model/famix/import_clause.ts +51 -0
  80. package/src/lib/famix/{src/model → model}/famix/index.ts +2 -4
  81. package/src/lib/famix/model/famix/indexed_file_anchor.ts +46 -0
  82. package/src/lib/famix/model/famix/inheritance.ts +40 -0
  83. package/src/lib/famix/model/famix/interface.ts +75 -0
  84. package/src/lib/famix/model/famix/invocation.ts +65 -0
  85. package/src/lib/famix/model/famix/method.ts +89 -0
  86. package/src/lib/famix/model/famix/module.ts +71 -0
  87. package/src/lib/famix/model/famix/named_entity.ts +95 -0
  88. package/src/lib/famix/{src/model → model}/famix/parameter.ts +11 -12
  89. package/src/lib/famix/model/famix/parameter_concretisation.ts +51 -0
  90. package/src/lib/famix/model/famix/parameter_type.ts +58 -0
  91. package/src/lib/famix/model/famix/parametric_arrow_function.ts +32 -0
  92. package/src/lib/famix/model/famix/parametric_class.ts +49 -0
  93. package/src/lib/famix/model/famix/parametric_function.ts +32 -0
  94. package/src/lib/famix/model/famix/parametric_interface.ts +49 -0
  95. package/src/lib/famix/model/famix/parametric_method.ts +32 -0
  96. package/src/lib/famix/model/famix/primitive_type.ts +15 -0
  97. package/src/lib/famix/model/famix/property.ts +94 -0
  98. package/src/lib/famix/model/famix/reference.ts +40 -0
  99. package/src/lib/famix/model/famix/scoping_entity.ts +35 -0
  100. package/src/lib/famix/model/famix/script_entity.ts +34 -0
  101. package/src/lib/famix/model/famix/source_anchor.ts +30 -0
  102. package/src/lib/famix/model/famix/source_language.ts +35 -0
  103. package/src/lib/famix/model/famix/sourced_entity.ts +70 -0
  104. package/src/lib/famix/model/famix/structural_entity.ts +43 -0
  105. package/src/lib/famix/model/famix/type.ts +87 -0
  106. package/src/lib/famix/model/famix/variable.ts +27 -0
  107. package/src/lib/famix/package.json +1 -1
  108. package/src/lib/ts-complex/cyclomatic-service.ts +10 -10
  109. package/src/refactorer/refactor-getter-setter.ts +140 -0
  110. package/src/ts2famix-cli-wrapper.ts +6 -2
  111. package/src/ts2famix-cli.ts +1 -1
  112. package/tsconfig.check-tests.json +14 -0
  113. package/tsconfig.json +70 -68
  114. package/dist/famix2puml.js +0 -126
  115. package/dist/lib/famix/src/famix_JSON_exporter.js +0 -55
  116. package/dist/lib/famix/src/famix_base_element.js +0 -18
  117. package/dist/lib/famix/src/famix_repository.js +0 -223
  118. package/dist/lib/famix/src/model/famix/access.js +0 -40
  119. package/dist/lib/famix/src/model/famix/accessor.js +0 -17
  120. package/dist/lib/famix/src/model/famix/alias.js +0 -33
  121. package/dist/lib/famix/src/model/famix/arrowFunction.js +0 -17
  122. package/dist/lib/famix/src/model/famix/behavioral_entity.js +0 -79
  123. package/dist/lib/famix/src/model/famix/class.js +0 -71
  124. package/dist/lib/famix/src/model/famix/comment.js +0 -39
  125. package/dist/lib/famix/src/model/famix/concretisation.js +0 -31
  126. package/dist/lib/famix/src/model/famix/container_entity.js +0 -126
  127. package/dist/lib/famix/src/model/famix/decorator.js +0 -32
  128. package/dist/lib/famix/src/model/famix/entity.js +0 -17
  129. package/dist/lib/famix/src/model/famix/enum.js +0 -31
  130. package/dist/lib/famix/src/model/famix/enum_value.js +0 -25
  131. package/dist/lib/famix/src/model/famix/function.js +0 -17
  132. package/dist/lib/famix/src/model/famix/implicit_variable.js +0 -17
  133. package/dist/lib/famix/src/model/famix/import_clause.js +0 -41
  134. package/dist/lib/famix/src/model/famix/indexed_file_anchor.js +0 -52
  135. package/dist/lib/famix/src/model/famix/inheritance.js +0 -33
  136. package/dist/lib/famix/src/model/famix/interface.js +0 -64
  137. package/dist/lib/famix/src/model/famix/invocation.js +0 -54
  138. package/dist/lib/famix/src/model/famix/method.js +0 -67
  139. package/dist/lib/famix/src/model/famix/module.js +0 -84
  140. package/dist/lib/famix/src/model/famix/named_entity.js +0 -78
  141. package/dist/lib/famix/src/model/famix/parameter.js +0 -25
  142. package/dist/lib/famix/src/model/famix/parameterConcretisation.js +0 -44
  143. package/dist/lib/famix/src/model/famix/parameter_type.js +0 -45
  144. package/dist/lib/famix/src/model/famix/parametric_arrow_function.js +0 -31
  145. package/dist/lib/famix/src/model/famix/parametric_class.js +0 -44
  146. package/dist/lib/famix/src/model/famix/parametric_function.js +0 -31
  147. package/dist/lib/famix/src/model/famix/parametric_interface.js +0 -44
  148. package/dist/lib/famix/src/model/famix/parametric_method.js +0 -31
  149. package/dist/lib/famix/src/model/famix/primitive_type.js +0 -17
  150. package/dist/lib/famix/src/model/famix/property.js +0 -126
  151. package/dist/lib/famix/src/model/famix/reference.js +0 -33
  152. package/dist/lib/famix/src/model/famix/scoping_entity.js +0 -37
  153. package/dist/lib/famix/src/model/famix/script_entity.js +0 -29
  154. package/dist/lib/famix/src/model/famix/source_anchor.js +0 -27
  155. package/dist/lib/famix/src/model/famix/source_language.js +0 -35
  156. package/dist/lib/famix/src/model/famix/sourced_entity.js +0 -60
  157. package/dist/lib/famix/src/model/famix/structural_entity.js +0 -39
  158. package/dist/lib/famix/src/model/famix/text_anchor.js +0 -38
  159. package/dist/lib/famix/src/model/famix/type.js +0 -73
  160. package/dist/lib/famix/src/model/famix/variable.js +0 -24
  161. package/jest.config-old.ts +0 -199
  162. package/src/famix2puml.ts +0 -119
  163. package/src/lib/famix/package-lock.json +0 -301
  164. package/src/lib/famix/readme.md +0 -5
  165. package/src/lib/famix/src/famix_JSON_exporter.ts +0 -56
  166. package/src/lib/famix/src/famix_base_element.ts +0 -22
  167. package/src/lib/famix/src/famix_repository.ts +0 -243
  168. package/src/lib/famix/src/model/famix/access.ts +0 -53
  169. package/src/lib/famix/src/model/famix/alias.ts +0 -41
  170. package/src/lib/famix/src/model/famix/behavioral_entity.ts +0 -100
  171. package/src/lib/famix/src/model/famix/class.ts +0 -86
  172. package/src/lib/famix/src/model/famix/comment.ts +0 -50
  173. package/src/lib/famix/src/model/famix/concretisation.ts +0 -42
  174. package/src/lib/famix/src/model/famix/container_entity.ts +0 -165
  175. package/src/lib/famix/src/model/famix/decorator.ts +0 -39
  176. package/src/lib/famix/src/model/famix/enum.ts +0 -31
  177. package/src/lib/famix/src/model/famix/enum_value.ts +0 -29
  178. package/src/lib/famix/src/model/famix/implicit_variable.ts +0 -15
  179. package/src/lib/famix/src/model/famix/import_clause.ts +0 -54
  180. package/src/lib/famix/src/model/famix/indexed_file_anchor.ts +0 -71
  181. package/src/lib/famix/src/model/famix/inheritance.ts +0 -41
  182. package/src/lib/famix/src/model/famix/interface.ts +0 -75
  183. package/src/lib/famix/src/model/famix/invocation.ts +0 -68
  184. package/src/lib/famix/src/model/famix/method.ts +0 -96
  185. package/src/lib/famix/src/model/famix/module.ts +0 -97
  186. package/src/lib/famix/src/model/famix/named_entity.ts +0 -98
  187. package/src/lib/famix/src/model/famix/parameterConcretisation.ts +0 -54
  188. package/src/lib/famix/src/model/famix/parameter_type.ts +0 -60
  189. package/src/lib/famix/src/model/famix/parametric_arrow_function.ts +0 -32
  190. package/src/lib/famix/src/model/famix/parametric_class.ts +0 -49
  191. package/src/lib/famix/src/model/famix/parametric_function.ts +0 -32
  192. package/src/lib/famix/src/model/famix/parametric_interface.ts +0 -49
  193. package/src/lib/famix/src/model/famix/parametric_method.ts +0 -32
  194. package/src/lib/famix/src/model/famix/primitive_type.ts +0 -15
  195. package/src/lib/famix/src/model/famix/property.ts +0 -152
  196. package/src/lib/famix/src/model/famix/reference.ts +0 -42
  197. package/src/lib/famix/src/model/famix/scoping_entity.ts +0 -36
  198. package/src/lib/famix/src/model/famix/script_entity.ts +0 -36
  199. package/src/lib/famix/src/model/famix/source_anchor.ts +0 -31
  200. package/src/lib/famix/src/model/famix/source_language.ts +0 -36
  201. package/src/lib/famix/src/model/famix/sourced_entity.ts +0 -73
  202. package/src/lib/famix/src/model/famix/structural_entity.ts +0 -44
  203. package/src/lib/famix/src/model/famix/text_anchor.ts +0 -49
  204. package/src/lib/famix/src/model/famix/type.ts +0 -89
  205. package/src/lib/famix/src/model/famix/variable.ts +0 -28
  206. package/src/lib/famix/tsconfig.json +0 -27
  207. package/src/lib/famix/tslint.json +0 -15
  208. /package/src/lib/famix/{src/index.ts → index.ts} +0 -0
  209. /package/src/lib/famix/{src/model → model}/famix/accessor.ts +0 -0
  210. /package/src/lib/famix/{src/model/famix/arrowFunction.ts → model/famix/arrow_function.ts} +0 -0
  211. /package/src/lib/famix/{src/model → model}/famix/entity.ts +0 -0
  212. /package/src/lib/famix/{src/model → model}/famix/function.ts +0 -0
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Invocation = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const entity_1 = require("./entity");
6
+ class Invocation extends entity_1.Entity {
7
+ constructor() {
8
+ super(...arguments);
9
+ this._candidates = new Set();
10
+ }
11
+ addCandidate(candidate) {
12
+ if (!this._candidates.has(candidate)) {
13
+ this._candidates.add(candidate);
14
+ candidate.addIncomingInvocation(this);
15
+ }
16
+ }
17
+ getJSON() {
18
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("Invocation", this);
19
+ this.addPropertiesToExporter(json);
20
+ return json.getJSON();
21
+ }
22
+ addPropertiesToExporter(exporter) {
23
+ super.addPropertiesToExporter(exporter);
24
+ exporter.addProperty("candidates", this.candidates);
25
+ exporter.addProperty("receiver", this.receiver);
26
+ exporter.addProperty("sender", this.sender);
27
+ exporter.addProperty("signature", this.signature);
28
+ }
29
+ get candidates() {
30
+ return this._candidates;
31
+ }
32
+ get receiver() {
33
+ return this._receiver;
34
+ }
35
+ set receiver(receiver) {
36
+ this._receiver = receiver;
37
+ receiver.addReceivedInvocation(this);
38
+ }
39
+ get sender() {
40
+ return this._sender;
41
+ }
42
+ set sender(sender) {
43
+ this._sender = sender;
44
+ sender.addOutgoingInvocation(this);
45
+ }
46
+ get signature() {
47
+ return this._signature;
48
+ }
49
+ set signature(signature) {
50
+ this._signature = signature;
51
+ }
52
+ }
53
+ exports.Invocation = Invocation;
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2NhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvbW9kZWwvZmFtaXgvaW52b2NhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFJOUQscUNBQWtDO0FBRWxDLE1BQWEsVUFBVyxTQUFRLGVBQU07SUFBdEM7O1FBRVUsZ0JBQVcsR0FBMEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQXdEekQsQ0FBQztJQXREUSxZQUFZLENBQUMsU0FBMkI7UUFDN0MsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDaEMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBTU0sT0FBTztRQUNaLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFFBQTJCO1FBQ3hELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hELFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVDLElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxRQUFxQjtRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixRQUFRLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsTUFBdUI7UUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdEIsTUFBTSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksU0FBUyxDQUFDLFNBQWlCO1FBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO0lBQ2hDLENBQUM7Q0FDSjtBQTFERCxnQ0EwREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEpTT05FeHBvcnRlciB9IGZyb20gXCIuLi8uLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XG5pbXBvcnQgeyBOYW1lZEVudGl0eSB9IGZyb20gXCIuL25hbWVkX2VudGl0eVwiO1xuaW1wb3J0IHsgQmVoYXZpb3JhbEVudGl0eSB9IGZyb20gXCIuL2JlaGF2aW9yYWxfZW50aXR5XCI7XG5pbXBvcnQgeyBDb250YWluZXJFbnRpdHkgfSBmcm9tIFwiLi9jb250YWluZXJfZW50aXR5XCI7XG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tIFwiLi9lbnRpdHlcIjtcblxuZXhwb3J0IGNsYXNzIEludm9jYXRpb24gZXh0ZW5kcyBFbnRpdHkge1xuXG4gIHByaXZhdGUgX2NhbmRpZGF0ZXM6IFNldDxCZWhhdmlvcmFsRW50aXR5PiA9IG5ldyBTZXQoKTtcblxuICBwdWJsaWMgYWRkQ2FuZGlkYXRlKGNhbmRpZGF0ZTogQmVoYXZpb3JhbEVudGl0eSk6IHZvaWQgeyAgXG4gICAgaWYgKCF0aGlzLl9jYW5kaWRhdGVzLmhhcyhjYW5kaWRhdGUpKSB7XG4gICAgICB0aGlzLl9jYW5kaWRhdGVzLmFkZChjYW5kaWRhdGUpO1xuICAgICAgY2FuZGlkYXRlLmFkZEluY29taW5nSW52b2NhdGlvbih0aGlzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZWNlaXZlciE6IE5hbWVkRW50aXR5O1xuICBwcml2YXRlIF9zZW5kZXIhOiBDb250YWluZXJFbnRpdHk7XG4gIHByaXZhdGUgX3NpZ25hdHVyZSE6IHN0cmluZztcblxuICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xuICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiSW52b2NhdGlvblwiLCB0aGlzKTtcbiAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xuICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcbiAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XG4gICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJjYW5kaWRhdGVzXCIsIHRoaXMuY2FuZGlkYXRlcyk7XG4gICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJyZWNlaXZlclwiLCB0aGlzLnJlY2VpdmVyKTtcbiAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcInNlbmRlclwiLCB0aGlzLnNlbmRlcik7XG4gICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJzaWduYXR1cmVcIiwgdGhpcy5zaWduYXR1cmUpO1xuICB9XG5cbiAgICBnZXQgY2FuZGlkYXRlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NhbmRpZGF0ZXM7XG4gICAgfVxuXG4gICAgZ2V0IHJlY2VpdmVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVjZWl2ZXI7XG4gICAgfVxuXG4gICAgc2V0IHJlY2VpdmVyKHJlY2VpdmVyOiBOYW1lZEVudGl0eSkge1xuICAgICAgICB0aGlzLl9yZWNlaXZlciA9IHJlY2VpdmVyO1xuICAgICAgICByZWNlaXZlci5hZGRSZWNlaXZlZEludm9jYXRpb24odGhpcyk7XG4gICAgfVxuXG4gICAgZ2V0IHNlbmRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbmRlcjtcbiAgICB9XG5cbiAgICBzZXQgc2VuZGVyKHNlbmRlcjogQ29udGFpbmVyRW50aXR5KSB7XG4gICAgICAgIHRoaXMuX3NlbmRlciA9IHNlbmRlcjtcbiAgICAgICAgc2VuZGVyLmFkZE91dGdvaW5nSW52b2NhdGlvbih0aGlzKTtcbiAgICB9XG5cbiAgICBnZXQgc2lnbmF0dXJlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2lnbmF0dXJlO1xuICAgIH1cblxuICAgIHNldCBzaWduYXR1cmUoc2lnbmF0dXJlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fc2lnbmF0dXJlID0gc2lnbmF0dXJlO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Method = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const behavioral_entity_1 = require("./behavioral_entity");
6
+ class Method extends behavioral_entity_1.BehavioralEntity {
7
+ getJSON() {
8
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("Method", this);
9
+ this.addPropertiesToExporter(json);
10
+ return json.getJSON();
11
+ }
12
+ addPropertiesToExporter(exporter) {
13
+ super.addPropertiesToExporter(exporter);
14
+ exporter.addProperty("parentType", this.parentEntity);
15
+ exporter.addProperty("kind", this.kind);
16
+ exporter.addProperty("isAbstract", this.isAbstract);
17
+ exporter.addProperty("isClassSide", this.isClassSide);
18
+ exporter.addProperty("isPrivate", this.isPrivate);
19
+ exporter.addProperty("isPublic", this.isPublic);
20
+ exporter.addProperty("isProtected", this.isProtected);
21
+ }
22
+ get parentEntity() {
23
+ return this._parentEntity;
24
+ }
25
+ set parentEntity(parentEntity) {
26
+ this._parentEntity = parentEntity;
27
+ parentEntity.addMethod(this);
28
+ }
29
+ get kind() {
30
+ return this._kind;
31
+ }
32
+ set kind(kind) {
33
+ this._kind = kind;
34
+ }
35
+ get isAbstract() {
36
+ return this._isAbstract;
37
+ }
38
+ set isAbstract(isAbstract) {
39
+ this._isAbstract = isAbstract;
40
+ }
41
+ get isClassSide() {
42
+ return this._isClassSide;
43
+ }
44
+ set isClassSide(isClassSide) {
45
+ this._isClassSide = isClassSide;
46
+ }
47
+ get isPrivate() {
48
+ return this._isPrivate;
49
+ }
50
+ set isPrivate(isPrivate) {
51
+ this._isPrivate = isPrivate;
52
+ }
53
+ get isPublic() {
54
+ return this._isPublic;
55
+ }
56
+ set isPublic(isPublic) {
57
+ this._isPublic = isPublic;
58
+ }
59
+ get isProtected() {
60
+ return this._isProtected;
61
+ }
62
+ set isProtected(isProtected) {
63
+ this._isProtected = isProtected;
64
+ }
65
+ }
66
+ exports.Method = Method;
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0aG9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9mYW1peC9tb2RlbC9mYW1peC9tZXRob2QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQThEO0FBQzlELDJEQUF1RDtBQUl2RCxNQUFhLE1BQU8sU0FBUSxvQ0FBZ0I7SUFVbkMsT0FBTztRQUNaLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFFBQTJCO1FBQ3hELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRCxRQUFRLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdEQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xELFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxRQUFRLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVDLElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxZQUFZLENBQUMsWUFBK0I7UUFDNUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUM7UUFDbEMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxJQUFZO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLFVBQW1CO1FBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLFdBQW9CO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksU0FBUyxDQUFDLFNBQWtCO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLFFBQWlCO1FBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLFdBQW9CO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ3BDLENBQUM7Q0FDSjtBQW5GRCx3QkFtRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEpTT05FeHBvcnRlciB9IGZyb20gXCIuLi8uLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XG5pbXBvcnQgeyBCZWhhdmlvcmFsRW50aXR5IH0gZnJvbSBcIi4vYmVoYXZpb3JhbF9lbnRpdHlcIjtcbmltcG9ydCB7IENsYXNzIH0gZnJvbSBcIi4vY2xhc3NcIjtcbmltcG9ydCB7IEludGVyZmFjZSB9IGZyb20gXCIuL2ludGVyZmFjZVwiO1xuXG5leHBvcnQgY2xhc3MgTWV0aG9kIGV4dGVuZHMgQmVoYXZpb3JhbEVudGl0eSB7XG5cbiAgcHJpdmF0ZSBfcGFyZW50RW50aXR5ITogQ2xhc3MgfCBJbnRlcmZhY2U7XG4gIHByaXZhdGUgX2tpbmQhOiBzdHJpbmc7XG4gIHByaXZhdGUgX2lzQWJzdHJhY3QhOiBib29sZWFuO1xuICBwcml2YXRlIF9pc0NsYXNzU2lkZSE6IGJvb2xlYW47XG4gIHByaXZhdGUgX2lzUHJpdmF0ZSE6IGJvb2xlYW47XG4gIHByaXZhdGUgX2lzUHVibGljITogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfaXNQcm90ZWN0ZWQhOiBib29sZWFuO1xuXG4gIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XG4gICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJNZXRob2RcIiwgdGhpcyk7XG4gICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcbiAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XG4gIH1cblxuICBwdWJsaWMgYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXI6IEZhbWl4SlNPTkV4cG9ydGVyKTogdm9pZCB7XG4gICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xuICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwicGFyZW50VHlwZVwiLCB0aGlzLnBhcmVudEVudGl0eSk7XG4gICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJraW5kXCIsIHRoaXMua2luZCk7XG4gICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJpc0Fic3RyYWN0XCIsIHRoaXMuaXNBYnN0cmFjdCk7XG4gICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJpc0NsYXNzU2lkZVwiLCB0aGlzLmlzQ2xhc3NTaWRlKTtcbiAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImlzUHJpdmF0ZVwiLCB0aGlzLmlzUHJpdmF0ZSk7XG4gICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJpc1B1YmxpY1wiLCB0aGlzLmlzUHVibGljKTtcbiAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImlzUHJvdGVjdGVkXCIsIHRoaXMuaXNQcm90ZWN0ZWQpO1xuICB9XG5cbiAgICBnZXQgcGFyZW50RW50aXR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFyZW50RW50aXR5O1xuICAgIH1cblxuICAgIHNldCBwYXJlbnRFbnRpdHkocGFyZW50RW50aXR5OiBDbGFzcyB8IEludGVyZmFjZSkge1xuICAgICAgICB0aGlzLl9wYXJlbnRFbnRpdHkgPSBwYXJlbnRFbnRpdHk7XG4gICAgICAgIHBhcmVudEVudGl0eS5hZGRNZXRob2QodGhpcyk7XG4gICAgfVxuXG4gICAgZ2V0IGtpbmQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9raW5kO1xuICAgIH1cblxuICAgIHNldCBraW5kKGtpbmQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9raW5kID0ga2luZDtcbiAgICB9XG5cbiAgICBnZXQgaXNBYnN0cmFjdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzQWJzdHJhY3Q7XG4gICAgfVxuXG4gICAgc2V0IGlzQWJzdHJhY3QoaXNBYnN0cmFjdDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9pc0Fic3RyYWN0ID0gaXNBYnN0cmFjdDtcbiAgICB9XG5cbiAgICBnZXQgaXNDbGFzc1NpZGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0NsYXNzU2lkZTtcbiAgICB9XG5cbiAgICBzZXQgaXNDbGFzc1NpZGUoaXNDbGFzc1NpZGU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faXNDbGFzc1NpZGUgPSBpc0NsYXNzU2lkZTtcbiAgICB9XG5cbiAgICBnZXQgaXNQcml2YXRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNQcml2YXRlO1xuICAgIH1cblxuICAgIHNldCBpc1ByaXZhdGUoaXNQcml2YXRlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2lzUHJpdmF0ZSA9IGlzUHJpdmF0ZTtcbiAgICB9XG5cbiAgICBnZXQgaXNQdWJsaWMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1B1YmxpYztcbiAgICB9XG5cbiAgICBzZXQgaXNQdWJsaWMoaXNQdWJsaWM6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faXNQdWJsaWMgPSBpc1B1YmxpYztcbiAgICB9XG5cbiAgICBnZXQgaXNQcm90ZWN0ZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Byb3RlY3RlZDtcbiAgICB9XG5cbiAgICBzZXQgaXNQcm90ZWN0ZWQoaXNQcm90ZWN0ZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faXNQcm90ZWN0ZWQgPSBpc1Byb3RlY3RlZDtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Module = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const script_entity_1 = require("./script_entity");
6
+ class Module extends script_entity_1.ScriptEntity {
7
+ constructor() {
8
+ super(...arguments);
9
+ this._isAmbient = false;
10
+ this._isNamespace = false;
11
+ this._isModule = true;
12
+ // incomingImports are in NamedEntity
13
+ this._outgoingImports = new Set();
14
+ }
15
+ get isAmbient() {
16
+ return this._isAmbient;
17
+ }
18
+ set isAmbient(value) {
19
+ this._isAmbient = value;
20
+ }
21
+ get isNamespace() {
22
+ return this._isNamespace;
23
+ }
24
+ set isNamespace(value) {
25
+ this._isNamespace = value;
26
+ }
27
+ get isModule() {
28
+ return this._isModule;
29
+ }
30
+ set isModule(value) {
31
+ this._isModule = value;
32
+ }
33
+ addOutgoingImport(importClause) {
34
+ if (!this._outgoingImports.has(importClause)) {
35
+ this._outgoingImports.add(importClause);
36
+ importClause.importingEntity = this; // opposite
37
+ }
38
+ }
39
+ getJSON() {
40
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("Module", this);
41
+ this.addPropertiesToExporter(json);
42
+ return json.getJSON();
43
+ }
44
+ addPropertiesToExporter(exporter) {
45
+ super.addPropertiesToExporter(exporter);
46
+ exporter.addProperty("outgoingImports", this.outgoingImports);
47
+ }
48
+ get parentScope() {
49
+ return this._parentScope;
50
+ }
51
+ set parentScope(parentScope) {
52
+ this._parentScope = parentScope;
53
+ parentScope.addModule(this);
54
+ }
55
+ get outgoingImports() {
56
+ return this._outgoingImports;
57
+ }
58
+ }
59
+ exports.Module = Module;
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9mYW1peC9tb2RlbC9mYW1peC9tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQThEO0FBRzlELG1EQUErQztBQUUvQyxNQUFhLE1BQU8sU0FBUSw0QkFBWTtJQUF4Qzs7UUFVWSxlQUFVLEdBQVksS0FBSyxDQUFDO1FBUzVCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBVTlCLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFHbEMscUNBQXFDO1FBQzdCLHFCQUFnQixHQUFzQixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBZ0M1RCxDQUFDO0lBL0RHLElBQVcsU0FBUztRQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQVcsU0FBUyxDQUFDLEtBQWM7UUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUlELElBQVcsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQVcsV0FBVyxDQUFDLEtBQWM7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUdELElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBVyxRQUFRLENBQUMsS0FBYztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBUUQsaUJBQWlCLENBQUMsWUFBMEI7UUFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3hDLFlBQVksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLENBQUUsV0FBVztRQUNyRCxDQUFDO0lBQ0wsQ0FBQztJQUVNLE9BQU87UUFDVixNQUFNLElBQUksR0FBc0IsSUFBSSx1Q0FBaUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxXQUFXLENBQUMsV0FBMEI7UUFDdEMsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7UUFDaEMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDakMsQ0FBQztDQUNKO0FBakVELHdCQWlFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcbmltcG9ydCB7IEltcG9ydENsYXVzZSB9IGZyb20gXCIuL2ltcG9ydF9jbGF1c2VcIjtcbmltcG9ydCB7IFNjb3BpbmdFbnRpdHkgfSBmcm9tIFwiLi9zY29waW5nX2VudGl0eVwiO1xuaW1wb3J0IHsgU2NyaXB0RW50aXR5IH0gZnJvbSBcIi4vc2NyaXB0X2VudGl0eVwiO1xuXG5leHBvcnQgY2xhc3MgTW9kdWxlIGV4dGVuZHMgU2NyaXB0RW50aXR5IHtcblxuICAgIHB1YmxpYyBnZXQgaXNBbWJpZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNBbWJpZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgaXNBbWJpZW50KHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2lzQW1iaWVudCA9IHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2lzQW1iaWVudDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHVibGljIGdldCBpc05hbWVzcGFjZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzTmFtZXNwYWNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgaXNOYW1lc3BhY2UodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faXNOYW1lc3BhY2UgPSB2YWx1ZTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNOYW1lc3BhY2U6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBnZXQgaXNNb2R1bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc01vZHVsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGlzTW9kdWxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2lzTW9kdWxlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaXNNb2R1bGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSBfcGFyZW50U2NvcGUhOiBTY29waW5nRW50aXR5O1xuICAgIC8vIGluY29taW5nSW1wb3J0cyBhcmUgaW4gTmFtZWRFbnRpdHlcbiAgICBwcml2YXRlIF9vdXRnb2luZ0ltcG9ydHM6IFNldDxJbXBvcnRDbGF1c2U+ID0gbmV3IFNldCgpO1xuXG4gICAgYWRkT3V0Z29pbmdJbXBvcnQoaW1wb3J0Q2xhdXNlOiBJbXBvcnRDbGF1c2UpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9vdXRnb2luZ0ltcG9ydHMuaGFzKGltcG9ydENsYXVzZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX291dGdvaW5nSW1wb3J0cy5hZGQoaW1wb3J0Q2xhdXNlKTtcbiAgICAgICAgICAgIGltcG9ydENsYXVzZS5pbXBvcnRpbmdFbnRpdHkgPSB0aGlzOyAgLy8gb3Bwb3NpdGVcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiTW9kdWxlXCIsIHRoaXMpO1xuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xuICAgICAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgICAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwib3V0Z29pbmdJbXBvcnRzXCIsIHRoaXMub3V0Z29pbmdJbXBvcnRzKTtcbiAgICB9XG5cbiAgICBnZXQgcGFyZW50U2NvcGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYXJlbnRTY29wZTtcbiAgICB9XG5cbiAgICBzZXQgcGFyZW50U2NvcGUocGFyZW50U2NvcGU6IFNjb3BpbmdFbnRpdHkpIHtcbiAgICAgICAgdGhpcy5fcGFyZW50U2NvcGUgPSBwYXJlbnRTY29wZTtcbiAgICAgICAgcGFyZW50U2NvcGUuYWRkTW9kdWxlKHRoaXMpO1xuICAgIH1cblxuICAgIGdldCBvdXRnb2luZ0ltcG9ydHMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vdXRnb2luZ0ltcG9ydHM7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NamedEntity = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const sourced_entity_1 = require("./sourced_entity");
6
+ class NamedEntity extends sourced_entity_1.SourcedEntity {
7
+ constructor() {
8
+ super(...arguments);
9
+ this._receivedInvocations = new Set();
10
+ this._incomingImports = new Set();
11
+ this._aliases = new Set();
12
+ this._decorators = new Set();
13
+ }
14
+ addReceivedInvocation(receivedInvocation) {
15
+ if (!this._receivedInvocations.has(receivedInvocation)) {
16
+ this._receivedInvocations.add(receivedInvocation);
17
+ receivedInvocation.receiver = this;
18
+ }
19
+ }
20
+ addIncomingImport(anImport) {
21
+ if (!this._incomingImports.has(anImport)) {
22
+ this._incomingImports.add(anImport);
23
+ anImport.importedEntity = this; // opposite
24
+ }
25
+ }
26
+ addAlias(alias) {
27
+ if (!this._aliases.has(alias)) {
28
+ this._aliases.add(alias);
29
+ alias.parentEntity = this;
30
+ }
31
+ }
32
+ addDecorator(decorator) {
33
+ if (!this._decorators.has(decorator)) {
34
+ this._decorators.add(decorator);
35
+ decorator.decoratedEntity = this;
36
+ }
37
+ }
38
+ getJSON() {
39
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("NamedEntity", this);
40
+ this.addPropertiesToExporter(json);
41
+ return json.getJSON();
42
+ }
43
+ addPropertiesToExporter(exporter) {
44
+ super.addPropertiesToExporter(exporter);
45
+ // exporter.addProperty("fullyQualifiedName", this.getFullyQualifiedName());
46
+ // exporter.addProperty("incomingInvocations", this.getReceivedInvocations());
47
+ exporter.addProperty("incomingImports", this.incomingImports);
48
+ exporter.addProperty("name", this.name);
49
+ // exporter.addProperty("aliases", this.getAliases()); /* since these generate Unknown property messages */
50
+ exporter.addProperty("decorators", this.decorators);
51
+ }
52
+ get fullyQualifiedName() {
53
+ return this._fullyQualifiedName;
54
+ }
55
+ set fullyQualifiedName(fullyQualifiedName) {
56
+ this._fullyQualifiedName = fullyQualifiedName;
57
+ }
58
+ get receivedInvocations() {
59
+ return this._receivedInvocations;
60
+ }
61
+ get incomingImports() {
62
+ return this._incomingImports;
63
+ }
64
+ get name() {
65
+ return this._name;
66
+ }
67
+ set name(name) {
68
+ this._name = name;
69
+ }
70
+ get aliases() {
71
+ return this._aliases;
72
+ }
73
+ get decorators() {
74
+ return this._decorators;
75
+ }
76
+ }
77
+ exports.NamedEntity = NamedEntity;
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZWRfZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9mYW1peC9tb2RlbC9mYW1peC9uYW1lZF9lbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQThEO0FBQzlELHFEQUFpRDtBQU1qRCxNQUFhLFdBQVksU0FBUSw4QkFBYTtJQUE5Qzs7UUFHWSx5QkFBb0IsR0FBb0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVNsRCxxQkFBZ0IsR0FBc0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVVoRCxhQUFRLEdBQWUsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVNqQyxnQkFBVyxHQUFtQixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBd0RwRCxDQUFDO0lBbEZVLHFCQUFxQixDQUFDLGtCQUE4QjtRQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7WUFDckQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ2xELGtCQUFrQixDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDdkMsQ0FBQztJQUNMLENBQUM7SUFJTSxpQkFBaUIsQ0FBQyxRQUFzQjtRQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEMsUUFBUSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsQ0FBRSxXQUFXO1FBQ2hELENBQUM7SUFDTCxDQUFDO0lBS00sUUFBUSxDQUFDLEtBQVk7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekIsS0FBSyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDOUIsQ0FBQztJQUNMLENBQUM7SUFJTSxZQUFZLENBQUMsU0FBb0I7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDaEMsU0FBUyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDckMsQ0FBQztJQUNMLENBQUM7SUFFTSxPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDdEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLDRFQUE0RTtRQUM1RSw4RUFBOEU7UUFDOUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDOUQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLDRHQUE0RztRQUM1RyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLGtCQUFrQixDQUFDLGtCQUEwQjtRQUM3QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsa0JBQWtCLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ25CLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDZixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxJQUFZO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0NBQ0o7QUF2RkQsa0NBdUZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xuaW1wb3J0IHsgU291cmNlZEVudGl0eSB9IGZyb20gXCIuL3NvdXJjZWRfZW50aXR5XCI7XG5pbXBvcnQgeyBJbnZvY2F0aW9uIH0gZnJvbSBcIi4vaW52b2NhdGlvblwiO1xuaW1wb3J0IHsgSW1wb3J0Q2xhdXNlIH0gZnJvbSBcIi4vaW1wb3J0X2NsYXVzZVwiO1xuaW1wb3J0IHsgQWxpYXMgfSBmcm9tIFwiLi9hbGlhc1wiO1xuaW1wb3J0IHsgRGVjb3JhdG9yIH0gZnJvbSBcIi4vZGVjb3JhdG9yXCI7XG5cbmV4cG9ydCBjbGFzcyBOYW1lZEVudGl0eSBleHRlbmRzIFNvdXJjZWRFbnRpdHkge1xuXG4gICAgcHJpdmF0ZSBfZnVsbHlRdWFsaWZpZWROYW1lITogc3RyaW5nO1xuICAgIHByaXZhdGUgX3JlY2VpdmVkSW52b2NhdGlvbnM6IFNldDxJbnZvY2F0aW9uPiA9IG5ldyBTZXQoKTtcblxuICAgIHB1YmxpYyBhZGRSZWNlaXZlZEludm9jYXRpb24ocmVjZWl2ZWRJbnZvY2F0aW9uOiBJbnZvY2F0aW9uKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fcmVjZWl2ZWRJbnZvY2F0aW9ucy5oYXMocmVjZWl2ZWRJbnZvY2F0aW9uKSkge1xuICAgICAgICAgICAgdGhpcy5fcmVjZWl2ZWRJbnZvY2F0aW9ucy5hZGQocmVjZWl2ZWRJbnZvY2F0aW9uKTtcbiAgICAgICAgICAgIHJlY2VpdmVkSW52b2NhdGlvbi5yZWNlaXZlciA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9pbmNvbWluZ0ltcG9ydHM6IFNldDxJbXBvcnRDbGF1c2U+ID0gbmV3IFNldCgpO1xuXG4gICAgcHVibGljIGFkZEluY29taW5nSW1wb3J0KGFuSW1wb3J0OiBJbXBvcnRDbGF1c2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9pbmNvbWluZ0ltcG9ydHMuaGFzKGFuSW1wb3J0KSkge1xuICAgICAgICAgICAgdGhpcy5faW5jb21pbmdJbXBvcnRzLmFkZChhbkltcG9ydCk7XG4gICAgICAgICAgICBhbkltcG9ydC5pbXBvcnRlZEVudGl0eSA9IHRoaXM7ICAvLyBvcHBvc2l0ZVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbmFtZSE6IHN0cmluZztcbiAgICBwcml2YXRlIF9hbGlhc2VzOiBTZXQ8QWxpYXM+ID0gbmV3IFNldCgpO1xuXG4gICAgcHVibGljIGFkZEFsaWFzKGFsaWFzOiBBbGlhcyk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2FsaWFzZXMuaGFzKGFsaWFzKSkge1xuICAgICAgICAgICAgdGhpcy5fYWxpYXNlcy5hZGQoYWxpYXMpO1xuICAgICAgICAgICAgYWxpYXMucGFyZW50RW50aXR5ID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2RlY29yYXRvcnM6IFNldDxEZWNvcmF0b3I+ID0gbmV3IFNldCgpO1xuXG4gICAgcHVibGljIGFkZERlY29yYXRvcihkZWNvcmF0b3I6IERlY29yYXRvcik6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2RlY29yYXRvcnMuaGFzKGRlY29yYXRvcikpIHtcbiAgICAgICAgICAgIHRoaXMuX2RlY29yYXRvcnMuYWRkKGRlY29yYXRvcik7XG4gICAgICAgICAgICBkZWNvcmF0b3IuZGVjb3JhdGVkRW50aXR5ID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiTmFtZWRFbnRpdHlcIiwgdGhpcyk7XG4gICAgICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XG4gICAgICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXI6IEZhbWl4SlNPTkV4cG9ydGVyKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcbiAgICAgICAgLy8gZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJmdWxseVF1YWxpZmllZE5hbWVcIiwgdGhpcy5nZXRGdWxseVF1YWxpZmllZE5hbWUoKSk7XG4gICAgICAgIC8vIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiaW5jb21pbmdJbnZvY2F0aW9uc1wiLCB0aGlzLmdldFJlY2VpdmVkSW52b2NhdGlvbnMoKSk7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiaW5jb21pbmdJbXBvcnRzXCIsIHRoaXMuaW5jb21pbmdJbXBvcnRzKTtcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJuYW1lXCIsIHRoaXMubmFtZSk7XG4gICAgICAgIC8vIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiYWxpYXNlc1wiLCB0aGlzLmdldEFsaWFzZXMoKSk7ICAvKiBzaW5jZSB0aGVzZSBnZW5lcmF0ZSBVbmtub3duIHByb3BlcnR5IG1lc3NhZ2VzICovXG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiZGVjb3JhdG9yc1wiLCB0aGlzLmRlY29yYXRvcnMpO1xuICAgIH1cblxuICAgIGdldCBmdWxseVF1YWxpZmllZE5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mdWxseVF1YWxpZmllZE5hbWU7XG4gICAgfVxuXG4gICAgc2V0IGZ1bGx5UXVhbGlmaWVkTmFtZShmdWxseVF1YWxpZmllZE5hbWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9mdWxseVF1YWxpZmllZE5hbWUgPSBmdWxseVF1YWxpZmllZE5hbWU7XG4gICAgfVxuXG4gICAgZ2V0IHJlY2VpdmVkSW52b2NhdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZWNlaXZlZEludm9jYXRpb25zO1xuICAgIH1cblxuICAgIGdldCBpbmNvbWluZ0ltcG9ydHMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbmNvbWluZ0ltcG9ydHM7XG4gICAgfVxuXG4gICAgZ2V0IG5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9uYW1lO1xuICAgIH1cblxuICAgIHNldCBuYW1lKG5hbWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTtcbiAgICB9XG5cbiAgICBnZXQgYWxpYXNlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FsaWFzZXM7XG4gICAgfVxuXG4gICAgZ2V0IGRlY29yYXRvcnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWNvcmF0b3JzO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Parameter = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const structural_entity_1 = require("./structural_entity");
6
+ class Parameter extends structural_entity_1.StructuralEntity {
7
+ getJSON() {
8
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("Parameter", this);
9
+ this.addPropertiesToExporter(json);
10
+ return json.getJSON();
11
+ }
12
+ addPropertiesToExporter(exporter) {
13
+ super.addPropertiesToExporter(exporter);
14
+ exporter.addProperty("parentBehaviouralEntity", this.parentEntity);
15
+ }
16
+ get parentEntity() {
17
+ return this._parentEntity;
18
+ }
19
+ set parentEntity(parentEntity) {
20
+ this._parentEntity = parentEntity;
21
+ parentEntity.addParameter(this);
22
+ }
23
+ }
24
+ exports.Parameter = Parameter;
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9mYW1peC9tb2RlbC9mYW1peC9wYXJhbWV0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQThEO0FBQzlELDJEQUF1RDtBQUd2RCxNQUFhLFNBQVUsU0FBUSxvQ0FBZ0I7SUFJdEMsT0FBTztRQUNaLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFFBQTJCO1FBQ3hELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxRQUFRLENBQUMsV0FBVyxDQUFDLHlCQUF5QixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUMsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxZQUE4QjtRQUMzQyxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQztRQUNsQyxZQUFZLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Q0FDSjtBQXZCRCw4QkF1QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEpTT05FeHBvcnRlciB9IGZyb20gXCIuLi8uLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XG5pbXBvcnQgeyBTdHJ1Y3R1cmFsRW50aXR5IH0gZnJvbSBcIi4vc3RydWN0dXJhbF9lbnRpdHlcIjtcbmltcG9ydCB7IEJlaGF2aW9yYWxFbnRpdHkgfSBmcm9tIFwiLi9iZWhhdmlvcmFsX2VudGl0eVwiO1xuXG5leHBvcnQgY2xhc3MgUGFyYW1ldGVyIGV4dGVuZHMgU3RydWN0dXJhbEVudGl0eSB7XG5cbiAgcHJpdmF0ZSBfcGFyZW50RW50aXR5ITogQmVoYXZpb3JhbEVudGl0eTtcblxuICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xuICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiUGFyYW1ldGVyXCIsIHRoaXMpO1xuICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XG4gICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xuICB9XG5cbiAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcbiAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcInBhcmVudEJlaGF2aW91cmFsRW50aXR5XCIsIHRoaXMucGFyZW50RW50aXR5KTtcbiAgfVxuXG4gICAgZ2V0IHBhcmVudEVudGl0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcmVudEVudGl0eTtcbiAgICB9XG5cbiAgICBzZXQgcGFyZW50RW50aXR5KHBhcmVudEVudGl0eTogQmVoYXZpb3JhbEVudGl0eSkge1xuICAgICAgICB0aGlzLl9wYXJlbnRFbnRpdHkgPSBwYXJlbnRFbnRpdHk7XG4gICAgICAgIHBhcmVudEVudGl0eS5hZGRQYXJhbWV0ZXIodGhpcyk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParameterConcretisation = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const entity_1 = require("./entity");
6
+ class ParameterConcretisation extends entity_1.Entity {
7
+ constructor() {
8
+ super(...arguments);
9
+ this._concretisations = new Set();
10
+ }
11
+ addConcretisation(concretisation) {
12
+ if (!this._concretisations.has(concretisation)) {
13
+ this._concretisations.add(concretisation);
14
+ }
15
+ }
16
+ getJSON() {
17
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("ParameterConcretisation", this);
18
+ this.addPropertiesToExporter(json);
19
+ return json.getJSON();
20
+ }
21
+ addPropertiesToExporter(exporter) {
22
+ super.addPropertiesToExporter(exporter);
23
+ exporter.addProperty("genericEntity", this.genericParameter);
24
+ exporter.addProperty("concreteEntity", this.concreteParameter);
25
+ exporter.addProperty("concretisations", this.concretisations);
26
+ }
27
+ get genericParameter() {
28
+ return this._genericParameter;
29
+ }
30
+ set genericParameter(genericEntity) {
31
+ this._genericParameter = genericEntity;
32
+ }
33
+ get concreteParameter() {
34
+ return this._concreteParameter;
35
+ }
36
+ set concreteParameter(concreteParameter) {
37
+ this._concreteParameter = concreteParameter;
38
+ }
39
+ get concretisations() {
40
+ return this._concretisations;
41
+ }
42
+ }
43
+ exports.ParameterConcretisation = ParameterConcretisation;
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyX2NvbmNyZXRpc2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9mYW1peC9tb2RlbC9mYW1peC9wYXJhbWV0ZXJfY29uY3JldGlzYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQThEO0FBRTlELHFDQUFrQztBQUlsQyxNQUFhLHVCQUF3QixTQUFRLGVBQU07SUFBbkQ7O1FBSVkscUJBQWdCLEdBQXdCLElBQUksR0FBRyxFQUFFLENBQUM7SUF3QzlELENBQUM7SUF0Q1UsaUJBQWlCLENBQUMsY0FBOEI7UUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDSCxDQUFDO0lBRU0sT0FBTztRQUNaLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLHlCQUF5QixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZGLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDeEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLFFBQVEsQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzdELFFBQVEsQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDL0QsUUFBUSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLGdCQUFnQixDQUFDLGFBQTRCO1FBQzdDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxhQUFhLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLGlCQUFpQixDQUFDLGlCQUFnQztRQUNsRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsaUJBQWlCLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7Q0FDSjtBQTVDRCwwREE0Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEpTT05FeHBvcnRlciB9IGZyb20gXCIuLi8uLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XG5pbXBvcnQgeyBDb25jcmV0aXNhdGlvbiB9IGZyb20gXCIuL2NvbmNyZXRpc2F0aW9uXCI7XG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tIFwiLi9lbnRpdHlcIjtcbmltcG9ydCB7IFBhcmFtZXRlclR5cGUgfSBmcm9tIFwiLi9wYXJhbWV0ZXJfdHlwZVwiO1xuaW1wb3J0IHsgUHJpbWl0aXZlVHlwZSB9IGZyb20gXCIuL3ByaW1pdGl2ZV90eXBlXCI7XG5cbmV4cG9ydCBjbGFzcyBQYXJhbWV0ZXJDb25jcmV0aXNhdGlvbiBleHRlbmRzIEVudGl0eSB7XG5cbiAgICBwcml2YXRlIF9nZW5lcmljUGFyYW1ldGVyITogUGFyYW1ldGVyVHlwZTtcbiAgICBwcml2YXRlIF9jb25jcmV0ZVBhcmFtZXRlciE6IFByaW1pdGl2ZVR5cGU7XG4gICAgcHJpdmF0ZSBfY29uY3JldGlzYXRpb25zOiBTZXQ8Q29uY3JldGlzYXRpb24+ID0gbmV3IFNldCgpO1xuXG4gICAgcHVibGljIGFkZENvbmNyZXRpc2F0aW9uKGNvbmNyZXRpc2F0aW9uOiBDb25jcmV0aXNhdGlvbik6IHZvaWQge1xuICAgICAgaWYgKCF0aGlzLl9jb25jcmV0aXNhdGlvbnMuaGFzKGNvbmNyZXRpc2F0aW9uKSkge1xuICAgICAgICB0aGlzLl9jb25jcmV0aXNhdGlvbnMuYWRkKGNvbmNyZXRpc2F0aW9uKTtcbiAgICAgIH1cbiAgICB9XG4gIFxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XG4gICAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIlBhcmFtZXRlckNvbmNyZXRpc2F0aW9uXCIsIHRoaXMpO1xuICAgICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcbiAgICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcbiAgICB9XG4gIFxuICAgIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcbiAgICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcbiAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiZ2VuZXJpY0VudGl0eVwiLCB0aGlzLmdlbmVyaWNQYXJhbWV0ZXIpO1xuICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJjb25jcmV0ZUVudGl0eVwiLCB0aGlzLmNvbmNyZXRlUGFyYW1ldGVyKTtcbiAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiY29uY3JldGlzYXRpb25zXCIsIHRoaXMuY29uY3JldGlzYXRpb25zKTtcbiAgICB9XG5cbiAgICBnZXQgZ2VuZXJpY1BhcmFtZXRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dlbmVyaWNQYXJhbWV0ZXI7XG4gICAgfVxuXG4gICAgc2V0IGdlbmVyaWNQYXJhbWV0ZXIoZ2VuZXJpY0VudGl0eTogUGFyYW1ldGVyVHlwZSkge1xuICAgICAgICB0aGlzLl9nZW5lcmljUGFyYW1ldGVyID0gZ2VuZXJpY0VudGl0eTtcbiAgICB9XG5cbiAgICBnZXQgY29uY3JldGVQYXJhbWV0ZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb25jcmV0ZVBhcmFtZXRlcjtcbiAgICB9XG5cbiAgICBzZXQgY29uY3JldGVQYXJhbWV0ZXIoY29uY3JldGVQYXJhbWV0ZXI6IFByaW1pdGl2ZVR5cGUpIHtcbiAgICAgICAgdGhpcy5fY29uY3JldGVQYXJhbWV0ZXIgPSBjb25jcmV0ZVBhcmFtZXRlcjtcbiAgICB9XG5cbiAgICBnZXQgY29uY3JldGlzYXRpb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29uY3JldGlzYXRpb25zO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParameterType = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const type_1 = require("./type");
6
+ class ParameterType extends type_1.Type {
7
+ constructor() {
8
+ super(...arguments);
9
+ this._arguments = new Set();
10
+ }
11
+ addArgument(argument) {
12
+ if (!this._arguments.has(argument)) {
13
+ this._arguments.add(argument);
14
+ }
15
+ }
16
+ getJSON() {
17
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("ParameterType", this);
18
+ this.addPropertiesToExporter(json);
19
+ return json.getJSON();
20
+ }
21
+ addPropertiesToExporter(exporter) {
22
+ super.addPropertiesToExporter(exporter);
23
+ exporter.addProperty("parentGeneric", this.parentGeneric);
24
+ exporter.addProperty("baseType", this.baseType);
25
+ exporter.addProperty("arguments", this.arguments);
26
+ }
27
+ get parentGeneric() {
28
+ return this._parentGeneric;
29
+ }
30
+ set parentGeneric(parentGeneric) {
31
+ this._parentGeneric = parentGeneric;
32
+ parentGeneric.addGenericParameter(this);
33
+ }
34
+ get baseType() {
35
+ return this._baseType;
36
+ }
37
+ set baseType(baseType) {
38
+ this._baseType = baseType;
39
+ }
40
+ get arguments() {
41
+ return this._arguments;
42
+ }
43
+ }
44
+ exports.ParameterType = ParameterType;
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyX3R5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L3BhcmFtZXRlcl90eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUM5RCxpQ0FBOEI7QUFXOUIsTUFBYSxhQUFjLFNBQVEsV0FBSTtJQUF2Qzs7UUFJWSxlQUFVLEdBQWMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQXlDOUMsQ0FBQztJQXZDVSxXQUFXLENBQUMsUUFBYztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLE9BQU87UUFDVixNQUFNLElBQUksR0FBc0IsSUFBSSx1Q0FBaUIsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzFELFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxhQUFhLENBQUMsYUFBMEs7UUFDeEwsSUFBSSxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUM7UUFDcEMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLFFBQWM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0NBQ0o7QUE3Q0Qsc0NBNkNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gXCIuL3R5cGVcIjtcbmltcG9ydCB7IFBhcmFtZXRyaWNDbGFzcyB9IGZyb20gXCIuL3BhcmFtZXRyaWNfY2xhc3NcIjtcbmltcG9ydCB7IFBhcmFtZXRyaWNJbnRlcmZhY2UgfSBmcm9tIFwiLi9wYXJhbWV0cmljX2ludGVyZmFjZVwiO1xuaW1wb3J0IHsgTWV0aG9kIH0gZnJvbSBcIi4vbWV0aG9kXCI7XG5pbXBvcnQgeyBGdW5jdGlvbiBhcyBGYW1peEZ1bmN0aW9uIH0gZnJvbSBcIi4vZnVuY3Rpb25cIjtcbmltcG9ydCB7IEFjY2Vzc29yIH0gZnJvbSBcIi4vYWNjZXNzb3JcIjtcbmltcG9ydCB7IFBhcmFtZXRyaWNNZXRob2QgfSBmcm9tIFwiLi9wYXJhbWV0cmljX21ldGhvZFwiO1xuaW1wb3J0IHsgUGFyYW1ldHJpY0Z1bmN0aW9uIH0gZnJvbSBcIi4vcGFyYW1ldHJpY19mdW5jdGlvblwiO1xuaW1wb3J0IHsgQXJyb3dGdW5jdGlvbiB9IGZyb20gXCIuL2Fycm93X2Z1bmN0aW9uXCI7XG5pbXBvcnQgeyBQYXJhbWV0cmljQXJyb3dGdW5jdGlvbiB9IGZyb20gXCIuL3BhcmFtZXRyaWNfYXJyb3dfZnVuY3Rpb25cIjtcblxuZXhwb3J0IGNsYXNzIFBhcmFtZXRlclR5cGUgZXh0ZW5kcyBUeXBlIHtcblxuICAgIHByaXZhdGUgX3BhcmVudEdlbmVyaWMhOiBQYXJhbWV0cmljQ2xhc3MgfCBQYXJhbWV0cmljSW50ZXJmYWNlIHwgTWV0aG9kIHwgUGFyYW1ldHJpY01ldGhvZCB8IEFjY2Vzc29yIHwgRmFtaXhGdW5jdGlvbiB8IFBhcmFtZXRyaWNGdW5jdGlvbiB8IEFycm93RnVuY3Rpb24gfCBQYXJhbWV0cmljQXJyb3dGdW5jdGlvbjtcbiAgICBwcml2YXRlIF9iYXNlVHlwZSE6IFR5cGU7XG4gICAgcHJpdmF0ZSBfYXJndW1lbnRzOiBTZXQ8VHlwZT4gPSBuZXcgU2V0KCk7XG5cbiAgICBwdWJsaWMgYWRkQXJndW1lbnQoYXJndW1lbnQ6IFR5cGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9hcmd1bWVudHMuaGFzKGFyZ3VtZW50KSkge1xuICAgICAgICAgICAgdGhpcy5fYXJndW1lbnRzLmFkZChhcmd1bWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIlBhcmFtZXRlclR5cGVcIiwgdGhpcyk7XG4gICAgICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XG4gICAgICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXI6IEZhbWl4SlNPTkV4cG9ydGVyKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJwYXJlbnRHZW5lcmljXCIsIHRoaXMucGFyZW50R2VuZXJpYyk7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiYmFzZVR5cGVcIiwgdGhpcy5iYXNlVHlwZSk7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiYXJndW1lbnRzXCIsIHRoaXMuYXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICBnZXQgcGFyZW50R2VuZXJpYygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcmVudEdlbmVyaWM7XG4gICAgfVxuXG4gICAgc2V0IHBhcmVudEdlbmVyaWMocGFyZW50R2VuZXJpYzogUGFyYW1ldHJpY0NsYXNzIHwgUGFyYW1ldHJpY0ludGVyZmFjZSB8IE1ldGhvZCB8IFBhcmFtZXRyaWNNZXRob2QgfCBBY2Nlc3NvciB8IEZhbWl4RnVuY3Rpb24gfCBQYXJhbWV0cmljRnVuY3Rpb24gfCBBcnJvd0Z1bmN0aW9uIHwgUGFyYW1ldHJpY0Fycm93RnVuY3Rpb24pIHtcbiAgICAgICAgdGhpcy5fcGFyZW50R2VuZXJpYyA9IHBhcmVudEdlbmVyaWM7XG4gICAgICAgIHBhcmVudEdlbmVyaWMuYWRkR2VuZXJpY1BhcmFtZXRlcih0aGlzKTtcbiAgICB9XG5cbiAgICBnZXQgYmFzZVR5cGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9iYXNlVHlwZTtcbiAgICB9XG5cbiAgICBzZXQgYmFzZVR5cGUoYmFzZVR5cGU6IFR5cGUpIHtcbiAgICAgICAgdGhpcy5fYmFzZVR5cGUgPSBiYXNlVHlwZTtcbiAgICB9XG5cbiAgICBnZXQgYXJndW1lbnRzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXJndW1lbnRzO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParametricArrowFunction = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const arrow_function_1 = require("./arrow_function");
6
+ class ParametricArrowFunction extends arrow_function_1.ArrowFunction {
7
+ constructor() {
8
+ super(...arguments);
9
+ this._concreteParameters = new Set();
10
+ }
11
+ addConcreteParameter(concreteParameter) {
12
+ if (!this._concreteParameters.has(concreteParameter)) {
13
+ this._concreteParameters.add(concreteParameter);
14
+ }
15
+ }
16
+ getJSON() {
17
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("ParametricArrowFunction", this);
18
+ this.addPropertiesToExporter(json);
19
+ return json.getJSON();
20
+ }
21
+ addPropertiesToExporter(exporter) {
22
+ super.addPropertiesToExporter(exporter);
23
+ exporter.addProperty("genericParameters", this.genericParameters);
24
+ exporter.addProperty("concreteParameters", this.concreteParameters);
25
+ }
26
+ get concreteParameters() {
27
+ return this._concreteParameters;
28
+ }
29
+ }
30
+ exports.ParametricArrowFunction = ParametricArrowFunction;
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldHJpY19hcnJvd19mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvbW9kZWwvZmFtaXgvcGFyYW1ldHJpY19hcnJvd19mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFDOUQscURBQWlEO0FBS2pELE1BQWEsdUJBQXdCLFNBQVEsOEJBQWE7SUFBMUQ7O1FBRVksd0JBQW1CLEdBQTJDLElBQUksR0FBRyxFQUFFLENBQUM7SUF1QnBGLENBQUM7SUFyQlUsb0JBQW9CLENBQUMsaUJBQW9EO1FBQzVFLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDcEQsQ0FBQztJQUNMLENBQUM7SUFFTSxPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMseUJBQXlCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNsRSxRQUFRLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNsQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNwQyxDQUFDO0NBQ0o7QUF6QkQsMERBeUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xuaW1wb3J0IHsgQXJyb3dGdW5jdGlvbiB9IGZyb20gXCIuL2Fycm93X2Z1bmN0aW9uXCI7XG5pbXBvcnQgeyBDbGFzcyB9IGZyb20gXCIuL2NsYXNzXCI7XG5pbXBvcnQgeyBJbnRlcmZhY2UgfSBmcm9tIFwiLi9pbnRlcmZhY2VcIjtcbmltcG9ydCB7IFByaW1pdGl2ZVR5cGUgfSBmcm9tIFwiLi9wcmltaXRpdmVfdHlwZVwiO1xuXG5leHBvcnQgY2xhc3MgUGFyYW1ldHJpY0Fycm93RnVuY3Rpb24gZXh0ZW5kcyBBcnJvd0Z1bmN0aW9uIHtcblxuICAgIHByaXZhdGUgX2NvbmNyZXRlUGFyYW1ldGVyczogU2V0PFByaW1pdGl2ZVR5cGUgfCBDbGFzcyB8IEludGVyZmFjZT4gPSBuZXcgU2V0KCk7XG5cbiAgICBwdWJsaWMgYWRkQ29uY3JldGVQYXJhbWV0ZXIoY29uY3JldGVQYXJhbWV0ZXI6IFByaW1pdGl2ZVR5cGUgfCBDbGFzcyB8IEludGVyZmFjZSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2NvbmNyZXRlUGFyYW1ldGVycy5oYXMoY29uY3JldGVQYXJhbWV0ZXIpKSB7XG4gICAgICAgICAgICB0aGlzLl9jb25jcmV0ZVBhcmFtZXRlcnMuYWRkKGNvbmNyZXRlUGFyYW1ldGVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiUGFyYW1ldHJpY0Fycm93RnVuY3Rpb25cIiwgdGhpcyk7XG4gICAgICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XG4gICAgICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXI6IEZhbWl4SlNPTkV4cG9ydGVyKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJnZW5lcmljUGFyYW1ldGVyc1wiLCB0aGlzLmdlbmVyaWNQYXJhbWV0ZXJzKTtcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJjb25jcmV0ZVBhcmFtZXRlcnNcIiwgdGhpcy5jb25jcmV0ZVBhcmFtZXRlcnMpO1xuICAgIH1cblxuICAgIGdldCBjb25jcmV0ZVBhcmFtZXRlcnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb25jcmV0ZVBhcmFtZXRlcnM7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParametricClass = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const class_1 = require("./class");
6
+ class ParametricClass extends class_1.Class {
7
+ constructor() {
8
+ super(...arguments);
9
+ this._genericParameters = new Set();
10
+ this._concreteParameters = new Set();
11
+ }
12
+ addGenericParameter(genericParameter) {
13
+ if (!this._genericParameters.has(genericParameter)) {
14
+ this._genericParameters.add(genericParameter);
15
+ genericParameter.parentGeneric = this;
16
+ }
17
+ }
18
+ clearGenericParameters() {
19
+ this._genericParameters.clear();
20
+ }
21
+ addConcreteParameter(concreteParameter) {
22
+ if (!this._concreteParameters.has(concreteParameter)) {
23
+ this._concreteParameters.add(concreteParameter);
24
+ }
25
+ }
26
+ getJSON() {
27
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("ParametricClass", this);
28
+ this.addPropertiesToExporter(json);
29
+ return json.getJSON();
30
+ }
31
+ addPropertiesToExporter(exporter) {
32
+ super.addPropertiesToExporter(exporter);
33
+ exporter.addProperty("genericParameters", this.genericParameters);
34
+ exporter.addProperty("concreteParameters", this.concreteParameters);
35
+ }
36
+ get genericParameters() {
37
+ return this._genericParameters;
38
+ }
39
+ get concreteParameters() {
40
+ return this._concreteParameters;
41
+ }
42
+ }
43
+ exports.ParametricClass = ParametricClass;
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldHJpY19jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvbW9kZWwvZmFtaXgvcGFyYW1ldHJpY19jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxtRUFBOEQ7QUFDOUQsbUNBQWdDO0FBSWhDLE1BQWEsZUFBZ0IsU0FBUSxhQUFLO0lBQTFDOztRQUVZLHVCQUFrQixHQUF1QixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBYW5ELHdCQUFtQixHQUEyQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBMkJwRixDQUFDO0lBdENVLG1CQUFtQixDQUFDLGdCQUErQjtRQUN0RCxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDakQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzlDLGdCQUFnQixDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUMsQ0FBQztJQUNMLENBQUM7SUFFRCxzQkFBc0I7UUFDbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFJTSxvQkFBb0IsQ0FBQyxpQkFBb0Q7UUFDNUUsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNwRCxDQUFDO0lBQ0wsQ0FBQztJQUVNLE9BQU87UUFDVixNQUFNLElBQUksR0FBc0IsSUFBSSx1Q0FBaUIsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMvRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFFBQTJCO1FBQ3RELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxRQUFRLENBQUMsV0FBVyxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2xFLFFBQVEsQ0FBQyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNsQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNwQyxDQUFDO0NBQ0o7QUExQ0QsMENBMENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJmYWNlIH0gZnJvbSBcIi4vaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBGYW1peEpTT05FeHBvcnRlciB9IGZyb20gXCIuLi8uLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XG5pbXBvcnQgeyBDbGFzcyB9IGZyb20gXCIuL2NsYXNzXCI7XG5pbXBvcnQgeyBQYXJhbWV0ZXJUeXBlIH0gZnJvbSBcIi4vcGFyYW1ldGVyX3R5cGVcIjtcbmltcG9ydCB7IFByaW1pdGl2ZVR5cGUgfSBmcm9tIFwiLi9wcmltaXRpdmVfdHlwZVwiO1xuXG5leHBvcnQgY2xhc3MgUGFyYW1ldHJpY0NsYXNzIGV4dGVuZHMgQ2xhc3Mge1xuXG4gICAgcHJpdmF0ZSBfZ2VuZXJpY1BhcmFtZXRlcnM6IFNldDxQYXJhbWV0ZXJUeXBlPiA9IG5ldyBTZXQoKTtcblxuICAgIHB1YmxpYyBhZGRHZW5lcmljUGFyYW1ldGVyKGdlbmVyaWNQYXJhbWV0ZXI6IFBhcmFtZXRlclR5cGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9nZW5lcmljUGFyYW1ldGVycy5oYXMoZ2VuZXJpY1BhcmFtZXRlcikpIHtcbiAgICAgICAgICAgIHRoaXMuX2dlbmVyaWNQYXJhbWV0ZXJzLmFkZChnZW5lcmljUGFyYW1ldGVyKTtcbiAgICAgICAgICAgIGdlbmVyaWNQYXJhbWV0ZXIucGFyZW50R2VuZXJpYyA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbGVhckdlbmVyaWNQYXJhbWV0ZXJzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9nZW5lcmljUGFyYW1ldGVycy5jbGVhcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbmNyZXRlUGFyYW1ldGVyczogU2V0PFByaW1pdGl2ZVR5cGUgfCBDbGFzcyB8IEludGVyZmFjZT4gPSBuZXcgU2V0KCk7XG5cbiAgICBwdWJsaWMgYWRkQ29uY3JldGVQYXJhbWV0ZXIoY29uY3JldGVQYXJhbWV0ZXI6IFByaW1pdGl2ZVR5cGUgfCBDbGFzcyB8IEludGVyZmFjZSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2NvbmNyZXRlUGFyYW1ldGVycy5oYXMoY29uY3JldGVQYXJhbWV0ZXIpKSB7XG4gICAgICAgICAgICB0aGlzLl9jb25jcmV0ZVBhcmFtZXRlcnMuYWRkKGNvbmNyZXRlUGFyYW1ldGVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiUGFyYW1ldHJpY0NsYXNzXCIsIHRoaXMpO1xuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xuICAgICAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgICAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiZ2VuZXJpY1BhcmFtZXRlcnNcIiwgdGhpcy5nZW5lcmljUGFyYW1ldGVycyk7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiY29uY3JldGVQYXJhbWV0ZXJzXCIsIHRoaXMuY29uY3JldGVQYXJhbWV0ZXJzKTtcbiAgICB9XG5cbiAgICBnZXQgZ2VuZXJpY1BhcmFtZXRlcnMoKTogU2V0PFBhcmFtZXRlclR5cGU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dlbmVyaWNQYXJhbWV0ZXJzO1xuICAgIH1cblxuICAgIGdldCBjb25jcmV0ZVBhcmFtZXRlcnMoKTogU2V0PFByaW1pdGl2ZVR5cGUgfCBDbGFzcyB8IEludGVyZmFjZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29uY3JldGVQYXJhbWV0ZXJzO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParametricFunction = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const function_1 = require("./function");
6
+ class ParametricFunction extends function_1.Function {
7
+ constructor() {
8
+ super(...arguments);
9
+ this._concreteParameters = new Set();
10
+ }
11
+ addConcreteParameter(concreteParameter) {
12
+ if (!this._concreteParameters.has(concreteParameter)) {
13
+ this._concreteParameters.add(concreteParameter);
14
+ }
15
+ }
16
+ getJSON() {
17
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("ParametricFunction", this);
18
+ this.addPropertiesToExporter(json);
19
+ return json.getJSON();
20
+ }
21
+ addPropertiesToExporter(exporter) {
22
+ super.addPropertiesToExporter(exporter);
23
+ exporter.addProperty("genericParameters", this.genericParameters);
24
+ exporter.addProperty("concreteParameters", this.concreteParameters);
25
+ }
26
+ get concreteParameters() {
27
+ return this._concreteParameters;
28
+ }
29
+ }
30
+ exports.ParametricFunction = ParametricFunction;
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldHJpY19mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvbW9kZWwvZmFtaXgvcGFyYW1ldHJpY19mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFFOUQseUNBQXNDO0FBSXRDLE1BQWEsa0JBQW1CLFNBQVEsbUJBQVE7SUFBaEQ7O1FBRVksd0JBQW1CLEdBQTJDLElBQUksR0FBRyxFQUFFLENBQUM7SUF1QnBGLENBQUM7SUFyQlUsb0JBQW9CLENBQUMsaUJBQW9EO1FBQzVFLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDcEQsQ0FBQztJQUNMLENBQUM7SUFFTSxPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEYsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNsRSxRQUFRLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNsQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNwQyxDQUFDO0NBQ0o7QUF6QkQsZ0RBeUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xuaW1wb3J0IHsgQ2xhc3MgfSBmcm9tIFwiLi9jbGFzc1wiO1xuaW1wb3J0IHsgRnVuY3Rpb24gfSBmcm9tIFwiLi9mdW5jdGlvblwiO1xuaW1wb3J0IHsgSW50ZXJmYWNlIH0gZnJvbSBcIi4vaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBQcmltaXRpdmVUeXBlIH0gZnJvbSBcIi4vcHJpbWl0aXZlX3R5cGVcIjtcblxuZXhwb3J0IGNsYXNzIFBhcmFtZXRyaWNGdW5jdGlvbiBleHRlbmRzIEZ1bmN0aW9uIHtcblxuICAgIHByaXZhdGUgX2NvbmNyZXRlUGFyYW1ldGVyczogU2V0PFByaW1pdGl2ZVR5cGUgfCBDbGFzcyB8IEludGVyZmFjZT4gPSBuZXcgU2V0KCk7XG5cbiAgICBwdWJsaWMgYWRkQ29uY3JldGVQYXJhbWV0ZXIoY29uY3JldGVQYXJhbWV0ZXI6IFByaW1pdGl2ZVR5cGUgfCBDbGFzcyB8IEludGVyZmFjZSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2NvbmNyZXRlUGFyYW1ldGVycy5oYXMoY29uY3JldGVQYXJhbWV0ZXIpKSB7XG4gICAgICAgICAgICB0aGlzLl9jb25jcmV0ZVBhcmFtZXRlcnMuYWRkKGNvbmNyZXRlUGFyYW1ldGVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiUGFyYW1ldHJpY0Z1bmN0aW9uXCIsIHRoaXMpO1xuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xuICAgICAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgICAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiZ2VuZXJpY1BhcmFtZXRlcnNcIiwgdGhpcy5nZW5lcmljUGFyYW1ldGVycyk7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiY29uY3JldGVQYXJhbWV0ZXJzXCIsIHRoaXMuY29uY3JldGVQYXJhbWV0ZXJzKTtcbiAgICB9XG5cbiAgICBnZXQgY29uY3JldGVQYXJhbWV0ZXJzKCk6IFNldDxQcmltaXRpdmVUeXBlIHwgQ2xhc3MgfCBJbnRlcmZhY2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmNyZXRlUGFyYW1ldGVycztcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParametricInterface = void 0;
4
+ const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
+ const interface_1 = require("./interface");
6
+ class ParametricInterface extends interface_1.Interface {
7
+ constructor() {
8
+ super(...arguments);
9
+ this._genericParameters = new Set();
10
+ this._concreteParameters = new Set();
11
+ }
12
+ addGenericParameter(genericParameter) {
13
+ if (!this._genericParameters.has(genericParameter)) {
14
+ this._genericParameters.add(genericParameter);
15
+ genericParameter.parentGeneric = this;
16
+ }
17
+ }
18
+ clearGenericParameters() {
19
+ this._genericParameters.clear();
20
+ }
21
+ addConcreteParameter(concreteParameter) {
22
+ if (!this._concreteParameters.has(concreteParameter)) {
23
+ this._concreteParameters.add(concreteParameter);
24
+ }
25
+ }
26
+ getJSON() {
27
+ const json = new famix_JSON_exporter_1.FamixJSONExporter("ParametricInterface", this);
28
+ this.addPropertiesToExporter(json);
29
+ return json.getJSON();
30
+ }
31
+ addPropertiesToExporter(exporter) {
32
+ super.addPropertiesToExporter(exporter);
33
+ exporter.addProperty("genericParameters", this.genericParameters);
34
+ exporter.addProperty("concreteParameters", this.concreteParameters);
35
+ }
36
+ get genericParameters() {
37
+ return this._genericParameters;
38
+ }
39
+ get concreteParameters() {
40
+ return this._concreteParameters;
41
+ }
42
+ }
43
+ exports.ParametricInterface = ParametricInterface;
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldHJpY19pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L3BhcmFtZXRyaWNfaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUU5RCwyQ0FBd0M7QUFJeEMsTUFBYSxtQkFBb0IsU0FBUSxxQkFBUztJQUFsRDs7UUFFWSx1QkFBa0IsR0FBdUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQWFuRCx3QkFBbUIsR0FBMkMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQTJCcEYsQ0FBQztJQXRDVSxtQkFBbUIsQ0FBQyxnQkFBK0I7UUFDdEQsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1lBQ2pELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUM5QyxnQkFBZ0IsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFDLENBQUM7SUFDTCxDQUFDO0lBRUQsc0JBQXNCO1FBQ2xCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBSU0sb0JBQW9CLENBQUMsaUJBQW9EO1FBQzVFLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDcEQsQ0FBQztJQUNMLENBQUM7SUFFTSxPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNsRSxRQUFRLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNqQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDcEMsQ0FBQztDQUNKO0FBMUNELGtEQTBDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcbmltcG9ydCB7IENsYXNzIH0gZnJvbSBcIi4vY2xhc3NcIjtcbmltcG9ydCB7IEludGVyZmFjZSB9IGZyb20gXCIuL2ludGVyZmFjZVwiO1xuaW1wb3J0IHsgUGFyYW1ldGVyVHlwZSB9IGZyb20gXCIuL3BhcmFtZXRlcl90eXBlXCI7XG5pbXBvcnQgeyBQcmltaXRpdmVUeXBlIH0gZnJvbSBcIi4vcHJpbWl0aXZlX3R5cGVcIjtcblxuZXhwb3J0IGNsYXNzIFBhcmFtZXRyaWNJbnRlcmZhY2UgZXh0ZW5kcyBJbnRlcmZhY2Uge1xuXG4gICAgcHJpdmF0ZSBfZ2VuZXJpY1BhcmFtZXRlcnM6IFNldDxQYXJhbWV0ZXJUeXBlPiA9IG5ldyBTZXQoKTtcblxuICAgIHB1YmxpYyBhZGRHZW5lcmljUGFyYW1ldGVyKGdlbmVyaWNQYXJhbWV0ZXI6IFBhcmFtZXRlclR5cGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9nZW5lcmljUGFyYW1ldGVycy5oYXMoZ2VuZXJpY1BhcmFtZXRlcikpIHtcbiAgICAgICAgICAgIHRoaXMuX2dlbmVyaWNQYXJhbWV0ZXJzLmFkZChnZW5lcmljUGFyYW1ldGVyKTtcbiAgICAgICAgICAgIGdlbmVyaWNQYXJhbWV0ZXIucGFyZW50R2VuZXJpYyA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbGVhckdlbmVyaWNQYXJhbWV0ZXJzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9nZW5lcmljUGFyYW1ldGVycy5jbGVhcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbmNyZXRlUGFyYW1ldGVyczogU2V0PFByaW1pdGl2ZVR5cGUgfCBDbGFzcyB8IEludGVyZmFjZT4gPSBuZXcgU2V0KCk7XG5cbiAgICBwdWJsaWMgYWRkQ29uY3JldGVQYXJhbWV0ZXIoY29uY3JldGVQYXJhbWV0ZXI6IFByaW1pdGl2ZVR5cGUgfCBDbGFzcyB8IEludGVyZmFjZSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2NvbmNyZXRlUGFyYW1ldGVycy5oYXMoY29uY3JldGVQYXJhbWV0ZXIpKSB7XG4gICAgICAgICAgICB0aGlzLl9jb25jcmV0ZVBhcmFtZXRlcnMuYWRkKGNvbmNyZXRlUGFyYW1ldGVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiUGFyYW1ldHJpY0ludGVyZmFjZVwiLCB0aGlzKTtcbiAgICAgICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcbiAgICAgICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImdlbmVyaWNQYXJhbWV0ZXJzXCIsIHRoaXMuZ2VuZXJpY1BhcmFtZXRlcnMpO1xuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImNvbmNyZXRlUGFyYW1ldGVyc1wiLCB0aGlzLmNvbmNyZXRlUGFyYW1ldGVycyk7XG4gICAgfVxuXG4gICAgZ2V0IGdlbmVyaWNQYXJhbWV0ZXJzKCk6IFNldDxQYXJhbWV0ZXJUeXBlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZW5lcmljUGFyYW1ldGVycztcbiAgICB9XG5cbiAgICBnZXQgY29uY3JldGVQYXJhbWV0ZXJzKCk6IFNldDxQcmltaXRpdmVUeXBlIHwgQ2xhc3MgfCBJbnRlcmZhY2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmNyZXRlUGFyYW1ldGVycztcbiAgICB9XG59XG4iXX0=