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
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FamixBaseElement = void 0;
4
- const analyze_1 = require("../../../analyze");
5
- // import { FamixRepository } from "./famix_repository";
6
- class FamixBaseElement {
7
- // constructor(repo: FamixRepository) {
8
- // repo.addElement(this);
9
- // }
10
- constructor() {
11
- }
12
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
13
- addPropertiesToExporter(exporter) {
14
- analyze_1.logger.debug("addPropertiesToExporter not implemented for " + this.constructor.name + `(${exporter})`);
15
- }
16
- }
17
- exports.FamixBaseElement = FamixBaseElement;
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFtaXhfYmFzZV9lbGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9mYW1peC9zcmMvZmFtaXhfYmFzZV9lbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhDQUEwQztBQUUxQyx3REFBd0Q7QUFFeEQsTUFBc0IsZ0JBQWdCO0lBSXBDLHVDQUF1QztJQUN2QywyQkFBMkI7SUFDM0IsSUFBSTtJQUVKO0lBQ0EsQ0FBQztJQUlELDZEQUE2RDtJQUN0RCx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN4RCxnQkFBTSxDQUFDLEtBQUssQ0FBQyw4Q0FBOEMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDekcsQ0FBQztDQUNGO0FBakJELDRDQWlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCIuLi8uLi8uLi9hbmFseXplXCI7XG5pbXBvcnQgeyBGYW1peEpTT05FeHBvcnRlciB9IGZyb20gXCIuL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcbi8vIGltcG9ydCB7IEZhbWl4UmVwb3NpdG9yeSB9IGZyb20gXCIuL2ZhbWl4X3JlcG9zaXRvcnlcIjtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZhbWl4QmFzZUVsZW1lbnQge1xuXG4gIHB1YmxpYyBpZDogbnVtYmVyO1xuXG4gIC8vIGNvbnN0cnVjdG9yKHJlcG86IEZhbWl4UmVwb3NpdG9yeSkge1xuICAvLyAgIHJlcG8uYWRkRWxlbWVudCh0aGlzKTtcbiAgLy8gfVxuXG4gIGNvbnN0cnVjdG9yKCl7XG4gIH1cblxuICBwdWJsaWMgYWJzdHJhY3QgZ2V0SlNPTigpOiBzdHJpbmc7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBwdWJsaWMgYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXI6IEZhbWl4SlNPTkV4cG9ydGVyKTogdm9pZCB7XG4gICAgbG9nZ2VyLmRlYnVnKFwiYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIgbm90IGltcGxlbWVudGVkIGZvciBcIiArIHRoaXMuY29uc3RydWN0b3IubmFtZSArIGAoJHtleHBvcnRlcn0pYCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,223 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FamixRepository = void 0;
4
- const famix_1 = require("./model/famix");
5
- /**
6
- * This class is used to store all Famix elements
7
- */
8
- class FamixRepository {
9
- constructor() {
10
- this.elements = new Set(); // All Famix elements
11
- this.famixClasses = new Set(); // All Famix classes
12
- this.famixInterfaces = new Set(); // All Famix interfaces
13
- this.famixModules = new Set(); // All Famix namespaces
14
- this.famixMethods = new Set(); // All Famix methods
15
- this.famixVariables = new Set(); // All Famix variables
16
- this.famixFunctions = new Set(); // All Famix functions
17
- this.famixFiles = new Set(); // All Famix files
18
- this.idCounter = 1; // Id counter
19
- this.absolutePath = "";
20
- this.fmxElementObjectMap = new Map();
21
- this.addElement(new famix_1.SourceLanguage()); // add the source language entity (TypeScript)
22
- }
23
- setFmxElementObjectMap(fmxElementObjectMap) {
24
- this.fmxElementObjectMap = fmxElementObjectMap;
25
- }
26
- getFmxElementObjectMap() {
27
- return this.fmxElementObjectMap;
28
- }
29
- getAbsolutePath() {
30
- return this.absolutePath;
31
- }
32
- setAbsolutePath(path) {
33
- this.absolutePath = path;
34
- }
35
- /**
36
- * Gets a Famix entity by id
37
- * @param id An id of a Famix entity
38
- * @returns The Famix entity corresponding to the id or undefined if it doesn't exist
39
- */
40
- getFamixEntityById(id) {
41
- const entity = Array.from(this.elements.values()).find(e => e.id === id);
42
- return entity;
43
- }
44
- /**
45
- * Gets a Famix entity by fully qualified name
46
- * @param fullyQualifiedName A fully qualified name
47
- * @returns The Famix entity corresponding to the fully qualified name or undefined if it doesn't exist
48
- */
49
- getFamixEntityByFullyQualifiedName(fullyQualifiedName) {
50
- const allEntities = Array.from(this.elements.values()).filter(e => e instanceof famix_1.NamedEntity);
51
- const entity = allEntities.find(e => e.getFullyQualifiedName() === fullyQualifiedName);
52
- return entity;
53
- }
54
- export(arg0) {
55
- if (arg0.format === "json") {
56
- return this.getJSON();
57
- }
58
- else {
59
- throw new Error("Unsupported format");
60
- }
61
- }
62
- // Only for tests
63
- /**
64
- * Gets all Famix entities
65
- * @returns All Famix entities
66
- */
67
- _getAllEntities() {
68
- return new Set(Array.from(this.elements.values()));
69
- }
70
- /**
71
- * Gets all Famix entities of a given type
72
- * @param theType A type of Famix entity
73
- * @returns All Famix entities of the given type
74
- */
75
- _getAllEntitiesWithType(theType) {
76
- return new Set(Array.from(this.elements.values()).filter(e => e.constructor.name === theType));
77
- }
78
- /**
79
- * Gets a Famix class by name
80
- * @param name A class name
81
- * @returns The Famix class corresponding to the name or undefined if it doesn't exist
82
- */
83
- _getFamixClass(fullyQualifiedName) {
84
- return Array.from(this.famixClasses.values()).find(ns => ns.getFullyQualifiedName() === fullyQualifiedName);
85
- }
86
- /**
87
- * Gets a Famix interface by name
88
- * @param name An interface name
89
- * @returns The Famix interface corresponding to the name or undefined if it doesn't exist
90
- */
91
- _getFamixInterface(fullyQualifiedName) {
92
- return Array.from(this.famixInterfaces.values()).find(ns => ns.getFullyQualifiedName() === fullyQualifiedName);
93
- }
94
- /**
95
- * Gets a Famix method by name
96
- * @param name A method name
97
- * @returns The Famix method corresponding to the name or undefined if it doesn't exist
98
- */
99
- _getFamixMethod(fullyQualifiedName) {
100
- return Array.from(this.famixMethods.values()).find(ns => ns.getFullyQualifiedName() === fullyQualifiedName);
101
- }
102
- /**
103
- * Gets a Famix function by name
104
- * @param name A function name
105
- * @returns The Famix function corresponding to the name or undefined if it doesn't exist
106
- */
107
- _getFamixFunction(fullyQualifiedName) {
108
- return Array.from(this.famixFunctions.values()).find(ns => ns.getFullyQualifiedName() === fullyQualifiedName);
109
- }
110
- /**
111
- * Gets a Famix variable by name
112
- * @param name A variable name
113
- * @returns The Famix variable corresponding to the name or undefined if it doesn't exist
114
- */
115
- _getFamixVariable(fullyQualifiedName) {
116
- return Array.from(this.famixVariables.values()).find(v => v.getFullyQualifiedName() === fullyQualifiedName);
117
- }
118
- /**
119
- * Gets a Famix namespace by name
120
- * @param name A namespace name
121
- * @returns The Famix namespace corresponding to the name or undefined if it doesn't exist
122
- */
123
- _getFamixModule(fullyQualifiedName) {
124
- return Array.from(this.famixModules.values()).find(ns => ns.getFullyQualifiedName() === fullyQualifiedName);
125
- }
126
- /**
127
- * Gets all Famix namespaces
128
- * @returns All Famix namespaces
129
- */
130
- _getFamixModules() {
131
- return new Set(Array.from(this.famixModules.values()));
132
- }
133
- /**
134
- * Gets a Famix file by name
135
- * @param name A file name
136
- * @returns The Famix file corresponding to the name or undefined if it doesn't exist
137
- */
138
- _getFamixFile(fullyQualifiedName) {
139
- return Array.from(this.famixFiles.values()).find(ns => ns.getName() === fullyQualifiedName);
140
- }
141
- /**
142
- * Gets all Famix files
143
- * @returns All Famix files
144
- */
145
- _getFamixFiles() {
146
- return new Set(Array.from(this.famixFiles.values()));
147
- }
148
- /**
149
- * Gets all method names as a set from a class
150
- * @param className A class name
151
- * @returns The set of class "className" method names
152
- */
153
- _methodNamesAsSetFromClass(className) {
154
- const theClass = this._getFamixClass(className);
155
- return new Set(Array.from(theClass.getMethods()).map(m => m.getName()));
156
- }
157
- /**
158
- * Gets all method parents as a set from a class
159
- * @param className A class name
160
- * @returns The set of class "className" method parents
161
- */
162
- _methodParentsAsSetFromClass(className) {
163
- const theClass = this._getFamixClass(className);
164
- return new Set(Array.from(theClass.getMethods()).map(m => m.getParentEntity()));
165
- }
166
- /**
167
- * Gets the map of Famix element ids and their Famix element from a JSON model
168
- * @param model A JSON model
169
- * @returns The map of Famix element ids and their Famix element from the JSON model
170
- */
171
- _initMapFromModel(model) {
172
- const parsedModel = JSON.parse(model);
173
- const idToElementMap = new Map();
174
- parsedModel.forEach(element => {
175
- idToElementMap.set(element.id, element);
176
- });
177
- return idToElementMap;
178
- }
179
- /**
180
- * Adds a Famix element to the repository
181
- * @param element A Famix element
182
- */
183
- addElement(element) {
184
- if (element instanceof famix_1.Class) {
185
- this.famixClasses.add(element);
186
- }
187
- else if (element instanceof famix_1.Interface) {
188
- this.famixInterfaces.add(element);
189
- }
190
- else if (element instanceof famix_1.Module) {
191
- this.famixModules.add(element);
192
- }
193
- else if (element instanceof famix_1.Variable) {
194
- this.famixVariables.add(element);
195
- }
196
- else if (element instanceof famix_1.Method) {
197
- this.famixMethods.add(element);
198
- }
199
- else if (element instanceof famix_1.Function || element instanceof famix_1.ArrowFunction) {
200
- this.famixFunctions.add(element);
201
- }
202
- else if (element instanceof famix_1.ScriptEntity || element instanceof famix_1.Module) {
203
- this.famixFiles.add(element);
204
- }
205
- this.elements.add(element);
206
- element.id = this.idCounter;
207
- this.idCounter++;
208
- }
209
- /**
210
- * Gets a JSON representation of the repository
211
- * @returns A JSON representation of the repository
212
- */
213
- getJSON() {
214
- let ret = "[";
215
- for (const element of Array.from(this.elements.values())) {
216
- ret = ret + element.getJSON() + ",";
217
- }
218
- ret = ret.substring(0, ret.length - 1);
219
- return ret + "]";
220
- }
221
- }
222
- exports.FamixRepository = FamixRepository;
223
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFtaXhfcmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvc3JjL2ZhbWl4X3JlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseUNBQTRLO0FBSTVLOztHQUVHO0FBQ0gsTUFBYSxlQUFlO0lBYTFCO1FBWlEsYUFBUSxHQUFHLElBQUksR0FBRyxFQUFvQixDQUFDLENBQUMscUJBQXFCO1FBQzdELGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQVMsQ0FBQyxDQUFDLG9CQUFvQjtRQUNyRCxvQkFBZSxHQUFHLElBQUksR0FBRyxFQUFhLENBQUMsQ0FBQyx1QkFBdUI7UUFDL0QsaUJBQVksR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDLENBQUMsdUJBQXVCO1FBQ3pELGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQyxDQUFDLG9CQUFvQjtRQUN0RCxtQkFBYyxHQUFHLElBQUksR0FBRyxFQUFZLENBQUMsQ0FBQyxzQkFBc0I7UUFDNUQsbUJBQWMsR0FBRyxJQUFJLEdBQUcsRUFBdUIsQ0FBQyxDQUFDLHNCQUFzQjtRQUN2RSxlQUFVLEdBQUcsSUFBSSxHQUFHLEVBQXlCLENBQUMsQ0FBQyxrQkFBa0I7UUFDakUsY0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLGFBQWE7UUFDNUIsaUJBQVksR0FBVyxFQUFFLENBQUM7UUFDMUIsd0JBQW1CLEdBQUcsSUFBSSxHQUFHLEVBQWtDLENBQUM7UUFHdEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLHNCQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUUsOENBQThDO0lBQ3hGLENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxtQkFBd0Q7UUFDcEYsSUFBSSxDQUFDLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDO0lBQ2pELENBQUM7SUFFTSxzQkFBc0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztJQUVNLGVB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TUFBTSxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN6RCxHQUFHLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFDdEMsQ0FBQztRQUNELEdBQUcsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNuQixDQUFDO0NBQ0Y7QUExT0QsMENBME9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhCYXNlRWxlbWVudCB9IGZyb20gXCIuL2ZhbWl4X2Jhc2VfZWxlbWVudFwiO1xuaW1wb3J0IHsgQ2xhc3MsIEludGVyZmFjZSwgVmFyaWFibGUsIE1ldGhvZCwgQXJyb3dGdW5jdGlvbiwgRnVuY3Rpb24gYXMgRmFtaXhGdW5jdGlvbkVudGl0eSwgVHlwZSwgTmFtZWRFbnRpdHksIFNjcmlwdEVudGl0eSwgTW9kdWxlLCBTb3VyY2VMYW5ndWFnZSB9IGZyb20gXCIuL21vZGVsL2ZhbWl4XCI7XG4vLyBpbXBvcnQgeyBDbGFzc0RlY2xhcmF0aW9uLCBDb25zdHJ1Y3RvckRlY2xhcmF0aW9uLCBGdW5jdGlvbkRlY2xhcmF0aW9uLCBJZGVudGlmaWVyLCBJbnRlcmZhY2VEZWNsYXJhdGlvbiwgTWV0aG9kRGVjbGFyYXRpb24sIE1ldGhvZFNpZ25hdHVyZSwgTW9kdWxlRGVjbGFyYXRpb24sIFByb3BlcnR5RGVjbGFyYXRpb24sIFByb3BlcnR5U2lnbmF0dXJlLCBTb3VyY2VGaWxlLCBUeXBlUGFyYW1ldGVyRGVjbGFyYXRpb24sIFZhcmlhYmxlRGVjbGFyYXRpb24sIFBhcmFtZXRlckRlY2xhcmF0aW9uLCBEZWNvcmF0b3IsIEdldEFjY2Vzc29yRGVjbGFyYXRpb24sIFNldEFjY2Vzc29yRGVjbGFyYXRpb24sIEltcG9ydFNwZWNpZmllciwgQ29tbWVudFJhbmdlLCBFbnVtRGVjbGFyYXRpb24sIEVudW1NZW1iZXIsIFR5cGVBbGlhc0RlY2xhcmF0aW9uLCBGdW5jdGlvbkV4cHJlc3Npb24sIEV4cHJlc3Npb25XaXRoVHlwZUFyZ3VtZW50cywgSW1wb3J0RGVjbGFyYXRpb24sIEltcG9ydEVxdWFsc0RlY2xhcmF0aW9uIH0gZnJvbSBcInRzLW1vcnBoXCI7XG5pbXBvcnQgKiBhcyBGYW1peCBmcm9tIFwiLi9tb2RlbC9mYW1peFwiO1xuaW1wb3J0IHsgVFNNb3JwaE9iamVjdFR5cGUgfSBmcm9tIFwiLi4vLi4vLi4vZmFtaXhfZnVuY3Rpb25zL0VudGl0eURpY3Rpb25hcnlcIjtcbi8qKlxuICogVGhpcyBjbGFzcyBpcyB1c2VkIHRvIHN0b3JlIGFsbCBGYW1peCBlbGVtZW50c1xuICovXG5leHBvcnQgY2xhc3MgRmFtaXhSZXBvc2l0b3J5IHtcbiAgcHJpdmF0ZSBlbGVtZW50cyA9IG5ldyBTZXQ8RmFtaXhCYXNlRWxlbWVudD4oKTsgLy8gQWxsIEZhbWl4IGVsZW1lbnRzXG4gIHByaXZhdGUgZmFtaXhDbGFzc2VzID0gbmV3IFNldDxDbGFzcz4oKTsgLy8gQWxsIEZhbWl4IGNsYXNzZXNcbiAgcHJpdmF0ZSBmYW1peEludGVyZmFjZXMgPSBuZXcgU2V0PEludGVyZmFjZT4oKTsgLy8gQWxsIEZhbWl4IGludGVyZmFjZXNcbiAgcHJpdmF0ZSBmYW1peE1vZHVsZXMgPSBuZXcgU2V0PE1vZHVsZT4oKTsgLy8gQWxsIEZhbWl4IG5hbWVzcGFjZXNcbiAgcHJpdmF0ZSBmYW1peE1ldGhvZHMgPSBuZXcgU2V0PE1ldGhvZD4oKTsgLy8gQWxsIEZhbWl4IG1ldGhvZHNcbiAgcHJpdmF0ZSBmYW1peFZhcmlhYmxlcyA9IG5ldyBTZXQ8VmFyaWFibGU+KCk7IC8vIEFsbCBGYW1peCB2YXJpYWJsZXNcbiAgcHJpdmF0ZSBmYW1peEZ1bmN0aW9ucyA9IG5ldyBTZXQ8RmFtaXhGdW5jdGlvbkVudGl0eT4oKTsgLy8gQWxsIEZhbWl4IGZ1bmN0aW9uc1xuICBwcml2YXRlIGZhbWl4RmlsZXMgPSBuZXcgU2V0PFNjcmlwdEVudGl0eSB8IE1vZHVsZT4oKTsgLy8gQWxsIEZhbWl4IGZpbGVzXG4gIHByaXZhdGUgaWRDb3VudGVyID0gMTsgLy8gSWQgY291bnRlclxuICBwcml2YXRlIGFic29sdXRlUGF0aDogc3RyaW5nID0gXCJcIjtcbiAgcHJpdmF0ZSBmbXhFbGVtZW50T2JqZWN0TWFwID0gbmV3IE1hcDxGYW1peC5FbnRpdHksVFNNb3JwaE9iamVjdFR5cGU+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5hZGRFbGVtZW50KG5ldyBTb3VyY2VMYW5ndWFnZSgpKTsgIC8vIGFkZCB0aGUgc291cmNlIGxhbmd1YWdlIGVudGl0eSAoVHlwZVNjcmlwdClcbiAgfVxuXG4gIHB1YmxpYyBzZXRGbXhFbGVtZW50T2JqZWN0TWFwKGZteEVsZW1lbnRPYmplY3RNYXA6IE1hcDxGYW1peC5FbnRpdHksVFNNb3JwaE9iamVjdFR5cGU+KXtcbiAgICB0aGlzLmZteEVsZW1lbnRPYmplY3RNYXAgPSBmbXhFbGVtZW50T2JqZWN0TWFwO1xuICB9XG5cbiAgcHVibGljIGdldEZteEVsZW1lbnRPYmplY3RNYXAoKXtcbiAgICByZXR1cm4gdGhpcy5mbXhFbGVtZW50T2JqZWN0TWFwO1xuICB9XG5cbiAgcHVibGljIGdldEFic29sdXRlUGF0aCgpIDogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5hYnNvbHV0ZVBhdGg7XG4gIH1cblxuICBwdWJsaWMgc2V0QWJzb2x1dGVQYXRoKCBwYXRoOiBzdHJpbmcgKXtcbiAgICB0aGlzLmFic29sdXRlUGF0aCA9IHBhdGg7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIEZhbWl4IGVudGl0eSBieSBpZFxuICAgKiBAcGFyYW0gaWQgQW4gaWQgb2YgYSBGYW1peCBlbnRpdHlcbiAgICogQHJldHVybnMgVGhlIEZhbWl4IGVudGl0eSBjb3JyZXNwb25kaW5nIHRvIHRoZSBpZCBvciB1bmRlZmluZWQgaWYgaXQgZG9lc24ndCBleGlzdFxuICAgKi9cbiAgcHVibGljIGdldEZhbWl4RW50aXR5QnlJZChpZDogbnVtYmVyKTogRmFtaXhCYXNlRWxlbWVudCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgZW50aXR5ID0gQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLnZhbHVlcygpKS5maW5kKGUgPT4gZS5pZCA9PT0gaWQpO1xuICAgIHJldHVybiBlbnRpdHk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIEZhbWl4IGVudGl0eSBieSBmdWxseSBxdWFsaWZpZWQgbmFtZVxuICAgKiBAcGFyYW0gZnVsbHlRdWFsaWZpZWROYW1lIEEgZnVsbHkgcXVhbGlmaWVkIG5hbWVcbiAgICogQHJldHVybnMgVGhlIEZhbWl4IGVudGl0eSBjb3JyZXNwb25kaW5nIHRvIHRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvciB1bmRlZmluZWQgaWYgaXQgZG9lc24ndCBleGlzdFxuICAgKi9cbiAgcHVibGljIGdldEZhbWl4RW50aXR5QnlGdWxseVF1YWxpZmllZE5hbWUoZnVsbHlRdWFsaWZpZWROYW1lOiBzdHJpbmcpOiBGYW1peEJhc2VFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBhbGxFbnRpdGllcyA9IEFycmF5LmZyb20odGhpcy5lbGVtZW50cy52YWx1ZXMoKSkuZmlsdGVyKGUgPT4gZSBpbnN0YW5jZW9mIE5hbWVkRW50aXR5KSBhcyBBcnJheTxOYW1lZEVudGl0eT47XG4gICAgY29uc3QgZW50aXR5ID0gYWxsRW50aXRpZXMuZmluZChlID0+IGUuZ2V0RnVsbHlRdWFsaWZpZWROYW1lKCkgPT09IGZ1bGx5UXVhbGlmaWVkTmFtZSk7XG4gICAgcmV0dXJuIGVudGl0eTtcbiAgfVxuXG4gIGV4cG9ydChhcmcwOiB7IGZvcm1hdDogc3RyaW5nOyB9KSB7XG4gICAgaWYoYXJnMC5mb3JtYXQgPT09IFwianNvblwiKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRKU09OKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIlVuc3VwcG9ydGVkIGZvcm1hdFwiKTtcbiAgICB9XG4gIH1cblxuXG4gIC8vIE9ubHkgZm9yIHRlc3RzXG5cbiAgLyoqXG4gICAqIEdldHMgYWxsIEZhbWl4IGVudGl0aWVzXG4gICAqIEByZXR1cm5zIEFsbCBGYW1peCBlbnRpdGllc1xuICAgKi9cbiAgcHVibGljIF9nZXRBbGxFbnRpdGllcygpOiBTZXQ8RmFtaXhCYXNlRWxlbWVudD4ge1xuICAgIHJldHVybiBuZXcgU2V0KEFycmF5LmZyb20odGhpcy5lbGVtZW50cy52YWx1ZXMoKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYWxsIEZhbWl4IGVudGl0aWVzIG9mIGEgZ2l2ZW4gdHlwZVxuICAgKiBAcGFyYW0gdGhlVHlwZSBBIHR5cGUgb2YgRmFtaXggZW50aXR5XG4gICAqIEByZXR1cm5zIEFsbCBGYW1peCBlbnRpdGllcyBvZiB0aGUgZ2l2ZW4gdHlwZVxuICAgKi9cbiAgcHVibGljIF9nZXRBbGxFbnRpdGllc1dpdGhUeXBlKHRoZVR5cGU6IHN0cmluZyk6IFNldDxGYW1peEJhc2VFbGVtZW50PiB7XG4gICAgcmV0dXJuIG5ldyBTZXQoQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLnZhbHVlcygpKS5maWx0ZXIoZSA9PiAoZSBhcyBGYW1peEJhc2VFbGVtZW50KS5jb25zdHJ1Y3Rvci5uYW1lID09PSB0aGVUeXBlKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIEZhbWl4IGNsYXNzIGJ5IG5hbWVcbiAgICogQHBhcmFtIG5hbWUgQSBjbGFzcyBuYW1lXG4gICAqIEByZXR1cm5zIFRoZSBGYW1peCBjbGFzcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBuYW1lIG9yIHVuZGVmaW5lZCBpZiBpdCBkb2Vzbid0IGV4aXN0XG4gICAqL1xuICBwdWJsaWMgX2dldEZhbWl4Q2xhc3MoZnVsbHlRdWFsaWZpZWROYW1lOiBzdHJpbmcpOiBDbGFzcyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5mYW1peENsYXNzZXMudmFsdWVzKCkpLmZpbmQobnMgPT4gbnMuZ2V0RnVsbHlRdWFsaWZpZWROYW1lKCkgPT09IGZ1bGx5UXVhbGlmaWVkTmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIEZhbWl4IGludGVyZmFjZSBieSBuYW1lXG4gICAqIEBwYXJhbSBuYW1lIEFuIGludGVyZmFjZSBuYW1lXG4gICAqIEByZXR1cm5zIFRoZSBGYW1peCBpbnRlcmZhY2UgY29ycmVzcG9uZGluZyB0byB0aGUgbmFtZSBvciB1bmRlZmluZWQgaWYgaXQgZG9lc24ndCBleGlzdFxuICAgKi9cbiAgcHVibGljIF9nZXRGYW1peEludGVyZmFjZShmdWxseVF1YWxpZmllZE5hbWU6IHN0cmluZyk6IEludGVyZmFjZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5mYW1peEludGVyZmFjZXMudmFsdWVzKCkpLmZpbmQobnMgPT4gbnMuZ2V0RnVsbHlRdWFsaWZpZWROYW1lKCkgPT09IGZ1bGx5UXVhbGlmaWVkTmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIEZhbWl4IG1ldGhvZCBieSBuYW1lXG4gICAqIEBwYXJhbSBuYW1lIEEgbWV0aG9kIG5hbWVcbiAgICogQHJldHVybnMgVGhlIEZhbWl4IG1ldGhvZCBjb3JyZXNwb25kaW5nIHRvIHRoZSBuYW1lIG9yIHVuZGVmaW5lZCBpZiBpdCBkb2Vzbid0IGV4aXN0XG4gICAqL1xuICBwdWJsaWMgX2dldEZhbWl4TWV0aG9kKGZ1bGx5UXVhbGlmaWVkTmFtZTogc3RyaW5nKTogTWV0aG9kIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmZhbWl4TWV0aG9kcy52YWx1ZXMoKSkuZmluZChucyA9PiBucy5nZXRGdWxseVF1YWxpZmllZE5hbWUoKSA9PT0gZnVsbHlRdWFsaWZpZWROYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgRmFtaXggZnVuY3Rpb24gYnkgbmFtZVxuICAgKiBAcGFyYW0gbmFtZSBBIGZ1bmN0aW9uIG5hbWVcbiAgICogQHJldHVybnMgVGhlIEZhbWl4IGZ1bmN0aW9uIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG5hbWUgb3IgdW5kZWZpbmVkIGlmIGl0IGRvZXNuJ3QgZXhpc3RcbiAgICovXG4gIHB1YmxpYyBfZ2V0RmFtaXhGdW5jdGlvbihmdWxseVF1YWxpZmllZE5hbWU6IHN0cmluZyk6IEZhbWl4RnVuY3Rpb25FbnRpdHkgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZmFtaXhGdW5jdGlvbnMudmFsdWVzKCkpLmZpbmQobnMgPT4gbnMuZ2V0RnVsbHlRdWFsaWZpZWROYW1lKCkgPT09IGZ1bGx5UXVhbGlmaWVkTmFtZSk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBHZXRzIGEgRmFtaXggdmFyaWFibGUgYnkgbmFtZVxuICAgKiBAcGFyYW0gbmFtZSBBIHZhcmlhYmxlIG5hbWVcbiAgICogQHJldHVybnMgVGhlIEZhbWl4IHZhcmlhYmxlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG5hbWUgb3IgdW5kZWZpbmVkIGlmIGl0IGRvZXNuJ3QgZXhpc3RcbiAgICovXG4gIHB1YmxpYyBfZ2V0RmFtaXhWYXJpYWJsZShmdWxseVF1YWxpZmllZE5hbWU6IHN0cmluZyk6IFZhcmlhYmxlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmZhbWl4VmFyaWFibGVzLnZhbHVlcygpKS5maW5kKHYgPT4gdi5nZXRGdWxseVF1YWxpZmllZE5hbWUoKSA9PT0gZnVsbHlRdWFsaWZpZWROYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgRmFtaXggbmFtZXNwYWNlIGJ5IG5hbWVcbiAgICogQHBhcmFtIG5hbWUgQSBuYW1lc3BhY2UgbmFtZVxuICAgKiBAcmV0dXJucyBUaGUgRmFtaXggbmFtZXNwYWNlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG5hbWUgb3IgdW5kZWZpbmVkIGlmIGl0IGRvZXNuJ3QgZXhpc3RcbiAgICovXG4gIHB1YmxpYyBfZ2V0RmFtaXhNb2R1bGUoZnVsbHlRdWFsaWZpZWROYW1lOiBzdHJpbmcpOiBNb2R1bGUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZmFtaXhNb2R1bGVzLnZhbHVlcygpKS5maW5kKG5zID0+IG5zLmdldEZ1bGx5UXVhbGlmaWVkTmFtZSgpID09PSBmdWxseVF1YWxpZmllZE5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYWxsIEZhbWl4IG5hbWVzcGFjZXNcbiAgICogQHJldHVybnMgQWxsIEZhbWl4IG5hbWVzcGFjZXNcbiAgICovXG4gIHB1YmxpYyBfZ2V0RmFtaXhNb2R1bGVzKCk6IFNldDxNb2R1bGU+IHtcbiAgICByZXR1cm4gbmV3IFNldChBcnJheS5mcm9tKHRoaXMuZmFtaXhNb2R1bGVzLnZhbHVlcygpKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIEZhbWl4IGZpbGUgYnkgbmFtZVxuICAgKiBAcGFyYW0gbmFtZSBBIGZpbGUgbmFtZVxuICAgKiBAcmV0dXJucyBUaGUgRmFtaXggZmlsZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBuYW1lIG9yIHVuZGVmaW5lZCBpZiBpdCBkb2Vzbid0IGV4aXN0XG4gICAqL1xuICBwdWJsaWMgX2dldEZhbWl4RmlsZShmdWxseVF1YWxpZmllZE5hbWU6IHN0cmluZyk6IFNjcmlwdEVudGl0eSB8IE1vZHVsZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5mYW1peEZpbGVzLnZhbHVlcygpKS5maW5kKG5zID0+IG5zLmdldE5hbWUoKSA9PT0gZnVsbHlRdWFsaWZpZWROYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFsbCBGYW1peCBmaWxlc1xuICAgKiBAcmV0dXJucyBBbGwgRmFtaXggZmlsZXNcbiAgICovXG4gIHB1YmxpYyBfZ2V0RmFtaXhGaWxlcygpOiBTZXQ8U2NyaXB0RW50aXR5IHwgTW9kdWxlPiB7XG4gICAgcmV0dXJuIG5ldyBTZXQoQXJyYXkuZnJvbSh0aGlzLmZhbWl4RmlsZXMudmFsdWVzKCkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFsbCBtZXRob2QgbmFtZXMgYXMgYSBzZXQgZnJvbSBhIGNsYXNzXG4gICAqIEBwYXJhbSBjbGFzc05hbWUgQSBjbGFzcyBuYW1lXG4gICAqIEByZXR1cm5zIFRoZSBzZXQgb2YgY2xhc3MgXCJjbGFzc05hbWVcIiBtZXRob2QgbmFtZXNcbiAgICovXG4gIHB1YmxpYyBfbWV0aG9kTmFtZXNBc1NldEZyb21DbGFzcyhjbGFzc05hbWU6IHN0cmluZyk6IFNldDxzdHJpbmc+IHtcbiAgICBjb25zdCB0aGVDbGFzcyA9IHRoaXMuX2dldEZhbWl4Q2xhc3MoY2xhc3NOYW1lKSBhcyBDbGFzcztcbiAgICByZXR1cm4gbmV3IFNldChBcnJheS5mcm9tKHRoZUNsYXNzLmdldE1ldGhvZHMoKSkubWFwKG0gPT4gbS5nZXROYW1lKCkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFsbCBtZXRob2QgcGFyZW50cyBhcyBhIHNldCBmcm9tIGEgY2xhc3NcbiAgICogQHBhcmFtIGNsYXNzTmFtZSBBIGNsYXNzIG5hbWVcbiAgICogQHJldHVybnMgVGhlIHNldCBvZiBjbGFzcyBcImNsYXNzTmFtZVwiIG1ldGhvZCBwYXJlbnRzXG4gICAqL1xuICBwdWJsaWMgX21ldGhvZFBhcmVudHNBc1NldEZyb21DbGFzcyhjbGFzc05hbWU6IHN0cmluZyk6IFNldDxUeXBlPiB7XG4gICAgY29uc3QgdGhlQ2xhc3MgPSB0aGlzLl9nZXRGYW1peENsYXNzKGNsYXNzTmFtZSkgYXMgQ2xhc3M7XG4gICAgcmV0dXJuIG5ldyBTZXQoQXJyYXkuZnJvbSh0aGVDbGFzcy5nZXRNZXRob2RzKCkpLm1hcChtID0+IG0uZ2V0UGFyZW50RW50aXR5KCkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBtYXAgb2YgRmFtaXggZWxlbWVudCBpZHMgYW5kIHRoZWlyIEZhbWl4IGVsZW1lbnQgZnJvbSBhIEpTT04gbW9kZWxcbiAgICogQHBhcmFtIG1vZGVsIEEgSlNPTiBtb2RlbFxuICAgKiBAcmV0dXJucyBUaGUgbWFwIG9mIEZhbWl4IGVsZW1lbnQgaWRzIGFuZCB0aGVpciBGYW1peCBlbGVtZW50IGZyb20gdGhlIEpTT04gbW9kZWxcbiAgICovXG4gIHB1YmxpYyBfaW5pdE1hcEZyb21Nb2RlbChtb2RlbDogc3RyaW5nKTogTWFwPG51bWJlciwgdW5rbm93bj4ge1xuICAgIGNvbnN0IHBhcnNlZE1vZGVsOiBBcnJheTxGYW1peEJhc2VFbGVtZW50PiA9IEpTT04ucGFyc2UobW9kZWwpO1xuICAgIGNvbnN0IGlkVG9FbGVtZW50TWFwOiBNYXA8bnVtYmVyLCB1bmtub3duPiA9IG5ldyBNYXAoKTtcbiAgICBwYXJzZWRNb2RlbC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICBpZFRvRWxlbWVudE1hcC5zZXQoZWxlbWVudC5pZCwgZWxlbWVudCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGlkVG9FbGVtZW50TWFwO1xuICB9XG5cblxuICAvKipcbiAgICogQWRkcyBhIEZhbWl4IGVsZW1lbnQgdG8gdGhlIHJlcG9zaXRvcnlcbiAgICogQHBhcmFtIGVsZW1lbnQgQSBGYW1peCBlbGVtZW50XG4gICAqL1xuICBwdWJsaWMgYWRkRWxlbWVudChlbGVtZW50OiBGYW1peEJhc2VFbGVtZW50KTogdm9pZCB7XG4gICAgaWYgKGVsZW1lbnQgaW5zdGFuY2VvZiBDbGFzcykge1xuICAgICAgdGhpcy5mYW1peENsYXNzZXMuYWRkKGVsZW1lbnQpO1xuICAgIH0gZWxzZSBpZiAoZWxlbWVudCBpbnN0YW5jZW9mIEludGVyZmFjZSkge1xuICAgICAgdGhpcy5mYW1peEludGVyZmFjZXMuYWRkKGVsZW1lbnQpO1xuICAgIH0gZWxzZSBpZiAoZWxlbWVudCBpbnN0YW5jZW9mIE1vZHVsZSkge1xuICAgICAgdGhpcy5mYW1peE1vZHVsZXMuYWRkKGVsZW1lbnQpO1xuICAgIH0gZWxzZSBpZiAoZWxlbWVudCBpbnN0YW5jZW9mIFZhcmlhYmxlKSB7XG4gICAgICB0aGlzLmZhbWl4VmFyaWFibGVzLmFkZChlbGVtZW50KTtcbiAgICB9IGVsc2UgaWYgKGVsZW1lbnQgaW5zdGFuY2VvZiBNZXRob2QpIHtcbiAgICAgIHRoaXMuZmFtaXhNZXRob2RzLmFkZChlbGVtZW50KTtcbiAgICB9IGVsc2UgaWYgKGVsZW1lbnQgaW5zdGFuY2VvZiBGYW1peEZ1bmN0aW9uRW50aXR5IHx8IGVsZW1lbnQgaW5zdGFuY2VvZiBBcnJvd0Z1bmN0aW9uKSB7XG4gICAgICB0aGlzLmZhbWl4RnVuY3Rpb25zLmFkZChlbGVtZW50KTtcbiAgICB9IGVsc2UgaWYgKGVsZW1lbnQgaW5zdGFuY2VvZiBTY3JpcHRFbnRpdHkgfHwgZWxlbWVudCBpbnN0YW5jZW9mIE1vZHVsZSkge1xuICAgICAgdGhpcy5mYW1peEZpbGVzLmFkZChlbGVtZW50KTtcbiAgICB9XG4gICAgdGhpcy5lbGVtZW50cy5hZGQoZWxlbWVudCk7XG4gICAgZWxlbWVudC5pZCA9IHRoaXMuaWRDb3VudGVyO1xuICAgIHRoaXMuaWRDb3VudGVyKys7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBhIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhlIHJlcG9zaXRvcnlcbiAgICogQHJldHVybnMgQSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSByZXBvc2l0b3J5XG4gICAqL1xuICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xuICAgIGxldCByZXQgPSBcIltcIjtcbiAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLnZhbHVlcygpKSkge1xuICAgICAgcmV0ID0gcmV0ICsgZWxlbWVudC5nZXRKU09OKCkgKyBcIixcIjtcbiAgICB9XG4gICAgcmV0ID0gcmV0LnN1YnN0cmluZygwLCByZXQubGVuZ3RoIC0gMSk7XG4gICAgcmV0dXJuIHJldCArIFwiXVwiO1xuICB9XG59XG4iXX0=
@@ -1,40 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Access = void 0;
4
- const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
5
- const entity_1 = require("./entity");
6
- class Access extends entity_1.Entity {
7
- getAccessor() {
8
- return this.accessor;
9
- }
10
- setAccessor(accessor) {
11
- this.accessor = accessor;
12
- accessor.addAccess(this);
13
- }
14
- getVariable() {
15
- return this.variable;
16
- }
17
- setVariable(variable) {
18
- this.variable = variable;
19
- variable.addIncomingAccess(this);
20
- }
21
- getIsWrite() {
22
- return this.isWrite;
23
- }
24
- setIsWrite(isWrite) {
25
- this.isWrite = isWrite;
26
- }
27
- getJSON() {
28
- const json = new famix_JSON_exporter_1.FamixJSONExporter("Access", this);
29
- this.addPropertiesToExporter(json);
30
- return json.getJSON();
31
- }
32
- addPropertiesToExporter(exporter) {
33
- super.addPropertiesToExporter(exporter);
34
- exporter.addProperty("accessor", this.getAccessor());
35
- exporter.addProperty("variable", this.getVariable());
36
- exporter.addProperty("isWrite", this.getIsWrite());
37
- }
38
- }
39
- exports.Access = Access;
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9mYW1peC9zcmMvbW9kZWwvZmFtaXgvYWNjZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUc5RCxxQ0FBa0M7QUFFbEMsTUFBYSxNQUFPLFNBQVEsZUFBTTtJQUl6QixXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRU0sV0FBVyxDQUFDLFFBQXlCO1FBQzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUlNLFdBQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxXQUFXLENBQUMsUUFBMEI7UUFDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsUUFBUSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFJTSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFTSxVQUFVLENBQUMsT0FBZ0I7UUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUdNLE9BQU87UUFDWixNQUFNLElBQUksR0FBc0IsSUFBSSx1Q0FBaUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN4RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDckQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDckQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQztDQUNGO0FBL0NELHdCQStDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcbmltcG9ydCB7IFN0cnVjdHVyYWxFbnRpdHkgfSBmcm9tIFwiLi9zdHJ1Y3R1cmFsX2VudGl0eVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyRW50aXR5IH0gZnJvbSBcIi4vY29udGFpbmVyX2VudGl0eVwiO1xuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSBcIi4vZW50aXR5XCI7XG5cbmV4cG9ydCBjbGFzcyBBY2Nlc3MgZXh0ZW5kcyBFbnRpdHkge1xuXG4gIHByaXZhdGUgYWNjZXNzb3I6IENvbnRhaW5lckVudGl0eTtcblxuICBwdWJsaWMgZ2V0QWNjZXNzb3IoKTogQ29udGFpbmVyRW50aXR5IHtcbiAgICByZXR1cm4gdGhpcy5hY2Nlc3NvcjtcbiAgfVxuXG4gIHB1YmxpYyBzZXRBY2Nlc3NvcihhY2Nlc3NvcjogQ29udGFpbmVyRW50aXR5KTogdm9pZCB7XG4gICAgdGhpcy5hY2Nlc3NvciA9IGFjY2Vzc29yO1xuICAgIGFjY2Vzc29yLmFkZEFjY2Vzcyh0aGlzKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFyaWFibGU6IFN0cnVjdHVyYWxFbnRpdHk7XG5cbiAgcHVibGljIGdldFZhcmlhYmxlKCk6IFN0cnVjdHVyYWxFbnRpdHkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgcHVibGljIHNldFZhcmlhYmxlKHZhcmlhYmxlOiBTdHJ1Y3R1cmFsRW50aXR5KTogdm9pZCB7XG4gICAgdGhpcy52YXJpYWJsZSA9IHZhcmlhYmxlO1xuICAgIHZhcmlhYmxlLmFkZEluY29taW5nQWNjZXNzKHRoaXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1dyaXRlOiBib29sZWFuO1xuXG4gIHB1YmxpYyBnZXRJc1dyaXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzV3JpdGU7XG4gIH1cblxuICBwdWJsaWMgc2V0SXNXcml0ZShpc1dyaXRlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc1dyaXRlID0gaXNXcml0ZTtcbiAgfVxuXG5cbiAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcbiAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIkFjY2Vzc1wiLCB0aGlzKTtcbiAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xuICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcbiAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XG4gICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJhY2Nlc3NvclwiLCB0aGlzLmdldEFjY2Vzc29yKCkpO1xuICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwidmFyaWFibGVcIiwgdGhpcy5nZXRWYXJpYWJsZSgpKTtcbiAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImlzV3JpdGVcIiwgdGhpcy5nZXRJc1dyaXRlKCkpO1xuICB9XG59XG4iXX0=
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L3NyYy9tb2RlbC9mYW1peC9hY2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFDOUQscUNBQWtDO0FBRWxDLE1BQWEsUUFBUyxTQUFRLGVBQU07SUFFM0IsT0FBTztRQUNaLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFFBQTJCO1FBQ3hELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0Y7QUFYRCw0QkFXQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcbmltcG9ydCB7IE1ldGhvZCB9IGZyb20gXCIuL21ldGhvZFwiO1xuXG5leHBvcnQgY2xhc3MgQWNjZXNzb3IgZXh0ZW5kcyBNZXRob2Qge1xuICBcbiAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcbiAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIkFjY2Vzc29yXCIsIHRoaXMpO1xuICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XG4gICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xuICB9XG5cbiAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcbiAgfVxufVxuIl19
@@ -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
- getParentEntity() {
8
- return this.parentEntity;
9
- }
10
- setParentEntity(parentEntity) {
11
- this.parentEntity = parentEntity;
12
- parentEntity.addAlias(this);
13
- }
14
- getAliasedEntity() {
15
- return this.aliasedEntity;
16
- }
17
- setAliasedEntity(aliasedEntity) {
18
- this.aliasedEntity = aliasedEntity;
19
- aliasedEntity.addTypeAlias(this);
20
- }
21
- getJSON() {
22
- const json = new famix_JSON_exporter_1.FamixJSONExporter("Alias", this);
23
- this.addPropertiesToExporter(json);
24
- return json.getJSON();
25
- }
26
- addPropertiesToExporter(exporter) {
27
- super.addPropertiesToExporter(exporter);
28
- exporter.addProperty("parentType", this.getParentEntity());
29
- exporter.addProperty("aliasedEntity", this.getAliasedEntity());
30
- }
31
- }
32
- exports.Alias = Alias;
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxpYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L3NyYy9tb2RlbC9mYW1peC9hbGlhcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFDOUQsaURBQTZDO0FBRzdDLE1BQWEsS0FBTSxTQUFRLDBCQUFXO0lBSTdCLGVBQWU7UUFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFTSxlQUFlLENBQUMsWUFBeUI7UUFDOUMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBSU0sZ0JBQWdCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRU0sZ0JBQWdCLENBQUMsYUFBbUI7UUFDekMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBR00sT0FBTztRQUNaLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFFBQTJCO1FBQ3hELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUMzRCxRQUFRLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7Q0FDRjtBQXBDRCxzQkFvQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEpTT05FeHBvcnRlciB9IGZyb20gXCIuLi8uLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XG5pbXBvcnQgeyBOYW1lZEVudGl0eSB9IGZyb20gXCIuL25hbWVkX2VudGl0eVwiO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gXCIuL3R5cGVcIjtcblxuZXhwb3J0IGNsYXNzIEFsaWFzIGV4dGVuZHMgTmFtZWRFbnRpdHkge1xuXG4gIHByaXZhdGUgcGFyZW50RW50aXR5OiBOYW1lZEVudGl0eTtcblxuICBwdWJsaWMgZ2V0UGFyZW50RW50aXR5KCk6IE5hbWVkRW50aXR5IHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnRFbnRpdHk7XG4gIH1cblxuICBwdWJsaWMgc2V0UGFyZW50RW50aXR5KHBhcmVudEVudGl0eTogTmFtZWRFbnRpdHkpOiB2b2lkIHtcbiAgICB0aGlzLnBhcmVudEVudGl0eSA9IHBhcmVudEVudGl0eTtcbiAgICBwYXJlbnRFbnRpdHkuYWRkQWxpYXModGhpcyk7XG4gIH1cblxuICBwcml2YXRlIGFsaWFzZWRFbnRpdHk6IFR5cGU7XG5cbiAgcHVibGljIGdldEFsaWFzZWRFbnRpdHkoKTogVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuYWxpYXNlZEVudGl0eTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRBbGlhc2VkRW50aXR5KGFsaWFzZWRFbnRpdHk6IFR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLmFsaWFzZWRFbnRpdHkgPSBhbGlhc2VkRW50aXR5O1xuICAgIGFsaWFzZWRFbnRpdHkuYWRkVHlwZUFsaWFzKHRoaXMpO1xuICB9XG5cblxuICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xuICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiQWxpYXNcIiwgdGhpcyk7XG4gICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcbiAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XG4gIH1cblxuICBwdWJsaWMgYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXI6IEZhbWl4SlNPTkV4cG9ydGVyKTogdm9pZCB7XG4gICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xuICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwicGFyZW50VHlwZVwiLCB0aGlzLmdldFBhcmVudEVudGl0eSgpKTtcbiAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImFsaWFzZWRFbnRpdHlcIiwgdGhpcy5nZXRBbGlhc2VkRW50aXR5KCkpO1xuICB9XG59XG4iXX0=
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyb3dGdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvc3JjL21vZGVsL2ZhbWl4L2Fycm93RnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQThEO0FBQzlELDJEQUF1RDtBQUV2RCxNQUFhLGFBQWMsU0FBUSxvQ0FBZ0I7SUFFMUMsT0FBTztRQUNaLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFFBQTJCO1FBQ3hELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0Y7QUFYRCxzQ0FXQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcbmltcG9ydCB7IEJlaGF2aW9yYWxFbnRpdHkgfSBmcm9tIFwiLi9iZWhhdmlvcmFsX2VudGl0eVwiO1xuXG5leHBvcnQgY2xhc3MgQXJyb3dGdW5jdGlvbiBleHRlbmRzIEJlaGF2aW9yYWxFbnRpdHkge1xuXG4gIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XG4gICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJBcnJvd0Z1bmN0aW9uXCIsIHRoaXMpO1xuICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XG4gICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xuICB9XG5cbiAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcbiAgfVxufVxuIl19
@@ -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
- getSignature() {
14
- return this.signature;
15
- }
16
- setSignature(signature) {
17
- this.signature = signature;
18
- }
19
- getParameters() {
20
- return this.parameters;
21
- }
22
- addParameter(parameter) {
23
- if (!this.parameters.has(parameter)) {
24
- this.parameters.add(parameter);
25
- parameter.setParentEntity(this);
26
- }
27
- }
28
- getNumberOfParameters() {
29
- return this.numberOfParameters;
30
- }
31
- setNumberOfParameters(numberOfParameters) {
32
- this.numberOfParameters = numberOfParameters;
33
- }
34
- getIncomingInvocations() {
35
- return this.incomingInvocations;
36
- }
37
- addIncomingInvocation(incomingInvocation) {
38
- if (!this.incomingInvocations.has(incomingInvocation)) {
39
- this.incomingInvocations.add(incomingInvocation);
40
- incomingInvocation.addCandidate(this);
41
- }
42
- }
43
- getDeclaredType() {
44
- return this.declaredType;
45
- }
46
- setDeclaredType(declaredType) {
47
- this.declaredType = declaredType;
48
- declaredType.addBehavioralEntityWithDeclaredType(this);
49
- }
50
- getGenericParameters() {
51
- return this.genericParameters;
52
- }
53
- addGenericParameter(genericParameter) {
54
- if (!this.genericParameters.has(genericParameter)) {
55
- this.genericParameters.add(genericParameter);
56
- genericParameter.setParentGeneric(this);
57
- }
58
- }
59
- clearGenericParameters() {
60
- this.genericParameters.clear();
61
- }
62
- getJSON() {
63
- const json = new famix_JSON_exporter_1.FamixJSONExporter("BehavioralEntity", this);
64
- this.addPropertiesToExporter(json);
65
- return json.getJSON();
66
- }
67
- addPropertiesToExporter(exporter) {
68
- super.addPropertiesToExporter(exporter);
69
- exporter.addProperty("signature", this.getSignature());
70
- exporter.addProperty("parameters", this.getParameters());
71
- exporter.addProperty("numberOfParameters", this.getNumberOfParameters());
72
- exporter.addProperty("incomingInvocations", this.getIncomingInvocations());
73
- exporter.addProperty("declaredType", this.getDeclaredType());
74
- /* don't add the property here, since it doesn't apply to all subclasses */
75
- // exporter.addProperty("genericParameters", this.getGenericParameters());
76
- }
77
- }
78
- exports.BehavioralEntity = BehavioralEntity;
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVoYXZpb3JhbF9lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L3NyYy9tb2RlbC9mYW1peC9iZWhhdmlvcmFsX2VudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFFOUQseURBQXFEO0FBS3JELE1BQWEsZ0JBQWlCLFNBQVEsa0NBQWU7SUFBckQ7O1FBWVUsZUFBVSxHQUFtQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBdUJ2Qyx3QkFBbUIsR0FBb0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQXdCakQsc0JBQWlCLEdBQXVCLElBQUksR0FBRyxFQUFFLENBQUM7SUFpQzVELENBQUM7SUF4RlEsWUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVNLFlBQVksQ0FBQyxTQUFpQjtRQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBSU0sYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVNLFlBQVksQ0FBQyxTQUFvQjtRQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMvQixTQUFTLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDO0lBSU0scUJBQXFCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxrQkFBMEI7UUFDckQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO0lBQy9DLENBQUM7SUFJTSxzQkFBc0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztJQUVNLHFCQUFxQixDQUFDLGtCQUE4QjtRQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7WUFDdEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ2pELGtCQUFrQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUlNLGVBQWU7UUFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFTSxlQUFlLENBQUMsWUFBa0I7UUFDdkMsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsWUFBWSxDQUFDLG1DQUFtQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFJTSxvQkFBb0I7UUFDekIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUVNLG1CQUFtQixDQUFDLGdCQUErQjtRQUN4RCxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDbEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzdDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFDLENBQUM7SUFDSCxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRU0sT0FBTztRQUNaLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDeEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLFFBQVEsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELFFBQVEsQ0FBQyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztRQUN6RSxRQUFRLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUM7UUFDM0UsUUFBUSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDN0QsMkVBQTJFO1FBQy9FLDZFQUE2RTtJQUMzRSxDQUFDO0NBQ0Y7QUE1RkQsNENBNEZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gXCIuL3R5cGVcIjtcbmltcG9ydCB7IENvbnRhaW5lckVudGl0eSB9IGZyb20gXCIuL2NvbnRhaW5lcl9lbnRpdHlcIjtcbmltcG9ydCB7IFBhcmFtZXRlciB9IGZyb20gXCIuL3BhcmFtZXRlclwiO1xuaW1wb3J0IHsgSW52b2NhdGlvbiB9IGZyb20gXCIuL2ludm9jYXRpb25cIjtcbmltcG9ydCB7IFBhcmFtZXRlclR5cGUgfSBmcm9tIFwiLi9wYXJhbWV0ZXJfdHlwZVwiO1xuXG5leHBvcnQgY2xhc3MgQmVoYXZpb3JhbEVudGl0eSBleHRlbmRzIENvbnRhaW5lckVudGl0eSB7XG5cbiAgcHJpdmF0ZSBzaWduYXR1cmU6IHN0cmluZztcblxuICBwdWJsaWMgZ2V0U2lnbmF0dXJlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2lnbmF0dXJlO1xuICB9XG5cbiAgcHVibGljIHNldFNpZ25hdHVyZShzaWduYXR1cmU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2lnbmF0dXJlID0gc2lnbmF0dXJlO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJhbWV0ZXJzOiBTZXQ8UGFyYW1ldGVyPiA9IG5ldyBTZXQoKTtcblxuICBwdWJsaWMgZ2V0UGFyYW1ldGVycygpOiBTZXQ8UGFyYW1ldGVyPiB7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1ldGVycztcbiAgfVxuXG4gIHB1YmxpYyBhZGRQYXJhbWV0ZXIocGFyYW1ldGVyOiBQYXJhbWV0ZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucGFyYW1ldGVycy5oYXMocGFyYW1ldGVyKSkge1xuICAgICAgdGhpcy5wYXJhbWV0ZXJzLmFkZChwYXJhbWV0ZXIpO1xuICAgICAgcGFyYW1ldGVyLnNldFBhcmVudEVudGl0eSh0aGlzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG51bWJlck9mUGFyYW1ldGVyczogbnVtYmVyO1xuXG4gIHB1YmxpYyBnZXROdW1iZXJPZlBhcmFtZXRlcnMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5udW1iZXJPZlBhcmFtZXRlcnM7XG4gIH1cblxuICBwdWJsaWMgc2V0TnVtYmVyT2ZQYXJhbWV0ZXJzKG51bWJlck9mUGFyYW1ldGVyczogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5udW1iZXJPZlBhcmFtZXRlcnMgPSBudW1iZXJPZlBhcmFtZXRlcnM7XG4gIH1cblxuICBwcml2YXRlIGluY29taW5nSW52b2NhdGlvbnM6IFNldDxJbnZvY2F0aW9uPiA9IG5ldyBTZXQoKTtcblxuICBwdWJsaWMgZ2V0SW5jb21pbmdJbnZvY2F0aW9ucygpOiBTZXQ8SW52b2NhdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmluY29taW5nSW52b2NhdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgYWRkSW5jb21pbmdJbnZvY2F0aW9uKGluY29taW5nSW52b2NhdGlvbjogSW52b2NhdGlvbik6IHZvaWQge1xuICAgIGlmICghdGhpcy5pbmNvbWluZ0ludm9jYXRpb25zLmhhcyhpbmNvbWluZ0ludm9jYXRpb24pKSB7XG4gICAgICB0aGlzLmluY29taW5nSW52b2NhdGlvbnMuYWRkKGluY29taW5nSW52b2NhdGlvbik7XG4gICAgICBpbmNvbWluZ0ludm9jYXRpb24uYWRkQ2FuZGlkYXRlKHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZGVjbGFyZWRUeXBlOiBUeXBlO1xuXG4gIHB1YmxpYyBnZXREZWNsYXJlZFR5cGUoKTogVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuZGVjbGFyZWRUeXBlO1xuICB9XG5cbiAgcHVibGljIHNldERlY2xhcmVkVHlwZShkZWNsYXJlZFR5cGU6IFR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLmRlY2xhcmVkVHlwZSA9IGRlY2xhcmVkVHlwZTtcbiAgICBkZWNsYXJlZFR5cGUuYWRkQmVoYXZpb3JhbEVudGl0eVdpdGhEZWNsYXJlZFR5cGUodGhpcyk7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyaWNQYXJhbWV0ZXJzOiBTZXQ8UGFyYW1ldGVyVHlwZT4gPSBuZXcgU2V0KCk7XG5cbiAgcHVibGljIGdldEdlbmVyaWNQYXJhbWV0ZXJzKCk6IFNldDxQYXJhbWV0ZXJUeXBlPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2VuZXJpY1BhcmFtZXRlcnM7XG4gIH1cblxuICBwdWJsaWMgYWRkR2VuZXJpY1BhcmFtZXRlcihnZW5lcmljUGFyYW1ldGVyOiBQYXJhbWV0ZXJUeXBlKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmdlbmVyaWNQYXJhbWV0ZXJzLmhhcyhnZW5lcmljUGFyYW1ldGVyKSkge1xuICAgICAgdGhpcy5nZW5lcmljUGFyYW1ldGVycy5hZGQoZ2VuZXJpY1BhcmFtZXRlcik7XG4gICAgICBnZW5lcmljUGFyYW1ldGVyLnNldFBhcmVudEdlbmVyaWModGhpcyk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJHZW5lcmljUGFyYW1ldGVycygpOiB2b2lkIHtcbiAgICB0aGlzLmdlbmVyaWNQYXJhbWV0ZXJzLmNsZWFyKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xuICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiQmVoYXZpb3JhbEVudGl0eVwiLCB0aGlzKTtcbiAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xuICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcbiAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XG4gICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJzaWduYXR1cmVcIiwgdGhpcy5nZXRTaWduYXR1cmUoKSk7XG4gICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJwYXJhbWV0ZXJzXCIsIHRoaXMuZ2V0UGFyYW1ldGVycygpKTtcbiAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcIm51bWJlck9mUGFyYW1ldGVyc1wiLCB0aGlzLmdldE51bWJlck9mUGFyYW1ldGVycygpKTtcbiAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImluY29taW5nSW52b2NhdGlvbnNcIiwgdGhpcy5nZXRJbmNvbWluZ0ludm9jYXRpb25zKCkpO1xuICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiZGVjbGFyZWRUeXBlXCIsIHRoaXMuZ2V0RGVjbGFyZWRUeXBlKCkpO1xuICAgIC8qIGRvbid0IGFkZCB0aGUgcHJvcGVydHkgaGVyZSwgc2luY2UgaXQgZG9lc24ndCBhcHBseSB0byBhbGwgc3ViY2xhc3NlcyAqL1xuLy8gICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJnZW5lcmljUGFyYW1ldGVyc1wiLCB0aGlzLmdldEdlbmVyaWNQYXJhbWV0ZXJzKCkpO1xuICB9XG59XG4iXX0=
@@ -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
- getIsAbstract() {
15
- return this.isAbstract;
16
- }
17
- setIsAbstract(isAbstract) {
18
- this.isAbstract = isAbstract;
19
- }
20
- getProperties() {
21
- return this.properties;
22
- }
23
- addProperty(property) {
24
- if (!this.properties.has(property)) {
25
- this.properties.add(property);
26
- property.setParentEntity(this);
27
- }
28
- }
29
- getMethods() {
30
- return this.methods;
31
- }
32
- addMethod(method) {
33
- if (!this.methods.has(method)) {
34
- this.methods.add(method);
35
- method.setParentEntity(this);
36
- }
37
- }
38
- getSuperInheritances() {
39
- return this.superInheritances;
40
- }
41
- addSuperInheritance(superInheritance) {
42
- if (!this.superInheritances.has(superInheritance)) {
43
- this.superInheritances.add(superInheritance);
44
- superInheritance.setSubclass(this);
45
- }
46
- }
47
- getSubInheritances() {
48
- return this.subInheritances;
49
- }
50
- addSubInheritance(subInheritance) {
51
- if (!this.subInheritances.has(subInheritance)) {
52
- this.subInheritances.add(subInheritance);
53
- subInheritance.setSuperclass(this);
54
- }
55
- }
56
- getJSON() {
57
- const json = new famix_JSON_exporter_1.FamixJSONExporter("Class", this);
58
- this.addPropertiesToExporter(json);
59
- return json.getJSON();
60
- }
61
- addPropertiesToExporter(exporter) {
62
- super.addPropertiesToExporter(exporter);
63
- exporter.addProperty("isAbstract", this.getIsAbstract());
64
- exporter.addProperty("attributes", this.getProperties()); // Moose (10) codes them as attributes
65
- exporter.addProperty("methods", this.getMethods());
66
- exporter.addProperty("superInheritances", this.getSuperInheritances());
67
- exporter.addProperty("subInheritances", this.getSubInheritances());
68
- }
69
- }
70
- exports.Class = Class;
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L3NyYy9tb2RlbC9mYW1peC9jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFDOUQsaUNBQThCO0FBSzlCLE1BQWEsS0FBTSxTQUFRLFdBQUk7SUFBL0I7O1FBWVUsZUFBVSxHQUFrQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBYXRDLFlBQU8sR0FBZ0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQWFqQyxzQkFBaUIsR0FBcUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQWFoRCxvQkFBZSxHQUFxQixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBNEJ4RCxDQUFDO0lBM0VRLGFBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxhQUFhLENBQUMsVUFBbUI7UUFDdEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUlNLGFBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxXQUFXLENBQUMsUUFBa0I7UUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUIsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQztJQUlNLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVNLFNBQVMsQ0FBQyxNQUFjO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3pCLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7SUFJTSxvQkFBb0I7UUFDekIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUVNLG1CQUFtQixDQUFDLGdCQUE2QjtRQUN0RCxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDbEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzdDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQztJQUlNLGtCQUFrQjtRQUN2QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUVNLGlCQUFpQixDQUFDLGNBQTJCO1FBQ2xELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3pDLGNBQWMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsQ0FBQztJQUNILENBQUM7SUFHTSxPQUFPO1FBQ1osTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDeEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsc0NBQXNDO1FBQ2hHLFFBQVEsQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELFFBQVEsQ0FBQyxXQUFXLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUN2RSxRQUFRLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7SUFDckUsQ0FBQztDQUNGO0FBL0VELHNCQStFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcbmltcG9ydCB7IFR5cGUgfSBmcm9tIFwiLi90eXBlXCI7XG5pbXBvcnQgeyBNZXRob2QgfSBmcm9tIFwiLi9tZXRob2RcIjtcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSBcIi4vcHJvcGVydHlcIjtcbmltcG9ydCB7IEluaGVyaXRhbmNlIH0gZnJvbSBcIi4vaW5oZXJpdGFuY2VcIjtcblxuZXhwb3J0IGNsYXNzIENsYXNzIGV4dGVuZHMgVHlwZSB7XG5cbiAgcHJpdmF0ZSBpc0Fic3RyYWN0OiBib29sZWFuO1xuXG4gIHB1YmxpYyBnZXRJc0Fic3RyYWN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzQWJzdHJhY3Q7XG4gIH1cblxuICBwdWJsaWMgc2V0SXNBYnN0cmFjdChpc0Fic3RyYWN0OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0Fic3RyYWN0ID0gaXNBYnN0cmFjdDtcbiAgfVxuXG4gIHByaXZhdGUgcHJvcGVydGllczogU2V0PFByb3BlcnR5PiA9IG5ldyBTZXQoKTtcblxuICBwdWJsaWMgZ2V0UHJvcGVydGllcygpOiBTZXQ8UHJvcGVydHk+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9wZXJ0aWVzO1xuICB9XG5cbiAgcHVibGljIGFkZFByb3BlcnR5KHByb3BlcnR5OiBQcm9wZXJ0eSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wcm9wZXJ0aWVzLmhhcyhwcm9wZXJ0eSkpIHtcbiAgICAgIHRoaXMucHJvcGVydGllcy5hZGQocHJvcGVydHkpO1xuICAgICAgcHJvcGVydHkuc2V0UGFyZW50RW50aXR5KHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbWV0aG9kczogU2V0PE1ldGhvZD4gPSBuZXcgU2V0KCk7XG5cbiAgcHVibGljIGdldE1ldGhvZHMoKTogU2V0PE1ldGhvZD4ge1xuICAgIHJldHVybiB0aGlzLm1ldGhvZHM7XG4gIH1cblxuICBwdWJsaWMgYWRkTWV0aG9kKG1ldGhvZDogTWV0aG9kKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm1ldGhvZHMuaGFzKG1ldGhvZCkpIHtcbiAgICAgIHRoaXMubWV0aG9kcy5hZGQobWV0aG9kKTtcbiAgICAgIG1ldGhvZC5zZXRQYXJlbnRFbnRpdHkodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdXBlckluaGVyaXRhbmNlczogU2V0PEluaGVyaXRhbmNlPiA9IG5ldyBTZXQoKTtcblxuICBwdWJsaWMgZ2V0U3VwZXJJbmhlcml0YW5jZXMoKTogU2V0PEluaGVyaXRhbmNlPiB7XG4gICAgcmV0dXJuIHRoaXMuc3VwZXJJbmhlcml0YW5jZXM7XG4gIH1cblxuICBwdWJsaWMgYWRkU3VwZXJJbmhlcml0YW5jZShzdXBlckluaGVyaXRhbmNlOiBJbmhlcml0YW5jZSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zdXBlckluaGVyaXRhbmNlcy5oYXMoc3VwZXJJbmhlcml0YW5jZSkpIHtcbiAgICAgIHRoaXMuc3VwZXJJbmhlcml0YW5jZXMuYWRkKHN1cGVySW5oZXJpdGFuY2UpO1xuICAgICAgc3VwZXJJbmhlcml0YW5jZS5zZXRTdWJjbGFzcyh0aGlzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN1YkluaGVyaXRhbmNlczogU2V0PEluaGVyaXRhbmNlPiA9IG5ldyBTZXQoKTtcblxuICBwdWJsaWMgZ2V0U3ViSW5oZXJpdGFuY2VzKCk6IFNldDxJbmhlcml0YW5jZT4ge1xuICAgIHJldHVybiB0aGlzLnN1YkluaGVyaXRhbmNlcztcbiAgfVxuXG4gIHB1YmxpYyBhZGRTdWJJbmhlcml0YW5jZShzdWJJbmhlcml0YW5jZTogSW5oZXJpdGFuY2UpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc3ViSW5oZXJpdGFuY2VzLmhhcyhzdWJJbmhlcml0YW5jZSkpIHtcbiAgICAgIHRoaXMuc3ViSW5oZXJpdGFuY2VzLmFkZChzdWJJbmhlcml0YW5jZSk7XG4gICAgICBzdWJJbmhlcml0YW5jZS5zZXRTdXBlcmNsYXNzKHRoaXMpO1xuICAgIH1cbiAgfVxuXG5cbiAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcbiAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIkNsYXNzXCIsIHRoaXMpO1xuICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XG4gICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xuICB9XG5cbiAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcbiAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImlzQWJzdHJhY3RcIiwgdGhpcy5nZXRJc0Fic3RyYWN0KCkpO1xuICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiYXR0cmlidXRlc1wiLCB0aGlzLmdldFByb3BlcnRpZXMoKSk7IC8vIE1vb3NlICgxMCkgY29kZXMgdGhlbSBhcyBhdHRyaWJ1dGVzXG4gICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJtZXRob2RzXCIsIHRoaXMuZ2V0TWV0aG9kcygpKTtcbiAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcInN1cGVySW5oZXJpdGFuY2VzXCIsIHRoaXMuZ2V0U3VwZXJJbmhlcml0YW5jZXMoKSk7XG4gICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJzdWJJbmhlcml0YW5jZXNcIiwgdGhpcy5nZXRTdWJJbmhlcml0YW5jZXMoKSk7ICBcbiAgfVxufVxuIl19
@@ -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
- getIsJSDoc() {
8
- return this.isJSDoc;
9
- }
10
- setIsJSDoc(isJSDoc) {
11
- this.isJSDoc = isJSDoc;
12
- }
13
- getContainer() {
14
- return this.container;
15
- }
16
- setContainer(container) {
17
- this.container = container;
18
- container.addComment(this);
19
- }
20
- getContent() {
21
- return this.content;
22
- }
23
- setContent(content) {
24
- this.content = content;
25
- }
26
- getJSON() {
27
- const json = new famix_JSON_exporter_1.FamixJSONExporter("Comment", this);
28
- this.addPropertiesToExporter(json);
29
- return json.getJSON();
30
- }
31
- addPropertiesToExporter(exporter) {
32
- super.addPropertiesToExporter(exporter);
33
- exporter.addProperty("isJSDoc", this.getIsJSDoc());
34
- exporter.addProperty("commentedEntity", this.getContainer());
35
- exporter.addProperty("content", this.getContent());
36
- }
37
- }
38
- exports.Comment = Comment;
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvc3JjL21vZGVsL2ZhbWl4L2NvbW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQThEO0FBQzlELHFEQUFpRDtBQUVqRCxNQUFhLE9BQVEsU0FBUSw4QkFBYTtJQUlqQyxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFTSxVQUFVLENBQUMsT0FBZ0I7UUFDaEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUlNLFlBQVk7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFTSxZQUFZLENBQUMsU0FBd0I7UUFDMUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBSU0sVUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRU0sVUFBVSxDQUFDLE9BQWU7UUFDL0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUdNLE9BQU87UUFDWixNQUFNLElBQUksR0FBc0IsSUFBSSx1Q0FBaUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN4RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDbkQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUM3RCxRQUFRLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0Y7QUE5Q0QsMEJBOENDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xuaW1wb3J0IHsgU291cmNlZEVudGl0eSB9IGZyb20gXCIuL3NvdXJjZWRfZW50aXR5XCI7XG5cbmV4cG9ydCBjbGFzcyBDb21tZW50IGV4dGVuZHMgU291cmNlZEVudGl0eSB7XG5cbiAgcHJpdmF0ZSBpc0pTRG9jOiBib29sZWFuO1xuXG4gIHB1YmxpYyBnZXRJc0pTRG9jKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzSlNEb2M7XG4gIH1cblxuICBwdWJsaWMgc2V0SXNKU0RvYyhpc0pTRG9jOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0pTRG9jID0gaXNKU0RvYztcbiAgfVxuXG4gIHByaXZhdGUgY29udGFpbmVyOiBTb3VyY2VkRW50aXR5O1xuXG4gIHB1YmxpYyBnZXRDb250YWluZXIoKTogU291cmNlZEVudGl0eSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGFpbmVyO1xuICB9XG5cbiAgcHVibGljIHNldENvbnRhaW5lcihjb250YWluZXI6IFNvdXJjZWRFbnRpdHkpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICBjb250YWluZXIuYWRkQ29tbWVudCh0aGlzKTtcbiAgfVxuXG4gIHByaXZhdGUgY29udGVudDogc3RyaW5nO1xuXG4gIHB1YmxpYyBnZXRDb250ZW50KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudDtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDb250ZW50KGNvbnRlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY29udGVudCA9IGNvbnRlbnQ7XG4gIH1cblxuXG4gIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XG4gICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJDb21tZW50XCIsIHRoaXMpO1xuICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XG4gICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xuICB9XG5cbiAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcbiAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImlzSlNEb2NcIiwgdGhpcy5nZXRJc0pTRG9jKCkpO1xuICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiY29tbWVudGVkRW50aXR5XCIsIHRoaXMuZ2V0Q29udGFpbmVyKCkpO1xuICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiY29udGVudFwiLCB0aGlzLmdldENvbnRlbnQoKSk7XG4gIH1cbn1cbiJdfQ==