ts2famix 2.1.0-beta.2 → 3.0.0

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 (192) hide show
  1. package/.eslintrc.json +24 -24
  2. package/LICENSE +24 -24
  3. package/README.md +78 -78
  4. package/dist/analyze.js +3 -3
  5. package/dist/analyze_functions/process_functions.js +92 -62
  6. package/dist/famix_functions/EntityDictionary.js +672 -597
  7. package/dist/famix_functions/helpers_creation.js +18 -12
  8. package/dist/fqn.js +351 -18
  9. package/dist/lib/famix/famix_JSON_exporter.js +1 -1
  10. package/dist/lib/famix/famix_base_element.js +1 -1
  11. package/dist/lib/famix/famix_repository.js +14 -5
  12. package/dist/lib/famix/index.js +1 -1
  13. package/dist/lib/famix/model/famix/access.js +1 -1
  14. package/dist/lib/famix/model/famix/accessor.js +1 -1
  15. package/dist/lib/famix/model/famix/alias.js +1 -1
  16. package/dist/lib/famix/model/famix/arrow_function.js +1 -1
  17. package/dist/lib/famix/model/famix/behavioral_entity.js +1 -1
  18. package/dist/lib/famix/model/famix/class.js +1 -1
  19. package/dist/lib/famix/model/famix/comment.js +1 -1
  20. package/dist/lib/famix/model/famix/concretisation.js +1 -1
  21. package/dist/lib/famix/model/famix/container_entity.js +1 -1
  22. package/dist/lib/famix/model/famix/decorator.js +1 -1
  23. package/dist/lib/famix/model/famix/entity.js +1 -1
  24. package/dist/lib/famix/model/famix/enum.js +1 -1
  25. package/dist/lib/famix/model/famix/enum_value.js +1 -1
  26. package/dist/lib/famix/model/famix/function.js +1 -1
  27. package/dist/lib/famix/model/famix/import_clause.js +1 -1
  28. package/dist/lib/famix/model/famix/index.js +1 -1
  29. package/dist/lib/famix/model/famix/indexed_file_anchor.js +1 -1
  30. package/dist/lib/famix/model/famix/inheritance.js +1 -1
  31. package/dist/lib/famix/model/famix/interface.js +1 -1
  32. package/dist/lib/famix/model/famix/invocation.js +1 -1
  33. package/dist/lib/famix/model/famix/method.js +1 -1
  34. package/dist/lib/famix/model/famix/module.js +2 -2
  35. package/dist/lib/famix/model/famix/named_entity.js +1 -1
  36. package/dist/lib/famix/model/famix/parameter.js +1 -1
  37. package/dist/lib/famix/model/famix/parameter_concretisation.js +1 -1
  38. package/dist/lib/famix/model/famix/parameter_type.js +1 -1
  39. package/dist/lib/famix/model/famix/parametric_arrow_function.js +1 -1
  40. package/dist/lib/famix/model/famix/parametric_class.js +1 -1
  41. package/dist/lib/famix/model/famix/parametric_function.js +1 -1
  42. package/dist/lib/famix/model/famix/parametric_interface.js +1 -1
  43. package/dist/lib/famix/model/famix/parametric_method.js +1 -1
  44. package/dist/lib/famix/model/famix/primitive_type.js +1 -1
  45. package/dist/lib/famix/model/famix/property.js +1 -1
  46. package/dist/lib/famix/model/famix/reference.js +1 -1
  47. package/dist/lib/famix/model/famix/scoping_entity.js +1 -1
  48. package/dist/lib/famix/model/famix/script_entity.js +1 -1
  49. package/dist/lib/famix/model/famix/source_anchor.js +1 -1
  50. package/dist/lib/famix/model/famix/source_language.js +1 -1
  51. package/dist/lib/famix/model/famix/sourced_entity.js +1 -1
  52. package/dist/lib/famix/model/famix/structural_entity.js +1 -1
  53. package/dist/lib/famix/model/famix/type.js +1 -1
  54. package/dist/lib/famix/model/famix/variable.js +1 -1
  55. package/dist/lib/ts-complex/cyclomatic-service.js +1 -1
  56. package/dist/refactorer/refactor-getter-setter.js +1 -1
  57. package/dist/ts2famix-cli-wrapper.js +1 -1
  58. package/dist/ts2famix-cli.js +1 -1
  59. package/doc-uml/famix-typescript-model.puml +619 -607
  60. package/doc-uml/famix-typescript-model.svg +1 -1
  61. package/eslint.config.mjs +28 -28
  62. package/jest.config.json +1 -1
  63. package/package.json +70 -70
  64. package/src/analyze.ts +120 -120
  65. package/src/analyze_functions/process_functions.ts +1069 -1040
  66. package/src/famix_functions/EntityDictionary.ts +2061 -2016
  67. package/src/famix_functions/helpers_creation.ts +143 -135
  68. package/src/fqn.ts +416 -50
  69. package/src/generate_uml.sh +20 -20
  70. package/src/lib/famix/License.md +22 -22
  71. package/src/lib/famix/famix_JSON_exporter.ts +56 -56
  72. package/src/lib/famix/famix_base_element.ts +22 -22
  73. package/src/lib/famix/famix_repository.ts +288 -278
  74. package/src/lib/famix/index.ts +8 -8
  75. package/src/lib/famix/model/famix/access.ts +50 -50
  76. package/src/lib/famix/model/famix/accessor.ts +15 -15
  77. package/src/lib/famix/model/famix/alias.ts +39 -39
  78. package/src/lib/famix/model/famix/arrow_function.ts +15 -15
  79. package/src/lib/famix/model/famix/behavioral_entity.ts +97 -97
  80. package/src/lib/famix/model/famix/class.ts +85 -85
  81. package/src/lib/famix/model/famix/comment.ts +47 -47
  82. package/src/lib/famix/model/famix/concretisation.ts +40 -40
  83. package/src/lib/famix/model/famix/container_entity.ts +160 -160
  84. package/src/lib/famix/model/famix/decorator.ts +37 -37
  85. package/src/lib/famix/model/famix/entity.ts +15 -15
  86. package/src/lib/famix/model/famix/enum.ts +30 -30
  87. package/src/lib/famix/model/famix/enum_value.ts +28 -28
  88. package/src/lib/famix/model/famix/function.ts +15 -15
  89. package/src/lib/famix/model/famix/import_clause.ts +51 -51
  90. package/src/lib/famix/model/famix/index.ts +41 -41
  91. package/src/lib/famix/model/famix/indexed_file_anchor.ts +46 -46
  92. package/src/lib/famix/model/famix/inheritance.ts +40 -40
  93. package/src/lib/famix/model/famix/interface.ts +75 -75
  94. package/src/lib/famix/model/famix/invocation.ts +65 -65
  95. package/src/lib/famix/model/famix/method.ts +89 -89
  96. package/src/lib/famix/model/famix/module.ts +71 -71
  97. package/src/lib/famix/model/famix/named_entity.ts +95 -95
  98. package/src/lib/famix/model/famix/parameter.ts +28 -28
  99. package/src/lib/famix/model/famix/parameter_concretisation.ts +51 -51
  100. package/src/lib/famix/model/famix/parameter_type.ts +58 -58
  101. package/src/lib/famix/model/famix/parametric_arrow_function.ts +32 -32
  102. package/src/lib/famix/model/famix/parametric_class.ts +49 -49
  103. package/src/lib/famix/model/famix/parametric_function.ts +32 -32
  104. package/src/lib/famix/model/famix/parametric_interface.ts +49 -49
  105. package/src/lib/famix/model/famix/parametric_method.ts +32 -32
  106. package/src/lib/famix/model/famix/primitive_type.ts +15 -15
  107. package/src/lib/famix/model/famix/property.ts +94 -94
  108. package/src/lib/famix/model/famix/reference.ts +40 -40
  109. package/src/lib/famix/model/famix/scoping_entity.ts +35 -35
  110. package/src/lib/famix/model/famix/script_entity.ts +34 -34
  111. package/src/lib/famix/model/famix/source_anchor.ts +30 -30
  112. package/src/lib/famix/model/famix/source_language.ts +35 -35
  113. package/src/lib/famix/model/famix/sourced_entity.ts +70 -70
  114. package/src/lib/famix/model/famix/structural_entity.ts +43 -43
  115. package/src/lib/famix/model/famix/type.ts +87 -87
  116. package/src/lib/famix/model/famix/variable.ts +27 -27
  117. package/src/lib/famix/package.json +28 -28
  118. package/src/lib/ts-complex/cyclomatic-service.ts +83 -83
  119. package/src/refactorer/refactor-getter-setter.ts +140 -140
  120. package/src/ts2famix-cli-wrapper.ts +21 -21
  121. package/src/ts2famix-cli.ts +60 -60
  122. package/tsconfig.check-tests.json +14 -14
  123. package/tsconfig.json +73 -72
  124. package/.vscode/settings.json +0 -4
  125. package/TODO +0 -1
  126. package/arwea-fix.json +0 -1
  127. package/bogus.ts +0 -3
  128. package/class-diagram.puml +0 -792
  129. package/debug.txt +0 -13332
  130. package/debuglog.txt +0 -12073
  131. package/dist/famix2puml.js +0 -126
  132. package/dist/getClasses-arrow-body.js +0 -43
  133. package/dist/lib/famix/src/famix_JSON_exporter.js +0 -55
  134. package/dist/lib/famix/src/famix_base_element.js +0 -18
  135. package/dist/lib/famix/src/famix_repository.js +0 -224
  136. package/dist/lib/famix/src/index.js +0 -31
  137. package/dist/lib/famix/src/model/famix/access.js +0 -40
  138. package/dist/lib/famix/src/model/famix/accessor.js +0 -17
  139. package/dist/lib/famix/src/model/famix/alias.js +0 -33
  140. package/dist/lib/famix/src/model/famix/arrowFunction.js +0 -17
  141. package/dist/lib/famix/src/model/famix/arrow_function.js +0 -17
  142. package/dist/lib/famix/src/model/famix/behavioral_entity.js +0 -79
  143. package/dist/lib/famix/src/model/famix/class.js +0 -71
  144. package/dist/lib/famix/src/model/famix/comment.js +0 -39
  145. package/dist/lib/famix/src/model/famix/concretisation.js +0 -31
  146. package/dist/lib/famix/src/model/famix/container_entity.js +0 -126
  147. package/dist/lib/famix/src/model/famix/decorator.js +0 -32
  148. package/dist/lib/famix/src/model/famix/entity.js +0 -17
  149. package/dist/lib/famix/src/model/famix/enum.js +0 -31
  150. package/dist/lib/famix/src/model/famix/enum_value.js +0 -25
  151. package/dist/lib/famix/src/model/famix/function.js +0 -17
  152. package/dist/lib/famix/src/model/famix/implicit_variable.js +0 -17
  153. package/dist/lib/famix/src/model/famix/import_clause.js +0 -41
  154. package/dist/lib/famix/src/model/famix/index.js +0 -86
  155. package/dist/lib/famix/src/model/famix/indexed_file_anchor.js +0 -38
  156. package/dist/lib/famix/src/model/famix/inheritance.js +0 -33
  157. package/dist/lib/famix/src/model/famix/interface.js +0 -64
  158. package/dist/lib/famix/src/model/famix/invocation.js +0 -54
  159. package/dist/lib/famix/src/model/famix/method.js +0 -67
  160. package/dist/lib/famix/src/model/famix/module.js +0 -60
  161. package/dist/lib/famix/src/model/famix/named_entity.js +0 -78
  162. package/dist/lib/famix/src/model/famix/parameter.js +0 -25
  163. package/dist/lib/famix/src/model/famix/parameterConcretisation.js +0 -44
  164. package/dist/lib/famix/src/model/famix/parameter_concretisation.js +0 -44
  165. package/dist/lib/famix/src/model/famix/parameter_type.js +0 -45
  166. package/dist/lib/famix/src/model/famix/parametricArrowFunction.js +0 -29
  167. package/dist/lib/famix/src/model/famix/parametric_arrow_function.js +0 -31
  168. package/dist/lib/famix/src/model/famix/parametric_class.js +0 -44
  169. package/dist/lib/famix/src/model/famix/parametric_function.js +0 -31
  170. package/dist/lib/famix/src/model/famix/parametric_interface.js +0 -44
  171. package/dist/lib/famix/src/model/famix/parametric_method.js +0 -31
  172. package/dist/lib/famix/src/model/famix/primitive_type.js +0 -17
  173. package/dist/lib/famix/src/model/famix/property.js +0 -73
  174. package/dist/lib/famix/src/model/famix/reference.js +0 -33
  175. package/dist/lib/famix/src/model/famix/scoping_entity.js +0 -36
  176. package/dist/lib/famix/src/model/famix/script_entity.js +0 -29
  177. package/dist/lib/famix/src/model/famix/source_anchor.js +0 -27
  178. package/dist/lib/famix/src/model/famix/source_language.js +0 -35
  179. package/dist/lib/famix/src/model/famix/sourced_entity.js +0 -60
  180. package/dist/lib/famix/src/model/famix/structural_entity.js +0 -39
  181. package/dist/lib/famix/src/model/famix/text_anchor.js +0 -38
  182. package/dist/lib/famix/src/model/famix/type.js +0 -73
  183. package/dist/lib/famix/src/model/famix/variable.js +0 -24
  184. package/fqn-model.json +0 -1
  185. package/iterateGenericTypes.ts +0 -69
  186. package/out/class-diagram/class-diagram.svg +0 -1
  187. package/sample.json +0 -1
  188. package/sample.ts +0 -1
  189. package/stats.txt +0 -3091
  190. package/tabby-debug-output.txt +0 -19433
  191. package/ts2famix.log +0 -22656
  192. package/validate-references.js +0 -103
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Accessor = void 0;
4
- const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
- const method_1 = require("./method");
6
- class Accessor extends method_1.Method {
7
- getJSON() {
8
- const json = new famix_JSON_exporter_1.FamixJSONExporter("Accessor", this);
9
- this.addPropertiesToExporter(json);
10
- return json.getJSON();
11
- }
12
- addPropertiesToExporter(exporter) {
13
- super.addPropertiesToExporter(exporter);
14
- }
15
- }
16
- exports.Accessor = Accessor;
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L3NyYy9tb2RlbC9mYW1peC9hY2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFDOUQscUNBQWtDO0FBRWxDLE1BQWEsUUFBUyxTQUFRLGVBQU07SUFFM0IsT0FBTztRQUNaLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFFBQTJCO1FBQ3hELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0Y7QUFYRCw0QkFXQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcclxuaW1wb3J0IHsgTWV0aG9kIH0gZnJvbSBcIi4vbWV0aG9kXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQWNjZXNzb3IgZXh0ZW5kcyBNZXRob2Qge1xyXG4gIFxyXG4gIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIkFjY2Vzc29yXCIsIHRoaXMpO1xyXG4gICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcclxuICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcclxuICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Alias = void 0;
4
- const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
- const named_entity_1 = require("./named_entity");
6
- class Alias extends named_entity_1.NamedEntity {
7
- getJSON() {
8
- const json = new famix_JSON_exporter_1.FamixJSONExporter("Alias", 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("aliasedEntity", this.aliasedEntity);
16
- }
17
- get parentEntity() {
18
- return this._parentEntity;
19
- }
20
- set parentEntity(parentEntity) {
21
- this._parentEntity = parentEntity;
22
- parentEntity.addAlias(this);
23
- }
24
- get aliasedEntity() {
25
- return this._aliasedEntity;
26
- }
27
- set aliasedEntity(aliasedEntity) {
28
- this._aliasedEntity = aliasedEntity;
29
- aliasedEntity.addTypeAlias(this);
30
- }
31
- }
32
- exports.Alias = Alias;
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxpYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L3NyYy9tb2RlbC9mYW1peC9hbGlhcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFDOUQsaURBQTZDO0FBRzdDLE1BQWEsS0FBTSxTQUFRLDBCQUFXO0lBSzNCLE9BQU87UUFDVixNQUFNLElBQUksR0FBc0IsSUFBSSx1Q0FBaUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RELFFBQVEsQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxZQUF5QjtRQUN0QyxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQztRQUNsQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksYUFBYSxDQUFDLGFBQW1CO1FBQ2pDLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1FBQ3BDLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNKO0FBbENELHNCQWtDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcclxuaW1wb3J0IHsgTmFtZWRFbnRpdHkgfSBmcm9tIFwiLi9uYW1lZF9lbnRpdHlcIjtcclxuaW1wb3J0IHsgVHlwZSB9IGZyb20gXCIuL3R5cGVcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBBbGlhcyBleHRlbmRzIE5hbWVkRW50aXR5IHtcclxuXHJcbiAgICBwcml2YXRlIF9wYXJlbnRFbnRpdHkhOiBOYW1lZEVudGl0eTtcclxuICAgIHByaXZhdGUgX2FsaWFzZWRFbnRpdHkhOiBUeXBlO1xyXG5cclxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJBbGlhc1wiLCB0aGlzKTtcclxuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xyXG4gICAgICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXI6IEZhbWl4SlNPTkV4cG9ydGVyKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xyXG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwicGFyZW50VHlwZVwiLCB0aGlzLnBhcmVudEVudGl0eSk7XHJcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJhbGlhc2VkRW50aXR5XCIsIHRoaXMuYWxpYXNlZEVudGl0eSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHBhcmVudEVudGl0eSgpOiBOYW1lZEVudGl0eSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcmVudEVudGl0eTtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgcGFyZW50RW50aXR5KHBhcmVudEVudGl0eTogTmFtZWRFbnRpdHkpIHtcclxuICAgICAgICB0aGlzLl9wYXJlbnRFbnRpdHkgPSBwYXJlbnRFbnRpdHk7XHJcbiAgICAgICAgcGFyZW50RW50aXR5LmFkZEFsaWFzKHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBhbGlhc2VkRW50aXR5KCk6IFR5cGUge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hbGlhc2VkRW50aXR5O1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBhbGlhc2VkRW50aXR5KGFsaWFzZWRFbnRpdHk6IFR5cGUpIHtcclxuICAgICAgICB0aGlzLl9hbGlhc2VkRW50aXR5ID0gYWxpYXNlZEVudGl0eTtcclxuICAgICAgICBhbGlhc2VkRW50aXR5LmFkZFR5cGVBbGlhcyh0aGlzKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ArrowFunction = void 0;
4
- const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
- const behavioral_entity_1 = require("./behavioral_entity");
6
- class ArrowFunction extends behavioral_entity_1.BehavioralEntity {
7
- getJSON() {
8
- const json = new famix_JSON_exporter_1.FamixJSONExporter("ArrowFunction", this);
9
- this.addPropertiesToExporter(json);
10
- return json.getJSON();
11
- }
12
- addPropertiesToExporter(exporter) {
13
- super.addPropertiesToExporter(exporter);
14
- }
15
- }
16
- exports.ArrowFunction = ArrowFunction;
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyb3dGdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvc3JjL21vZGVsL2ZhbWl4L2Fycm93RnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQThEO0FBQzlELDJEQUF1RDtBQUV2RCxNQUFhLGFBQWMsU0FBUSxvQ0FBZ0I7SUFFMUMsT0FBTztRQUNaLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFFBQTJCO1FBQ3hELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0Y7QUFYRCxzQ0FXQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcclxuaW1wb3J0IHsgQmVoYXZpb3JhbEVudGl0eSB9IGZyb20gXCIuL2JlaGF2aW9yYWxfZW50aXR5XCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQXJyb3dGdW5jdGlvbiBleHRlbmRzIEJlaGF2aW9yYWxFbnRpdHkge1xyXG5cclxuICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xyXG4gICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJBcnJvd0Z1bmN0aW9uXCIsIHRoaXMpO1xyXG4gICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcclxuICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcclxuICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ArrowFunction = void 0;
4
- const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
- const behavioral_entity_1 = require("./behavioral_entity");
6
- class ArrowFunction extends behavioral_entity_1.BehavioralEntity {
7
- getJSON() {
8
- const json = new famix_JSON_exporter_1.FamixJSONExporter("ArrowFunction", this);
9
- this.addPropertiesToExporter(json);
10
- return json.getJSON();
11
- }
12
- addPropertiesToExporter(exporter) {
13
- super.addPropertiesToExporter(exporter);
14
- }
15
- }
16
- exports.ArrowFunction = ArrowFunction;
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyb3dfZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L3NyYy9tb2RlbC9mYW1peC9hcnJvd19mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFDOUQsMkRBQXVEO0FBRXZELE1BQWEsYUFBYyxTQUFRLG9DQUFnQjtJQUUxQyxPQUFPO1FBQ1osTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDeEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDRjtBQVhELHNDQVdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xyXG5pbXBvcnQgeyBCZWhhdmlvcmFsRW50aXR5IH0gZnJvbSBcIi4vYmVoYXZpb3JhbF9lbnRpdHlcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBBcnJvd0Z1bmN0aW9uIGV4dGVuZHMgQmVoYXZpb3JhbEVudGl0eSB7XHJcblxyXG4gIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIkFycm93RnVuY3Rpb25cIiwgdGhpcyk7XHJcbiAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xyXG4gICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xyXG4gICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,79 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BehavioralEntity = void 0;
4
- const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
- const container_entity_1 = require("./container_entity");
6
- class BehavioralEntity extends container_entity_1.ContainerEntity {
7
- constructor() {
8
- super(...arguments);
9
- this._parameters = new Set();
10
- this._incomingInvocations = new Set();
11
- this._genericParameters = new Set();
12
- }
13
- addParameter(parameter) {
14
- if (!this._parameters.has(parameter)) {
15
- this._parameters.add(parameter);
16
- parameter.parentEntity = this;
17
- }
18
- }
19
- addIncomingInvocation(incomingInvocation) {
20
- if (!this._incomingInvocations.has(incomingInvocation)) {
21
- this._incomingInvocations.add(incomingInvocation);
22
- incomingInvocation.addCandidate(this);
23
- }
24
- }
25
- addGenericParameter(genericParameter) {
26
- if (!this._genericParameters.has(genericParameter)) {
27
- this._genericParameters.add(genericParameter);
28
- genericParameter.parentGeneric = this;
29
- }
30
- }
31
- clearGenericParameters() {
32
- this._genericParameters.clear();
33
- }
34
- getJSON() {
35
- const json = new famix_JSON_exporter_1.FamixJSONExporter("BehavioralEntity", this);
36
- this.addPropertiesToExporter(json);
37
- return json.getJSON();
38
- }
39
- addPropertiesToExporter(exporter) {
40
- super.addPropertiesToExporter(exporter);
41
- exporter.addProperty("signature", this.signature);
42
- exporter.addProperty("parameters", this.parameters);
43
- exporter.addProperty("numberOfParameters", this.numberOfParameters);
44
- exporter.addProperty("incomingInvocations", this.incomingInvocations);
45
- exporter.addProperty("declaredType", this.declaredType);
46
- /* don't add the property here, since it doesn't apply to all subclasses */
47
- // exporter.addProperty("genericParameters", this.getGenericParameters());
48
- }
49
- get signature() {
50
- return this._signature;
51
- }
52
- set signature(signature) {
53
- this._signature = signature;
54
- }
55
- get parameters() {
56
- return this._parameters;
57
- }
58
- get numberOfParameters() {
59
- return this._numberOfParameters;
60
- }
61
- set numberOfParameters(numberOfParameters) {
62
- this._numberOfParameters = numberOfParameters;
63
- }
64
- get incomingInvocations() {
65
- return this._incomingInvocations;
66
- }
67
- get declaredType() {
68
- return this._declaredType;
69
- }
70
- set declaredType(declaredType) {
71
- this._declaredType = declaredType;
72
- declaredType.addBehavioralEntityWithDeclaredType(this);
73
- }
74
- get genericParameters() {
75
- return this._genericParameters;
76
- }
77
- }
78
- exports.BehavioralEntity = BehavioralEntity;
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoYXZpb3JhbF9lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L3NyYy9tb2RlbC9mYW1peC9iZWhhdmlvcmFsX2VudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFFOUQseURBQXFEO0FBS3JELE1BQWEsZ0JBQWlCLFNBQVEsa0NBQWU7SUFBckQ7O1FBR1ksZ0JBQVcsR0FBbUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVV4Qyx5QkFBb0IsR0FBb0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVVsRCx1QkFBa0IsR0FBdUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQWtFL0QsQ0FBQztJQXBGVSxZQUFZLENBQUMsU0FBb0I7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDaEMsU0FBUyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDbEMsQ0FBQztJQUNMLENBQUM7SUFLTSxxQkFBcUIsQ0FBQyxrQkFBOEI7UUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO1lBQ3JELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUNsRCxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNMLENBQUM7SUFLTSxtQkFBbUIsQ0FBQyxnQkFBK0I7UUFDdEQsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1lBQ2pELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUM5QyxnQkFBZ0IsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFDLENBQUM7SUFDTCxDQUFDO0lBRUQsc0JBQXNCO1FBQ2xCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU0sT0FBTztRQUNWLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDdEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLFFBQVEsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsRCxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNwRSxRQUFRLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3RFLFFBQVEsQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN4RCwyRUFBMkU7UUFDM0UsNkVBQTZFO0lBQ2pGLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksU0FBUyxDQUFDLFNBQWlCO1FBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLGtCQUFrQixDQUFDLGtCQUEwQjtRQUM3QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsa0JBQWtCLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ25CLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksWUFBWSxDQUFDLFlBQWtCO1FBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLFlBQVksQ0FBQyxtQ0FBbUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDakIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDbkMsQ0FBQztDQUNKO0FBekZELDRDQXlGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcclxuaW1wb3J0IHsgVHlwZSB9IGZyb20gXCIuL3R5cGVcIjtcclxuaW1wb3J0IHsgQ29udGFpbmVyRW50aXR5IH0gZnJvbSBcIi4vY29udGFpbmVyX2VudGl0eVwiO1xyXG5pbXBvcnQgeyBQYXJhbWV0ZXIgfSBmcm9tIFwiLi9wYXJhbWV0ZXJcIjtcclxuaW1wb3J0IHsgSW52b2NhdGlvbiB9IGZyb20gXCIuL2ludm9jYXRpb25cIjtcclxuaW1wb3J0IHsgUGFyYW1ldGVyVHlwZSB9IGZyb20gXCIuL3BhcmFtZXRlcl90eXBlXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQmVoYXZpb3JhbEVudGl0eSBleHRlbmRzIENvbnRhaW5lckVudGl0eSB7XHJcblxyXG4gICAgcHJpdmF0ZSBfc2lnbmF0dXJlITogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfcGFyYW1ldGVyczogU2V0PFBhcmFtZXRlcj4gPSBuZXcgU2V0KCk7XHJcblxyXG4gICAgcHVibGljIGFkZFBhcmFtZXRlcihwYXJhbWV0ZXI6IFBhcmFtZXRlcik6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5fcGFyYW1ldGVycy5oYXMocGFyYW1ldGVyKSkge1xyXG4gICAgICAgICAgICB0aGlzLl9wYXJhbWV0ZXJzLmFkZChwYXJhbWV0ZXIpO1xyXG4gICAgICAgICAgICBwYXJhbWV0ZXIucGFyZW50RW50aXR5ID0gdGhpcztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfbnVtYmVyT2ZQYXJhbWV0ZXJzITogbnVtYmVyO1xyXG4gICAgcHJpdmF0ZSBfaW5jb21pbmdJbnZvY2F0aW9uczogU2V0PEludm9jYXRpb24+ID0gbmV3IFNldCgpO1xyXG5cclxuICAgIHB1YmxpYyBhZGRJbmNvbWluZ0ludm9jYXRpb24oaW5jb21pbmdJbnZvY2F0aW9uOiBJbnZvY2F0aW9uKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9pbmNvbWluZ0ludm9jYXRpb25zLmhhcyhpbmNvbWluZ0ludm9jYXRpb24pKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2luY29taW5nSW52b2NhdGlvbnMuYWRkKGluY29taW5nSW52b2NhdGlvbik7XHJcbiAgICAgICAgICAgIGluY29taW5nSW52b2NhdGlvbi5hZGRDYW5kaWRhdGUodGhpcyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2RlY2xhcmVkVHlwZSE6IFR5cGU7XHJcbiAgICBwcml2YXRlIF9nZW5lcmljUGFyYW1ldGVyczogU2V0PFBhcmFtZXRlclR5cGU+ID0gbmV3IFNldCgpO1xyXG5cclxuICAgIHB1YmxpYyBhZGRHZW5lcmljUGFyYW1ldGVyKGdlbmVyaWNQYXJhbWV0ZXI6IFBhcmFtZXRlclR5cGUpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuX2dlbmVyaWNQYXJhbWV0ZXJzLmhhcyhnZW5lcmljUGFyYW1ldGVyKSkge1xyXG4gICAgICAgICAgICB0aGlzLl9nZW5lcmljUGFyYW1ldGVycy5hZGQoZ2VuZXJpY1BhcmFtZXRlcik7XHJcbiAgICAgICAgICAgIGdlbmVyaWNQYXJhbWV0ZXIucGFyZW50R2VuZXJpYyA9IHRoaXM7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNsZWFyR2VuZXJpY1BhcmFtZXRlcnMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZ2VuZXJpY1BhcmFtZXRlcnMuY2xlYXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiQmVoYXZpb3JhbEVudGl0eVwiLCB0aGlzKTtcclxuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xyXG4gICAgICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXI6IEZhbWl4SlNPTkV4cG9ydGVyKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xyXG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwic2lnbmF0dXJlXCIsIHRoaXMuc2lnbmF0dXJlKTtcclxuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcInBhcmFtZXRlcnNcIiwgdGhpcy5wYXJhbWV0ZXJzKTtcclxuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcIm51bWJlck9mUGFyYW1ldGVyc1wiLCB0aGlzLm51bWJlck9mUGFyYW1ldGVycyk7XHJcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJpbmNvbWluZ0ludm9jYXRpb25zXCIsIHRoaXMuaW5jb21pbmdJbnZvY2F0aW9ucyk7XHJcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJkZWNsYXJlZFR5cGVcIiwgdGhpcy5kZWNsYXJlZFR5cGUpO1xyXG4gICAgICAgIC8qIGRvbid0IGFkZCB0aGUgcHJvcGVydHkgaGVyZSwgc2luY2UgaXQgZG9lc24ndCBhcHBseSB0byBhbGwgc3ViY2xhc3NlcyAqL1xyXG4gICAgICAgIC8vICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiZ2VuZXJpY1BhcmFtZXRlcnNcIiwgdGhpcy5nZXRHZW5lcmljUGFyYW1ldGVycygpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgc2lnbmF0dXJlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NpZ25hdHVyZTtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgc2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fc2lnbmF0dXJlID0gc2lnbmF0dXJlO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBwYXJhbWV0ZXJzKCk6IFNldDxQYXJhbWV0ZXI+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcGFyYW1ldGVycztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgbnVtYmVyT2ZQYXJhbWV0ZXJzKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX251bWJlck9mUGFyYW1ldGVycztcclxuICAgIH1cclxuXHJcbiAgICBzZXQgbnVtYmVyT2ZQYXJhbWV0ZXJzKG51bWJlck9mUGFyYW1ldGVyczogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fbnVtYmVyT2ZQYXJhbWV0ZXJzID0gbnVtYmVyT2ZQYXJhbWV0ZXJzO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpbmNvbWluZ0ludm9jYXRpb25zKCk6IFNldDxJbnZvY2F0aW9uPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luY29taW5nSW52b2NhdGlvbnM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlY2xhcmVkVHlwZSgpOiBUeXBlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGVjbGFyZWRUeXBlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBkZWNsYXJlZFR5cGUoZGVjbGFyZWRUeXBlOiBUeXBlKSB7XHJcbiAgICAgICAgdGhpcy5fZGVjbGFyZWRUeXBlID0gZGVjbGFyZWRUeXBlO1xyXG4gICAgICAgIGRlY2xhcmVkVHlwZS5hZGRCZWhhdmlvcmFsRW50aXR5V2l0aERlY2xhcmVkVHlwZSh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZ2VuZXJpY1BhcmFtZXRlcnMoKTogU2V0PFBhcmFtZXRlclR5cGU+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2VuZXJpY1BhcmFtZXRlcnM7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,71 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Class = void 0;
4
- const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
- const type_1 = require("./type");
6
- class Class extends type_1.Type {
7
- constructor() {
8
- super(...arguments);
9
- this._properties = new Set();
10
- this._methods = new Set();
11
- this._superInheritances = new Set();
12
- this._subInheritances = new Set();
13
- }
14
- addProperty(property) {
15
- if (!this._properties.has(property)) {
16
- this._properties.add(property);
17
- property.parentEntity = this;
18
- }
19
- }
20
- addMethod(method) {
21
- if (!this._methods.has(method)) {
22
- this._methods.add(method);
23
- method.parentEntity = this;
24
- }
25
- }
26
- addSuperInheritance(superInheritance) {
27
- if (!this._superInheritances.has(superInheritance)) {
28
- this._superInheritances.add(superInheritance);
29
- superInheritance.subclass = this;
30
- }
31
- }
32
- addSubInheritance(subInheritance) {
33
- if (!this._subInheritances.has(subInheritance)) {
34
- this._subInheritances.add(subInheritance);
35
- subInheritance.superclass = this;
36
- }
37
- }
38
- getJSON() {
39
- const json = new famix_JSON_exporter_1.FamixJSONExporter("Class", this);
40
- this.addPropertiesToExporter(json);
41
- return json.getJSON();
42
- }
43
- addPropertiesToExporter(exporter) {
44
- super.addPropertiesToExporter(exporter);
45
- exporter.addProperty("isAbstract", this.isAbstract);
46
- exporter.addProperty("attributes", this.properties); // Moose (10) codes them as attributes
47
- exporter.addProperty("methods", this.methods);
48
- exporter.addProperty("superInheritances", this.superInheritances);
49
- exporter.addProperty("subInheritances", this.subInheritances);
50
- }
51
- get isAbstract() {
52
- return this._isAbstract;
53
- }
54
- set isAbstract(isAbstract) {
55
- this._isAbstract = isAbstract;
56
- }
57
- get properties() {
58
- return this._properties;
59
- }
60
- get methods() {
61
- return this._methods;
62
- }
63
- get superInheritances() {
64
- return this._superInheritances;
65
- }
66
- get subInheritances() {
67
- return this._subInheritances;
68
- }
69
- }
70
- exports.Class = Class;
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L3NyYy9tb2RlbC9mYW1peC9jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFDOUQsaUNBQThCO0FBSzlCLE1BQWEsS0FBTSxTQUFRLFdBQUk7SUFBL0I7O1FBR1ksZ0JBQVcsR0FBa0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVN2QyxhQUFRLEdBQWdCLElBQUksR0FBRyxFQUFFLENBQUM7UUFTbEMsdUJBQWtCLEdBQXFCLElBQUksR0FBRyxFQUFFLENBQUM7UUFTakQscUJBQWdCLEdBQXFCLElBQUksR0FBRyxFQUFFLENBQUM7SUFnRDNELENBQUM7SUF6RVUsV0FBVyxDQUFDLFFBQWtCO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQy9CLFFBQVEsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLENBQUM7SUFDTCxDQUFDO0lBSU0sU0FBUyxDQUFDLE1BQWM7UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDMUIsTUFBTSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDL0IsQ0FBQztJQUNMLENBQUM7SUFJTSxtQkFBbUIsQ0FBQyxnQkFBNkI7UUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1lBQ2pELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUM5QyxnQkFBZ0IsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JDLENBQUM7SUFDTCxDQUFDO0lBSU0saUJBQWlCLENBQUMsY0FBMkI7UUFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztZQUM3QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFDLGNBQWMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3JDLENBQUM7SUFDTCxDQUFDO0lBR00sT0FBTztRQUNWLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFFBQTJCO1FBQ3RELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsc0NBQXNDO1FBQzNGLFFBQVEsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QyxRQUFRLENBQUMsV0FBVyxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2xFLFFBQVEsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLFVBQW1CO1FBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDakIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7Q0FDSjtBQTlFRCxzQkE4RUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEpTT05FeHBvcnRlciB9IGZyb20gXCIuLi8uLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XHJcbmltcG9ydCB7IFR5cGUgfSBmcm9tIFwiLi90eXBlXCI7XHJcbmltcG9ydCB7IE1ldGhvZCB9IGZyb20gXCIuL21ldGhvZFwiO1xyXG5pbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gXCIuL3Byb3BlcnR5XCI7XHJcbmltcG9ydCB7IEluaGVyaXRhbmNlIH0gZnJvbSBcIi4vaW5oZXJpdGFuY2VcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBDbGFzcyBleHRlbmRzIFR5cGUge1xyXG5cclxuICAgIHByaXZhdGUgX2lzQWJzdHJhY3QhOiBib29sZWFuO1xyXG4gICAgcHJpdmF0ZSBfcHJvcGVydGllczogU2V0PFByb3BlcnR5PiA9IG5ldyBTZXQoKTtcclxuXHJcbiAgICBwdWJsaWMgYWRkUHJvcGVydHkocHJvcGVydHk6IFByb3BlcnR5KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9wcm9wZXJ0aWVzLmhhcyhwcm9wZXJ0eSkpIHtcclxuICAgICAgICAgICAgdGhpcy5fcHJvcGVydGllcy5hZGQocHJvcGVydHkpO1xyXG4gICAgICAgICAgICBwcm9wZXJ0eS5wYXJlbnRFbnRpdHkgPSB0aGlzO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9tZXRob2RzOiBTZXQ8TWV0aG9kPiA9IG5ldyBTZXQoKTtcclxuXHJcbiAgICBwdWJsaWMgYWRkTWV0aG9kKG1ldGhvZDogTWV0aG9kKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9tZXRob2RzLmhhcyhtZXRob2QpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX21ldGhvZHMuYWRkKG1ldGhvZCk7XHJcbiAgICAgICAgICAgIG1ldGhvZC5wYXJlbnRFbnRpdHkgPSB0aGlzO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zdXBlckluaGVyaXRhbmNlczogU2V0PEluaGVyaXRhbmNlPiA9IG5ldyBTZXQoKTtcclxuXHJcbiAgICBwdWJsaWMgYWRkU3VwZXJJbmhlcml0YW5jZShzdXBlckluaGVyaXRhbmNlOiBJbmhlcml0YW5jZSk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5fc3VwZXJJbmhlcml0YW5jZXMuaGFzKHN1cGVySW5oZXJpdGFuY2UpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3N1cGVySW5oZXJpdGFuY2VzLmFkZChzdXBlckluaGVyaXRhbmNlKTtcclxuICAgICAgICAgICAgc3VwZXJJbmhlcml0YW5jZS5zdWJjbGFzcyA9IHRoaXM7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3N1YkluaGVyaXRhbmNlczogU2V0PEluaGVyaXRhbmNlPiA9IG5ldyBTZXQoKTtcclxuXHJcbiAgICBwdWJsaWMgYWRkU3ViSW5oZXJpdGFuY2Uoc3ViSW5oZXJpdGFuY2U6IEluaGVyaXRhbmNlKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9zdWJJbmhlcml0YW5jZXMuaGFzKHN1YkluaGVyaXRhbmNlKSkge1xyXG4gICAgICAgICAgICB0aGlzLl9zdWJJbmhlcml0YW5jZXMuYWRkKHN1YkluaGVyaXRhbmNlKTtcclxuICAgICAgICAgICAgc3ViSW5oZXJpdGFuY2Uuc3VwZXJjbGFzcyA9IHRoaXM7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiQ2xhc3NcIiwgdGhpcyk7XHJcbiAgICAgICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcclxuICAgICAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcclxuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImlzQWJzdHJhY3RcIiwgdGhpcy5pc0Fic3RyYWN0KTtcclxuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImF0dHJpYnV0ZXNcIiwgdGhpcy5wcm9wZXJ0aWVzKTsgLy8gTW9vc2UgKDEwKSBjb2RlcyB0aGVtIGFzIGF0dHJpYnV0ZXNcclxuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcIm1ldGhvZHNcIiwgdGhpcy5tZXRob2RzKTtcclxuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcInN1cGVySW5oZXJpdGFuY2VzXCIsIHRoaXMuc3VwZXJJbmhlcml0YW5jZXMpO1xyXG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwic3ViSW5oZXJpdGFuY2VzXCIsIHRoaXMuc3ViSW5oZXJpdGFuY2VzKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgaXNBYnN0cmFjdCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5faXNBYnN0cmFjdDtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgaXNBYnN0cmFjdChpc0Fic3RyYWN0OiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5faXNBYnN0cmFjdCA9IGlzQWJzdHJhY3Q7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHByb3BlcnRpZXMoKTogU2V0PFByb3BlcnR5PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Byb3BlcnRpZXM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IG1ldGhvZHMoKTogU2V0PE1ldGhvZD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tZXRob2RzO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBzdXBlckluaGVyaXRhbmNlcygpOiBTZXQ8SW5oZXJpdGFuY2U+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc3VwZXJJbmhlcml0YW5jZXM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHN1YkluaGVyaXRhbmNlcygpOiBTZXQ8SW5oZXJpdGFuY2U+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc3ViSW5oZXJpdGFuY2VzO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Comment = void 0;
4
- const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
- const sourced_entity_1 = require("./sourced_entity");
6
- class Comment extends sourced_entity_1.SourcedEntity {
7
- getJSON() {
8
- const json = new famix_JSON_exporter_1.FamixJSONExporter("Comment", this);
9
- this.addPropertiesToExporter(json);
10
- return json.getJSON();
11
- }
12
- addPropertiesToExporter(exporter) {
13
- super.addPropertiesToExporter(exporter);
14
- exporter.addProperty("isJSDoc", this.isJSDoc);
15
- exporter.addProperty("commentedEntity", this.container);
16
- exporter.addProperty("content", this.content);
17
- }
18
- get isJSDoc() {
19
- return this._isJSDoc;
20
- }
21
- set isJSDoc(isJSDoc) {
22
- this._isJSDoc = isJSDoc;
23
- }
24
- get container() {
25
- return this._container;
26
- }
27
- set container(container) {
28
- this._container = container;
29
- container.addComment(this);
30
- }
31
- get content() {
32
- return this._content;
33
- }
34
- set content(content) {
35
- this._content = content;
36
- }
37
- }
38
- exports.Comment = Comment;
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvc3JjL21vZGVsL2ZhbWl4L2NvbW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQThEO0FBQzlELHFEQUFpRDtBQUVqRCxNQUFhLE9BQVEsU0FBUSw4QkFBYTtJQU1qQyxPQUFPO1FBQ1osTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDeEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLFFBQVEsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QyxRQUFRLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4RCxRQUFRLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVDLElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsT0FBZ0I7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxTQUFTLENBQUMsU0FBd0I7UUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxPQUFlO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQzVCLENBQUM7Q0FDSjtBQTNDRCwwQkEyQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEpTT05FeHBvcnRlciB9IGZyb20gXCIuLi8uLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XHJcbmltcG9ydCB7IFNvdXJjZWRFbnRpdHkgfSBmcm9tIFwiLi9zb3VyY2VkX2VudGl0eVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIENvbW1lbnQgZXh0ZW5kcyBTb3VyY2VkRW50aXR5IHtcclxuXHJcbiAgcHJpdmF0ZSBfaXNKU0RvYyE6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBfY29udGFpbmVyITogU291cmNlZEVudGl0eTtcclxuICBwcml2YXRlIF9jb250ZW50ITogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xyXG4gICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJDb21tZW50XCIsIHRoaXMpO1xyXG4gICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcclxuICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcclxuICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcclxuICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiaXNKU0RvY1wiLCB0aGlzLmlzSlNEb2MpO1xyXG4gICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJjb21tZW50ZWRFbnRpdHlcIiwgdGhpcy5jb250YWluZXIpO1xyXG4gICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJjb250ZW50XCIsIHRoaXMuY29udGVudCk7XHJcbiAgfVxyXG5cclxuICAgIGdldCBpc0pTRG9jKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9pc0pTRG9jO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBpc0pTRG9jKGlzSlNEb2M6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9pc0pTRG9jID0gaXNKU0RvYztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29udGFpbmVyKCk6IFNvdXJjZWRFbnRpdHkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jb250YWluZXI7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGNvbnRhaW5lcihjb250YWluZXI6IFNvdXJjZWRFbnRpdHkpIHtcclxuICAgICAgICB0aGlzLl9jb250YWluZXIgPSBjb250YWluZXI7XHJcbiAgICAgICAgY29udGFpbmVyLmFkZENvbW1lbnQodGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvbnRlbnQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgY29udGVudChjb250ZW50OiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9jb250ZW50ID0gY29udGVudDtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Concretisation = void 0;
4
- const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
- const entity_1 = require("./entity");
6
- class Concretisation extends entity_1.Entity {
7
- getJSON() {
8
- const json = new famix_JSON_exporter_1.FamixJSONExporter("Concretisation", this);
9
- this.addPropertiesToExporter(json);
10
- return json.getJSON();
11
- }
12
- addPropertiesToExporter(exporter) {
13
- super.addPropertiesToExporter(exporter);
14
- exporter.addProperty("genericEntity", this.genericEntity);
15
- exporter.addProperty("concreteEntity", this.concreteEntity);
16
- }
17
- get genericEntity() {
18
- return this._genericEntity;
19
- }
20
- set genericEntity(genericEntity) {
21
- this._genericEntity = genericEntity;
22
- }
23
- get concreteEntity() {
24
- return this._concreteEntity;
25
- }
26
- set concreteEntity(concreteEntity) {
27
- this._concreteEntity = concreteEntity;
28
- }
29
- }
30
- exports.Concretisation = Concretisation;
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uY3JldGlzYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L3NyYy9tb2RlbC9mYW1peC9jb25jcmV0aXNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFDOUQscUNBQWtDO0FBTWxDLE1BQWEsY0FBZSxTQUFRLGVBQU07SUFLL0IsT0FBTztRQUNaLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDeEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLFFBQVEsQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMxRCxRQUFRLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLGFBQWEsQ0FBQyxhQUE0RjtRQUMxRyxJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLGNBQWMsQ0FBQyxjQUE2RjtRQUM1RyxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztJQUMxQyxDQUFDO0NBQ0o7QUFoQ0Qsd0NBZ0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xyXG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tIFwiLi9lbnRpdHlcIjtcclxuaW1wb3J0IHsgUGFyYW1ldHJpY0NsYXNzIH0gZnJvbSBcIi4vcGFyYW1ldHJpY19jbGFzc1wiO1xyXG5pbXBvcnQgeyBQYXJhbWV0cmljRnVuY3Rpb24gfSBmcm9tIFwiLi9wYXJhbWV0cmljX2Z1bmN0aW9uXCI7XHJcbmltcG9ydCB7IFBhcmFtZXRyaWNJbnRlcmZhY2UgfSBmcm9tIFwiLi9wYXJhbWV0cmljX2ludGVyZmFjZVwiO1xyXG5pbXBvcnQgeyBQYXJhbWV0cmljTWV0aG9kIH0gZnJvbSBcIi4vcGFyYW1ldHJpY19tZXRob2RcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBDb25jcmV0aXNhdGlvbiBleHRlbmRzIEVudGl0eSB7XHJcblxyXG4gICAgcHJpdmF0ZSBfZ2VuZXJpY0VudGl0eSE6IFBhcmFtZXRyaWNDbGFzcyB8IFBhcmFtZXRyaWNJbnRlcmZhY2UgfCBQYXJhbWV0cmljRnVuY3Rpb24gfCBQYXJhbWV0cmljTWV0aG9kO1xyXG4gICAgcHJpdmF0ZSBfY29uY3JldGVFbnRpdHkhOiBQYXJhbWV0cmljQ2xhc3MgfCBQYXJhbWV0cmljSW50ZXJmYWNlIHwgUGFyYW1ldHJpY0Z1bmN0aW9uIHwgUGFyYW1ldHJpY01ldGhvZDsgIC8vIGlzIHRoaXMgY29ycmVjdD9cclxuXHJcbiAgICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xyXG4gICAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIkNvbmNyZXRpc2F0aW9uXCIsIHRoaXMpO1xyXG4gICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xyXG4gICAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XHJcbiAgICB9XHJcbiAgXHJcbiAgICBwdWJsaWMgYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXI6IEZhbWl4SlNPTkV4cG9ydGVyKTogdm9pZCB7XHJcbiAgICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcclxuICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJnZW5lcmljRW50aXR5XCIsIHRoaXMuZ2VuZXJpY0VudGl0eSk7XHJcbiAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiY29uY3JldGVFbnRpdHlcIiwgdGhpcy5jb25jcmV0ZUVudGl0eSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGdlbmVyaWNFbnRpdHkoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dlbmVyaWNFbnRpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGdlbmVyaWNFbnRpdHkoZ2VuZXJpY0VudGl0eTogUGFyYW1ldHJpY0NsYXNzIHwgUGFyYW1ldHJpY0ludGVyZmFjZSB8IFBhcmFtZXRyaWNGdW5jdGlvbiB8IFBhcmFtZXRyaWNNZXRob2QpIHtcclxuICAgICAgICB0aGlzLl9nZW5lcmljRW50aXR5ID0gZ2VuZXJpY0VudGl0eTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29uY3JldGVFbnRpdHkoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmNyZXRlRW50aXR5O1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBjb25jcmV0ZUVudGl0eShjb25jcmV0ZUVudGl0eTogUGFyYW1ldHJpY0NsYXNzIHwgUGFyYW1ldHJpY0ludGVyZmFjZSB8IFBhcmFtZXRyaWNGdW5jdGlvbiB8IFBhcmFtZXRyaWNNZXRob2QpIHtcclxuICAgICAgICB0aGlzLl9jb25jcmV0ZUVudGl0eSA9IGNvbmNyZXRlRW50aXR5O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,126 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ContainerEntity = void 0;
4
- const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
- const named_entity_1 = require("./named_entity");
6
- class ContainerEntity extends named_entity_1.NamedEntity {
7
- constructor() {
8
- super(...arguments);
9
- this._childrenContainerEntities = new Set();
10
- this._outgoingReferences = new Set();
11
- this._outgoingInvocations = new Set();
12
- this._accesses = new Set();
13
- this.childrenTypes = new Set();
14
- this.childrenFunctions = new Set();
15
- this._variables = new Set();
16
- }
17
- addChildContainerEntity(childContainerEntity) {
18
- if (!this._childrenContainerEntities.has(childContainerEntity)) {
19
- this._childrenContainerEntities.add(childContainerEntity);
20
- childContainerEntity.parentContainerEntity = this;
21
- }
22
- }
23
- addOutgoingReference(outgoingReference) {
24
- if (!this._outgoingReferences.has(outgoingReference)) {
25
- this._outgoingReferences.add(outgoingReference);
26
- outgoingReference.source = this;
27
- }
28
- }
29
- addOutgoingInvocation(outgoingInvocation) {
30
- if (!this._outgoingInvocations.has(outgoingInvocation)) {
31
- this._outgoingInvocations.add(outgoingInvocation);
32
- outgoingInvocation.sender = this;
33
- }
34
- }
35
- addAccess(access) {
36
- if (!this._accesses.has(access)) {
37
- this._accesses.add(access);
38
- access.accessor = this;
39
- }
40
- }
41
- addType(childType) {
42
- if (!this.childrenTypes.has(childType)) {
43
- this.childrenTypes.add(childType);
44
- childType.parentContainerEntity = this;
45
- }
46
- }
47
- addFunction(childFunction) {
48
- if (!this.childrenFunctions.has(childFunction)) {
49
- this.childrenFunctions.add(childFunction);
50
- childFunction.parentContainerEntity = this;
51
- }
52
- }
53
- addVariable(variable) {
54
- if (!this._variables.has(variable)) {
55
- this._variables.add(variable);
56
- variable.parentContainerEntity = this;
57
- }
58
- }
59
- getJSON() {
60
- const json = new famix_JSON_exporter_1.FamixJSONExporter("ContainerEntity", this);
61
- this.addPropertiesToExporter(json);
62
- return json.getJSON();
63
- }
64
- addPropertiesToExporter(exporter) {
65
- super.addPropertiesToExporter(exporter);
66
- // exporter.addProperty("parentBehaviouralEntity", this.getParentContainerEntity());
67
- // exporter.addProperty("childrenContainerEntities", this.getChildrenContainerEntities());
68
- exporter.addProperty("cyclomaticComplexity", this.cyclomaticComplexity);
69
- exporter.addProperty("numberOfStatements", this.numberOfStatements);
70
- // exporter.addProperty("outgoingReferences", this.getOutgoingReferences()); /* derived ?*/
71
- exporter.addProperty("numberOfLinesOfCode", this.numberOfLinesOfCode);
72
- // exporter.addProperty("outgoingInvocations", this.getOutgoingInvocations()); /* derived ?*/
73
- // exporter.addProperty("accesses", this.getAccesses()); /* derived ?*/
74
- exporter.addProperty("types", this.types);
75
- exporter.addProperty("functions", this.functions);
76
- exporter.addProperty("localVariables", this.variables);
77
- }
78
- get parentContainerEntity() {
79
- return this._parentContainerEntity;
80
- }
81
- set parentContainerEntity(parentContainerEntity) {
82
- this._parentContainerEntity = parentContainerEntity;
83
- parentContainerEntity.addChildContainerEntity(this);
84
- }
85
- get childrenContainerEntities() {
86
- return this._childrenContainerEntities;
87
- }
88
- get cyclomaticComplexity() {
89
- return this._cyclomaticComplexity;
90
- }
91
- set cyclomaticComplexity(cyclomaticComplexity) {
92
- this._cyclomaticComplexity = cyclomaticComplexity;
93
- }
94
- get numberOfStatements() {
95
- return this._numberOfStatements;
96
- }
97
- set numberOfStatements(numberOfStatements) {
98
- this._numberOfStatements = numberOfStatements;
99
- }
100
- get outgoingReferences() {
101
- return this._outgoingReferences;
102
- }
103
- get numberOfLinesOfCode() {
104
- return this._numberOfLinesOfCode;
105
- }
106
- set numberOfLinesOfCode(numberOfLinesOfCode) {
107
- this._numberOfLinesOfCode = numberOfLinesOfCode;
108
- }
109
- get outgoingInvocations() {
110
- return this._outgoingInvocations;
111
- }
112
- get accesses() {
113
- return this._accesses;
114
- }
115
- get types() {
116
- return this.childrenTypes;
117
- }
118
- get functions() {
119
- return this.childrenFunctions;
120
- }
121
- get variables() {
122
- return this._variables;
123
- }
124
- }
125
- exports.ContainerEntity = ContainerEntity;
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyX2VudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvc3JjL21vZGVsL2ZhbWl4L2NvbnRhaW5lcl9lbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQThEO0FBRzlELGlEQUE2QztBQU03QyxNQUFhLGVBQWdCLFNBQVEsMEJBQVc7SUFBaEQ7O1FBR1ksK0JBQTBCLEdBQXlCLElBQUksR0FBRyxFQUFFLENBQUM7UUFXN0Qsd0JBQW1CLEdBQW1CLElBQUksR0FBRyxFQUFFLENBQUM7UUFVaEQseUJBQW9CLEdBQW9CLElBQUksR0FBRyxFQUFFLENBQUM7UUFTbEQsY0FBUyxHQUFnQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBU25DLGtCQUFhLEdBQWMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVNyQyxzQkFBaUIsR0FBNkIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVN4RCxlQUFVLEdBQWtCLElBQUksR0FBRyxFQUFFLENBQUM7SUEwRmxELENBQUM7SUFqSlUsdUJBQXVCLENBQUMsb0JBQXFDO1FBQ2hFLElBQUksQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztZQUM3RCxJQUFJLENBQUMsMEJBQTBCLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDMUQsb0JBQW9CLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBQ3RELENBQUM7SUFDTCxDQUFDO0lBTU0sb0JBQW9CLENBQUMsaUJBQTRCO1FBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDaEQsaUJBQWlCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FB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QUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7Q0FDSjtBQXRKRCwwQ0FzSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEpTT05FeHBvcnRlciB9IGZyb20gXCIuLi8uLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XHJcbmltcG9ydCB7IFR5cGUgfSBmcm9tIFwiLi90eXBlXCI7XHJcbmltcG9ydCB7IEludm9jYXRpb24gfSBmcm9tIFwiLi9pbnZvY2F0aW9uXCI7XHJcbmltcG9ydCB7IE5hbWVkRW50aXR5IH0gZnJvbSBcIi4vbmFtZWRfZW50aXR5XCI7XHJcbmltcG9ydCB7IFJlZmVyZW5jZSB9IGZyb20gXCIuL3JlZmVyZW5jZVwiO1xyXG5pbXBvcnQgeyBBY2Nlc3MgfSBmcm9tIFwiLi9hY2Nlc3NcIjtcclxuaW1wb3J0IHsgRnVuY3Rpb24gYXMgRmFtaXhGdW5jdGlvbkVudGl0eSB9IGZyb20gXCIuL2Z1bmN0aW9uXCI7XHJcbmltcG9ydCB7IFZhcmlhYmxlIH0gZnJvbSBcIi4vdmFyaWFibGVcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBDb250YWluZXJFbnRpdHkgZXh0ZW5kcyBOYW1lZEVudGl0eSB7XHJcblxyXG4gICAgcHJpdmF0ZSBfcGFyZW50Q29udGFpbmVyRW50aXR5ITogQ29udGFpbmVyRW50aXR5O1xyXG4gICAgcHJpdmF0ZSBfY2hpbGRyZW5Db250YWluZXJFbnRpdGllczogU2V0PENvbnRhaW5lckVudGl0eT4gPSBuZXcgU2V0KCk7XHJcblxyXG4gICAgcHVibGljIGFkZENoaWxkQ29udGFpbmVyRW50aXR5KGNoaWxkQ29udGFpbmVyRW50aXR5OiBDb250YWluZXJFbnRpdHkpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuX2NoaWxkcmVuQ29udGFpbmVyRW50aXRpZXMuaGFzKGNoaWxkQ29udGFpbmVyRW50aXR5KSkge1xyXG4gICAgICAgICAgICB0aGlzLl9jaGlsZHJlbkNvbnRhaW5lckVudGl0aWVzLmFkZChjaGlsZENvbnRhaW5lckVudGl0eSk7XHJcbiAgICAgICAgICAgIGNoaWxkQ29udGFpbmVyRW50aXR5LnBhcmVudENvbnRhaW5lckVudGl0eSA9IHRoaXM7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2N5Y2xvbWF0aWNDb21wbGV4aXR5ITogbnVtYmVyO1xyXG4gICAgcHJpdmF0ZSBfbnVtYmVyT2ZTdGF0ZW1lbnRzITogbnVtYmVyO1xyXG4gICAgcHJpdmF0ZSBfb3V0Z29pbmdSZWZlcmVuY2VzOiBTZXQ8UmVmZXJlbmNlPiA9IG5ldyBTZXQoKTtcclxuXHJcbiAgICBwdWJsaWMgYWRkT3V0Z29pbmdSZWZlcmVuY2Uob3V0Z29pbmdSZWZlcmVuY2U6IFJlZmVyZW5jZSk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5fb3V0Z29pbmdSZWZlcmVuY2VzLmhhcyhvdXRnb2luZ1JlZmVyZW5jZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5fb3V0Z29pbmdSZWZlcmVuY2VzLmFkZChvdXRnb2luZ1JlZmVyZW5jZSk7XHJcbiAgICAgICAgICAgIG91dGdvaW5nUmVmZXJlbmNlLnNvdXJjZSA9IHRoaXM7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX251bWJlck9mTGluZXNPZkNvZGUhOiBudW1iZXI7XHJcbiAgICBwcml2YXRlIF9vdXRnb2luZ0ludm9jYXRpb25zOiBTZXQ8SW52b2NhdGlvbj4gPSBuZXcgU2V0KCk7XHJcblxyXG4gICAgcHVibGljIGFkZE91dGdvaW5nSW52b2NhdGlvbihvdXRnb2luZ0ludm9jYXRpb246IEludm9jYXRpb24pOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuX291dGdvaW5nSW52b2NhdGlvbnMuaGFzKG91dGdvaW5nSW52b2NhdGlvbikpIHtcclxuICAgICAgICAgICAgdGhpcy5fb3V0Z29pbmdJbnZvY2F0aW9ucy5hZGQob3V0Z29pbmdJbnZvY2F0aW9uKTtcclxuICAgICAgICAgICAgb3V0Z29pbmdJbnZvY2F0aW9uLnNlbmRlciA9IHRoaXM7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2FjY2Vzc2VzOiBTZXQ8QWNjZXNzPiA9IG5ldyBTZXQoKTtcclxuXHJcbiAgICBwdWJsaWMgYWRkQWNjZXNzKGFjY2VzczogQWNjZXNzKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9hY2Nlc3Nlcy5oYXMoYWNjZXNzKSkge1xyXG4gICAgICAgICAgICB0aGlzLl9hY2Nlc3Nlcy5hZGQoYWNjZXNzKTtcclxuICAgICAgICAgICAgYWNjZXNzLmFjY2Vzc29yID0gdGhpcztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjaGlsZHJlblR5cGVzOiBTZXQ8VHlwZT4gPSBuZXcgU2V0KCk7XHJcblxyXG4gICAgcHVibGljIGFkZFR5cGUoY2hpbGRUeXBlOiBUeXBlKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNoaWxkcmVuVHlwZXMuaGFzKGNoaWxkVHlwZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5jaGlsZHJlblR5cGVzLmFkZChjaGlsZFR5cGUpO1xyXG4gICAgICAgICAgICBjaGlsZFR5cGUucGFyZW50Q29udGFpbmVyRW50aXR5ID0gdGhpcztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjaGlsZHJlbkZ1bmN0aW9uczogU2V0PEZhbWl4RnVuY3Rpb25FbnRpdHk+ID0gbmV3IFNldCgpO1xyXG5cclxuICAgIHB1YmxpYyBhZGRGdW5jdGlvbihjaGlsZEZ1bmN0aW9uOiBGYW1peEZ1bmN0aW9uRW50aXR5KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNoaWxkcmVuRnVuY3Rpb25zLmhhcyhjaGlsZEZ1bmN0aW9uKSkge1xyXG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuRnVuY3Rpb25zLmFkZChjaGlsZEZ1bmN0aW9uKTtcclxuICAgICAgICAgICAgY2hpbGRGdW5jdGlvbi5wYXJlbnRDb250YWluZXJFbnRpdHkgPSB0aGlzO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF92YXJpYWJsZXM6IFNldDxWYXJpYWJsZT4gPSBuZXcgU2V0KCk7XHJcblxyXG4gICAgcHVibGljIGFkZFZhcmlhYmxlKHZhcmlhYmxlOiBWYXJpYWJsZSk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5fdmFyaWFibGVzLmhhcyh2YXJpYWJsZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5fdmFyaWFibGVzLmFkZCh2YXJpYWJsZSk7XHJcbiAgICAgICAgICAgIHZhcmlhYmxlLnBhcmVudENvbnRhaW5lckVudGl0eSA9IHRoaXM7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJDb250YWluZXJFbnRpdHlcIiwgdGhpcyk7XHJcbiAgICAgICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcclxuICAgICAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcclxuICAgICAgICAvLyAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcInBhcmVudEJlaGF2aW91cmFsRW50aXR5XCIsIHRoaXMuZ2V0UGFyZW50Q29udGFpbmVyRW50aXR5KCkpO1xyXG4gICAgICAgIC8vICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiY2hpbGRyZW5Db250YWluZXJFbnRpdGllc1wiLCB0aGlzLmdldENoaWxkcmVuQ29udGFpbmVyRW50aXRpZXMoKSk7XHJcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJjeWNsb21hdGljQ29tcGxleGl0eVwiLCB0aGlzLmN5Y2xvbWF0aWNDb21wbGV4aXR5KTtcclxuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcIm51bWJlck9mU3RhdGVtZW50c1wiLCB0aGlzLm51bWJlck9mU3RhdGVtZW50cyk7XHJcbiAgICAgICAgLy8gICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJvdXRnb2luZ1JlZmVyZW5jZXNcIiwgdGhpcy5nZXRPdXRnb2luZ1JlZmVyZW5jZXMoKSk7ICAvKiBkZXJpdmVkID8qL1xyXG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwibnVtYmVyT2ZMaW5lc09mQ29kZVwiLCB0aGlzLm51bWJlck9mTGluZXNPZkNvZGUpO1xyXG4gICAgICAgIC8vICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwib3V0Z29pbmdJbnZvY2F0aW9uc1wiLCB0aGlzLmdldE91dGdvaW5nSW52b2NhdGlvbnMoKSk7ICAvKiBkZXJpdmVkID8qL1xyXG4gICAgICAgIC8vICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiYWNjZXNzZXNcIiwgdGhpcy5nZXRBY2Nlc3NlcygpKTsgIC8qIGRlcml2ZWQgPyovXHJcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJ0eXBlc1wiLCB0aGlzLnR5cGVzKTtcclxuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImZ1bmN0aW9uc1wiLCB0aGlzLmZ1bmN0aW9ucyk7XHJcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJsb2NhbFZhcmlhYmxlc1wiLCB0aGlzLnZhcmlhYmxlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHBhcmVudENvbnRhaW5lckVudGl0eSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcGFyZW50Q29udGFpbmVyRW50aXR5O1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBwYXJlbnRDb250YWluZXJFbnRpdHkocGFyZW50Q29udGFpbmVyRW50aXR5OiBDb250YWluZXJFbnRpdHkpIHtcclxuICAgICAgICB0aGlzLl9wYXJlbnRDb250YWluZXJFbnRpdHkgPSBwYXJlbnRDb250YWluZXJFbnRpdHk7XHJcbiAgICAgICAgcGFyZW50Q29udGFpbmVyRW50aXR5LmFkZENoaWxkQ29udGFpbmVyRW50aXR5KHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBjaGlsZHJlbkNvbnRhaW5lckVudGl0aWVzKCk6IFNldDxDb250YWluZXJFbnRpdHk+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY2hpbGRyZW5Db250YWluZXJFbnRpdGllcztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgY3ljbG9tYXRpY0NvbXBsZXhpdHkoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY3ljbG9tYXRpY0NvbXBsZXhpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGN5Y2xvbWF0aWNDb21wbGV4aXR5KGN5Y2xvbWF0aWNDb21wbGV4aXR5OiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9jeWNsb21hdGljQ29tcGxleGl0eSA9IGN5Y2xvbWF0aWNDb21wbGV4aXR5O1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBudW1iZXJPZlN0YXRlbWVudHMoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbnVtYmVyT2ZTdGF0ZW1lbnRzO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBudW1iZXJPZlN0YXRlbWVudHMobnVtYmVyT2ZTdGF0ZW1lbnRzOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9udW1iZXJPZlN0YXRlbWVudHMgPSBudW1iZXJPZlN0YXRlbWVudHM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IG91dGdvaW5nUmVmZXJlbmNlcygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fb3V0Z29pbmdSZWZlcmVuY2VzO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBudW1iZXJPZkxpbmVzT2ZDb2RlKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX251bWJlck9mTGluZXNPZkNvZGU7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IG51bWJlck9mTGluZXNPZkNvZGUobnVtYmVyT2ZMaW5lc09mQ29kZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fbnVtYmVyT2ZMaW5lc09mQ29kZSA9IG51bWJlck9mTGluZXNPZkNvZGU7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IG91dGdvaW5nSW52b2NhdGlvbnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX291dGdvaW5nSW52b2NhdGlvbnM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGFjY2Vzc2VzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hY2Nlc3NlcztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgdHlwZXMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hpbGRyZW5UeXBlcztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZnVuY3Rpb25zKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNoaWxkcmVuRnVuY3Rpb25zO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCB2YXJpYWJsZXMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhcmlhYmxlcztcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Decorator = void 0;
4
- const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
- const named_entity_1 = require("./named_entity");
6
- class Decorator extends named_entity_1.NamedEntity {
7
- getJSON() {
8
- const json = new famix_JSON_exporter_1.FamixJSONExporter("Decorator", this);
9
- this.addPropertiesToExporter(json);
10
- return json.getJSON();
11
- }
12
- addPropertiesToExporter(exporter) {
13
- super.addPropertiesToExporter(exporter);
14
- exporter.addProperty("expression", this.decoratorExpression);
15
- exporter.addProperty("decoratedEntity", this.decoratedEntity);
16
- }
17
- get decoratorExpression() {
18
- return this._decoratorExpression;
19
- }
20
- set decoratorExpression(decoratorExpression) {
21
- this._decoratorExpression = decoratorExpression;
22
- }
23
- get decoratedEntity() {
24
- return this._decoratedEntity;
25
- }
26
- set decoratedEntity(decoratedEntity) {
27
- this._decoratedEntity = decoratedEntity;
28
- decoratedEntity.addDecorator(this);
29
- }
30
- }
31
- exports.Decorator = Decorator;
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9mYW1peC9zcmMvbW9kZWwvZmFtaXgvZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUM5RCxpREFBNkM7QUFFN0MsTUFBYSxTQUFVLFNBQVEsMEJBQVc7SUFLL0IsT0FBTztRQUNWLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFFBQTJCO1FBQ3RELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUM3RCxRQUFRLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsSUFBSSxtQkFBbUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksbUJBQW1CLENBQUMsbUJBQTJCO1FBQy9DLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxtQkFBbUIsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksZUFBZSxDQUFDLGVBQTRCO1FBQzVDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7UUFDeEMsZUFBZSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0o7QUFqQ0QsOEJBaUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xyXG5pbXBvcnQgeyBOYW1lZEVudGl0eSB9IGZyb20gXCIuL25hbWVkX2VudGl0eVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIERlY29yYXRvciBleHRlbmRzIE5hbWVkRW50aXR5IHtcclxuXHJcbiAgICBwcml2YXRlIF9kZWNvcmF0b3JFeHByZXNzaW9uITogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfZGVjb3JhdGVkRW50aXR5ITogTmFtZWRFbnRpdHk7XHJcblxyXG4gICAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIkRlY29yYXRvclwiLCB0aGlzKTtcclxuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xyXG4gICAgICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXI6IEZhbWl4SlNPTkV4cG9ydGVyKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xyXG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiZXhwcmVzc2lvblwiLCB0aGlzLmRlY29yYXRvckV4cHJlc3Npb24pO1xyXG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiZGVjb3JhdGVkRW50aXR5XCIsIHRoaXMuZGVjb3JhdGVkRW50aXR5KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGVjb3JhdG9yRXhwcmVzc2lvbigpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kZWNvcmF0b3JFeHByZXNzaW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHNldCBkZWNvcmF0b3JFeHByZXNzaW9uKGRlY29yYXRvckV4cHJlc3Npb246IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX2RlY29yYXRvckV4cHJlc3Npb24gPSBkZWNvcmF0b3JFeHByZXNzaW9uO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZWNvcmF0ZWRFbnRpdHkoKTogTmFtZWRFbnRpdHkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kZWNvcmF0ZWRFbnRpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0IGRlY29yYXRlZEVudGl0eShkZWNvcmF0ZWRFbnRpdHk6IE5hbWVkRW50aXR5KSB7XHJcbiAgICAgICAgdGhpcy5fZGVjb3JhdGVkRW50aXR5ID0gZGVjb3JhdGVkRW50aXR5O1xyXG4gICAgICAgIGRlY29yYXRlZEVudGl0eS5hZGREZWNvcmF0b3IodGhpcyk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Entity = void 0;
4
- const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
- const famix_base_element_1 = require("../../famix_base_element");
6
- class Entity extends famix_base_element_1.FamixBaseElement {
7
- getJSON() {
8
- const json = new famix_JSON_exporter_1.FamixJSONExporter("Entity", this);
9
- this.addPropertiesToExporter(json);
10
- return json.getJSON();
11
- }
12
- addPropertiesToExporter(exporter) {
13
- super.addPropertiesToExporter(exporter);
14
- }
15
- }
16
- exports.Entity = Entity;
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9mYW1peC9zcmMvbW9kZWwvZmFtaXgvZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUM5RCxpRUFBNEQ7QUFFNUQsTUFBYSxNQUFPLFNBQVEscUNBQWdCO0lBRW5DLE9BQU87UUFDWixNQUFNLElBQUksR0FBc0IsSUFBSSx1Q0FBaUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN4RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUNGO0FBWEQsd0JBV0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEpTT05FeHBvcnRlciB9IGZyb20gXCIuLi8uLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XHJcbmltcG9ydCB7IEZhbWl4QmFzZUVsZW1lbnQgfSBmcm9tIFwiLi4vLi4vZmFtaXhfYmFzZV9lbGVtZW50XCI7XHJcblxyXG5leHBvcnQgY2xhc3MgRW50aXR5IGV4dGVuZHMgRmFtaXhCYXNlRWxlbWVudCB7XHJcblxyXG4gIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIkVudGl0eVwiLCB0aGlzKTtcclxuICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XHJcbiAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXI6IEZhbWl4SlNPTkV4cG9ydGVyKTogdm9pZCB7XHJcbiAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Enum = void 0;
4
- const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
- const type_1 = require("./type");
6
- class Enum extends type_1.Type {
7
- constructor() {
8
- super(...arguments);
9
- this._values = new Set();
10
- }
11
- addValue(value) {
12
- if (!this._values.has(value)) {
13
- this._values.add(value);
14
- value.parentEntity = this;
15
- }
16
- }
17
- getJSON() {
18
- const json = new famix_JSON_exporter_1.FamixJSONExporter("Enum", this);
19
- this.addPropertiesToExporter(json);
20
- return json.getJSON();
21
- }
22
- addPropertiesToExporter(exporter) {
23
- super.addPropertiesToExporter(exporter);
24
- exporter.addProperty("enumValues", this.values);
25
- }
26
- get values() {
27
- return this._values;
28
- }
29
- }
30
- exports.Enum = Enum;
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvc3JjL21vZGVsL2ZhbWl4L2VudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQThEO0FBQzlELGlDQUE4QjtBQUc5QixNQUFhLElBQUssU0FBUSxXQUFJO0lBQTlCOztRQUVZLFlBQU8sR0FBbUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQXVCaEQsQ0FBQztJQXJCVSxRQUFRLENBQUMsS0FBZ0I7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEIsS0FBSyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDOUIsQ0FBQztJQUNMLENBQUM7SUFFTSxPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDdEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7Q0FDSjtBQXpCRCxvQkF5QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEpTT05FeHBvcnRlciB9IGZyb20gXCIuLi8uLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XHJcbmltcG9ydCB7IFR5cGUgfSBmcm9tIFwiLi90eXBlXCI7XHJcbmltcG9ydCB7IEVudW1WYWx1ZSB9IGZyb20gXCIuL2VudW1fdmFsdWVcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBFbnVtIGV4dGVuZHMgVHlwZSB7XHJcblxyXG4gICAgcHJpdmF0ZSBfdmFsdWVzOiBTZXQ8RW51bVZhbHVlPiA9IG5ldyBTZXQoKTtcclxuXHJcbiAgICBwdWJsaWMgYWRkVmFsdWUodmFsdWU6IEVudW1WYWx1ZSk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5fdmFsdWVzLmhhcyh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWVzLmFkZCh2YWx1ZSk7XHJcbiAgICAgICAgICAgIHZhbHVlLnBhcmVudEVudGl0eSA9IHRoaXM7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJFbnVtXCIsIHRoaXMpO1xyXG4gICAgICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XHJcbiAgICAgICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XHJcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJlbnVtVmFsdWVzXCIsIHRoaXMudmFsdWVzKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgdmFsdWVzKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZXM7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EnumValue = void 0;
4
- const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
- const structural_entity_1 = require("./structural_entity");
6
- class EnumValue extends structural_entity_1.StructuralEntity {
7
- getJSON() {
8
- const json = new famix_JSON_exporter_1.FamixJSONExporter("EnumValue", this);
9
- this.addPropertiesToExporter(json);
10
- return json.getJSON();
11
- }
12
- addPropertiesToExporter(exporter) {
13
- super.addPropertiesToExporter(exporter);
14
- exporter.addProperty("parentEnum", this.parentEntity);
15
- }
16
- get parentEntity() {
17
- return this._parentEntity;
18
- }
19
- set parentEntity(parentEntity) {
20
- this._parentEntity = parentEntity;
21
- parentEntity.addValue(this);
22
- }
23
- }
24
- exports.EnumValue = EnumValue;
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bV92YWx1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvc3JjL21vZGVsL2ZhbWl4L2VudW1fdmFsdWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQThEO0FBQzlELDJEQUF1RDtBQUd2RCxNQUFhLFNBQVUsU0FBUSxvQ0FBZ0I7SUFJcEMsT0FBTztRQUNWLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFFBQTJCO1FBQ3RELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxZQUFZLENBQUMsWUFBa0I7UUFDL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUM7UUFDbEMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0NBQ0o7QUF2QkQsOEJBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xyXG5pbXBvcnQgeyBTdHJ1Y3R1cmFsRW50aXR5IH0gZnJvbSBcIi4vc3RydWN0dXJhbF9lbnRpdHlcIjtcclxuaW1wb3J0IHsgRW51bSB9IGZyb20gXCIuL2VudW1cIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBFbnVtVmFsdWUgZXh0ZW5kcyBTdHJ1Y3R1cmFsRW50aXR5IHtcclxuXHJcbiAgICBwcml2YXRlIF9wYXJlbnRFbnRpdHkhOiBFbnVtO1xyXG5cclxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJFbnVtVmFsdWVcIiwgdGhpcyk7XHJcbiAgICAgICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcclxuICAgICAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcclxuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcInBhcmVudEVudW1cIiwgdGhpcy5wYXJlbnRFbnRpdHkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBwYXJlbnRFbnRpdHkoKTogRW51bSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcmVudEVudGl0eTtcclxuICAgIH1cclxuXHJcbiAgICBzZXQgcGFyZW50RW50aXR5KHBhcmVudEVudGl0eTogRW51bSkge1xyXG4gICAgICAgIHRoaXMuX3BhcmVudEVudGl0eSA9IHBhcmVudEVudGl0eTtcclxuICAgICAgICBwYXJlbnRFbnRpdHkuYWRkVmFsdWUodGhpcyk7XHJcbiAgICB9XHJcbn1cclxuIl19