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,251 +1,277 @@
1
1
  @startuml
2
+ class FamixJSONExporter {
3
+ -element: FamixBaseElement
4
+ -bufferArray: any
5
+ -FamixPrefix: string
6
+ +addProperty(name: string, prop: unknown): void
7
+ +getJSON(): string
8
+ }
2
9
  class Entity extends FamixBaseElement {
3
10
  +getJSON(): string
4
11
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
5
12
  }
6
13
  class SourceLanguage extends Entity {
7
- -sourcedEntities: Set<SourcedEntity>
14
+ -_sourcedEntities: Set<SourcedEntity>
8
15
  +name: string
9
- +getSourcedEntities(): Set<SourcedEntity>
10
16
  +addSourcedEntity(sourcedEntity: SourcedEntity): void
11
17
  +getJSON(): string
12
18
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
19
+ +sourcedEntities: Set<SourcedEntity>
13
20
  }
14
21
  class Comment extends SourcedEntity {
15
- -isJSDoc: boolean
16
- +getIsJSDoc(): boolean
17
- +setIsJSDoc(isJSDoc: boolean): void
18
- -container: SourcedEntity
19
- +getContainer(): SourcedEntity
20
- +setContainer(container: SourcedEntity): void
21
- -content: string
22
- +getContent(): string
23
- +setContent(content: string): void
22
+ -_isJSDoc: boolean
23
+ -_container: SourcedEntity
24
+ -_content: string
24
25
  +getJSON(): string
25
26
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
27
+ +isJSDoc: boolean
28
+ +isJSDoc: boolean
29
+ +container: SourcedEntity
30
+ +container: SourcedEntity
31
+ +content: string
32
+ +content: string
26
33
  }
27
34
  class SourceAnchor extends Entity {
28
- -element: SourcedEntity
29
- +getElement(): SourcedEntity
30
- +setElement(element: SourcedEntity): void
35
+ -_element: SourcedEntity
31
36
  +getJSON(): string
32
37
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
38
+ +element: SourcedEntity
39
+ +element: SourcedEntity
33
40
  }
34
41
  class SourcedEntity extends Entity {
35
- -isStub: boolean
36
- +getIsStub(): boolean
37
- +setIsStub(isStub: boolean): void
38
- -sourceAnchor: SourceAnchor
39
- +getSourceAnchor(): SourceAnchor
40
- +setSourceAnchor(sourceAnchor: SourceAnchor): void
41
- -comments: Set<Comment>
42
- +getComments(): Set<Comment>
42
+ -_isStub: boolean
43
+ -_sourceAnchor: SourceAnchor
44
+ -_comments: Set<Comment>
43
45
  +addComment(comment: Comment): void
44
- -declaredSourceLanguage: SourceLanguage
45
- +getDeclaredSourceLanguage(): SourceLanguage
46
- +setDeclaredSourceLanguage(declaredSourceLanguage: SourceLanguage): void
47
- +getJSON(): string
48
- +addPropertiesToExporter(exporter: FamixJSONExporter): void
49
- }
50
- class Association extends SourcedEntity {
51
- -next: Association
52
- +getNext(): Association
53
- +setNext(next: Association): void
54
- -previous: Association
55
- +getPrevious(): Association
56
- +setPrevious(previous: Association): void
57
- +getJSON(): string
58
- +addPropertiesToExporter(exporter: FamixJSONExporter): void
59
- }
60
- class Namespace extends ScopingEntity {
61
- -parentScope: ScopingEntity
62
- +getParentScope(): ScopingEntity
63
- +setParentScope(parentScope: ScopingEntity): void
46
+ -_declaredSourceLanguage: SourceLanguage
64
47
  +getJSON(): string
65
48
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
49
+ +isStub: boolean
50
+ +isStub: boolean
51
+ +sourceAnchor: SourceAnchor
52
+ +sourceAnchor: SourceAnchor
53
+ +comments: Set<Comment>
54
+ +declaredSourceLanguage: SourceLanguage
55
+ +declaredSourceLanguage: SourceLanguage
66
56
  }
67
57
  class ScopingEntity extends ContainerEntity {
68
- -childrenNamespaces: Set<Namespace>
69
- +getNamespaces(): Set<Namespace>
70
- +addNamespace(childNamespace: Namespace): void
58
+ -_modules: Set<Module>
59
+ +addModule(childModule: Module): void
71
60
  +getJSON(): string
72
61
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
62
+ +modules: Set<Module>
73
63
  }
74
64
  class ScriptEntity extends ScopingEntity {
75
- -numberOfLinesOfText: number
76
- +getNumberOfLinesOfText(): number
77
- +setNumberOfLinesOfText(numberOfLinesOfText: number): void
78
- -numberOfCharacters: number
79
- +getNumberOfCharacters(): number
80
- +setNumberOfCharacters(numberOfCharacters: number): void
65
+ -_numberOfLinesOfText: number
66
+ -_numberOfCharacters: number
81
67
  +getJSON(): string
82
68
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
69
+ +numberOfLinesOfText: number
70
+ +numberOfLinesOfText: number
71
+ +numberOfCharacters: number
72
+ +numberOfCharacters: number
83
73
  }
84
74
  class Module extends ScriptEntity {
85
- -outgoingImports: Set<ImportClause>
86
- +getOutgoingImports(): Set<ImportClause>
75
+ +isAmbient: boolean
76
+ +isAmbient: boolean
77
+ -_isAmbient: boolean
78
+ +isNamespace: boolean
79
+ +isNamespace: boolean
80
+ -_isNamespace: boolean
81
+ +isModule: boolean
82
+ +isModule: boolean
83
+ -_isModule: boolean
84
+ -_parentScope: ScopingEntity
85
+ -_outgoingImports: Set<ImportClause>
87
86
  +addOutgoingImport(importClause: ImportClause): void
88
87
  +getJSON(): string
89
88
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
89
+ +parentScope: ScopingEntity
90
+ +parentScope: ScopingEntity
91
+ +outgoingImports: Set<ImportClause>
90
92
  }
91
- class ImportClause extends Association {
92
- -importingEntity: Module
93
- +getImportingEntity(): Module
94
- +setImportingEntity(importer: Module): void
95
- -importedEntity: NamedEntity
96
- +getImportedEntity(): NamedEntity
97
- +setImportedEntity(importedEntity: NamedEntity): void
98
- -moduleSpecifier: string
99
- +getModuleSpecifier(): string
100
- +setModuleSpecifier(moduleSpecifier: string): void
93
+ class ImportClause extends Entity {
94
+ -_importingEntity: Module
95
+ -_importedEntity: NamedEntity
96
+ -_moduleSpecifier: string
101
97
  +getJSON(): string
102
98
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
99
+ +importingEntity: Module
100
+ +importingEntity: Module
101
+ +importedEntity: NamedEntity
102
+ +importedEntity: NamedEntity
103
+ +moduleSpecifier: string
104
+ +moduleSpecifier: string
103
105
  }
104
106
  class Alias extends NamedEntity {
105
- -parentEntity: NamedEntity
106
- +getParentEntity(): NamedEntity
107
- +setParentEntity(parentEntity: NamedEntity): void
108
- -aliasedEntity: Type
109
- +getAliasedEntity(): Type
110
- +setAliasedEntity(aliasedEntity: Type): void
107
+ -_parentEntity: NamedEntity
108
+ -_aliasedEntity: Type
111
109
  +getJSON(): string
112
110
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
111
+ +parentEntity: NamedEntity
112
+ +parentEntity: NamedEntity
113
+ +aliasedEntity: Type
114
+ +aliasedEntity: Type
113
115
  }
114
116
  class Decorator extends NamedEntity {
115
- -decoratorExpression: string
116
- +getDecoratorExpression(): string
117
- +setDecoratorExpression(decoratorExpression: string): void
118
- -decoratedEntity: NamedEntity
119
- +getDecoratedEntity(): NamedEntity
120
- +setDecoratedEntity(decoratedEntity: NamedEntity): void
117
+ -_decoratorExpression: string
118
+ -_decoratedEntity: NamedEntity
121
119
  +getJSON(): string
122
120
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
121
+ +decoratorExpression: string
122
+ +decoratorExpression: string
123
+ +decoratedEntity: NamedEntity
124
+ +decoratedEntity: NamedEntity
123
125
  }
124
126
  class NamedEntity extends SourcedEntity {
125
- -fullyQualifiedName: string
126
- +getFullyQualifiedName(): string
127
- +setFullyQualifiedName(fullyQualifiedName: string): void
128
- -receivedInvocations: Set<Invocation>
129
- +getReceivedInvocations(): Set<Invocation>
127
+ -_fullyQualifiedName: string
128
+ -_receivedInvocations: Set<Invocation>
130
129
  +addReceivedInvocation(receivedInvocation: Invocation): void
131
- -incomingImports: Set<ImportClause>
132
- +getIncomingImports(): Set<ImportClause>
130
+ -_incomingImports: Set<ImportClause>
133
131
  +addIncomingImport(anImport: ImportClause): void
134
- -name: string
135
- +getName(): string
136
- +setName(name: string): void
137
- -aliases: Set<Alias>
138
- +getAliases(): Set<Alias>
132
+ -_name: string
133
+ -_aliases: Set<Alias>
139
134
  +addAlias(alias: Alias): void
140
- -decorators: Set<Decorator>
141
- +getDecorators(): Set<Decorator>
135
+ -_decorators: Set<Decorator>
142
136
  +addDecorator(decorator: Decorator): void
143
137
  +getJSON(): string
144
138
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
139
+ +fullyQualifiedName: string
140
+ +fullyQualifiedName: string
141
+ +receivedInvocations: Set<Invocation>
142
+ +incomingImports: Set<ImportClause>
143
+ +name: string
144
+ +name: string
145
+ +aliases: Set<Alias>
146
+ +decorators: Set<Decorator>
145
147
  }
146
148
  class Parameter extends StructuralEntity {
147
- -parentEntity: BehavioralEntity
148
- +getParentEntity(): BehavioralEntity
149
- +setParentEntity(parentEntity: BehavioralEntity): void
149
+ -_parentEntity: BehavioralEntity
150
150
  +getJSON(): string
151
151
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
152
+ +parentEntity: BehavioralEntity
153
+ +parentEntity: BehavioralEntity
152
154
  }
153
155
  class Property extends StructuralEntity {
154
- -isClassSide: boolean
155
- +getIsClassSide(): boolean
156
- +setIsClassSide(isClassSide: boolean): void
157
- -parentEntity: Class | Interface
158
- +getParentEntity(): Class | Interface
159
- +setParentEntity(parentEntity: Class | Interface): void
160
- -modifiers: Set<string>
161
- +getModifiers(): Set<string>
162
- +addModifier(modifier: string): void
163
- +getJSON(): string
164
- +addPropertiesToExporter(exporter: FamixJSONExporter): void
165
- }
166
- class Inheritance extends Association {
167
- -superclass: Class | Interface
168
- +getSuperclass(): Class | Interface
169
- +setSuperclass(superclass: Class | Interface): void
170
- -subclass: Class | Interface
171
- +getSubclass(): Class | Interface
172
- +setSubclass(subclass: Class | Interface): void
173
- +getJSON(): string
174
- +addPropertiesToExporter(exporter: FamixJSONExporter): void
156
+ -_isClassSide: boolean
157
+ +readOnly: boolean
158
+ +readOnly: boolean
159
+ -_readOnly: boolean
160
+ -_parentEntity: Class | Interface
161
+ +isDefinitelyAssigned: boolean
162
+ +isDefinitelyAssigned: boolean
163
+ +isOptional: boolean
164
+ +isOptional: boolean
165
+ +isJavaScriptPrivate: boolean
166
+ +isJavaScriptPrivate: boolean
167
+ -_isDefinitelyAssigned: boolean
168
+ -_isOptional: boolean
169
+ -_isJavaScriptPrivate: boolean
170
+ +visibility: VisibilityTypes
171
+ +visibility: VisibilityTypes
172
+ -_visibility: VisibilityTypes
173
+ +getJSON(): string
174
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
175
+ +isClassSide: boolean
176
+ +isClassSide: boolean
177
+ +parentEntity: Class | Interface
178
+ +parentEntity: Class | Interface
179
+ }
180
+ class Inheritance extends Entity {
181
+ -_superclass: Class | Interface
182
+ -_subclass: Class | Interface
183
+ +getJSON(): string
184
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
185
+ +superclass: Class | Interface
186
+ +superclass: Class | Interface
187
+ +subclass: Class | Interface
188
+ +subclass: Class | Interface
175
189
  }
176
- class Interface extends Type {
177
- -properties: Set<Property>
178
- +getProperties(): Set<Property>
190
+ class Class extends Type {
191
+ -_isAbstract: boolean
192
+ -_properties: Set<Property>
179
193
  +addProperty(property: Property): void
180
- -methods: Set<Method>
181
- +getMethods(): Set<Method>
194
+ -_methods: Set<Method>
182
195
  +addMethod(method: Method): void
183
- -superInheritances: Set<Inheritance>
184
- +getSuperInheritances(): Set<Inheritance>
196
+ -_superInheritances: Set<Inheritance>
185
197
  +addSuperInheritance(superInheritance: Inheritance): void
186
- -subInheritances: Set<Inheritance>
187
- +getSubInheritances(): Set<Inheritance>
198
+ -_subInheritances: Set<Inheritance>
188
199
  +addSubInheritance(subInheritance: Inheritance): void
189
200
  +getJSON(): string
190
201
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
202
+ +isAbstract: boolean
203
+ +isAbstract: boolean
204
+ +properties: Set<Property>
205
+ +methods: Set<Method>
206
+ +superInheritances: Set<Inheritance>
207
+ +subInheritances: Set<Inheritance>
191
208
  }
192
209
  class Method extends BehavioralEntity {
193
- -parentEntity: Class | Interface
194
- +getParentEntity(): Class | Interface
195
- +setParentEntity(parentEntity: Class | Interface): void
196
- -kind: string
197
- +getKind(): string
198
- +setKind(kind: string): void
199
- -isAbstract: boolean
200
- +getIsAbstract(): boolean
201
- +setIsAbstract(isAbstract: boolean): void
202
- -isClassSide: boolean
203
- +getIsClassSide(): boolean
204
- +setIsClassSide(isClassSide: boolean): void
205
- -isPrivate: boolean
206
- +getIsPrivate(): boolean
207
- +setIsPrivate(isPrivate: boolean): void
208
- -isPublic: boolean
209
- +getIsPublic(): boolean
210
- +setIsPublic(isPublic: boolean): void
211
- -isProtected: boolean
212
- +getIsProtected(): boolean
213
- +setIsProtected(isProtected: boolean): void
214
- +getJSON(): string
215
- +addPropertiesToExporter(exporter: FamixJSONExporter): void
210
+ -_parentEntity: Class | Interface
211
+ -_kind: string
212
+ -_isAbstract: boolean
213
+ -_isClassSide: boolean
214
+ -_isPrivate: boolean
215
+ -_isPublic: boolean
216
+ -_isProtected: boolean
217
+ +getJSON(): string
218
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
219
+ +parentEntity: Class | Interface
220
+ +parentEntity: Class | Interface
221
+ +kind: string
222
+ +kind: string
223
+ +isAbstract: boolean
224
+ +isAbstract: boolean
225
+ +isClassSide: boolean
226
+ +isClassSide: boolean
227
+ +isPrivate: boolean
228
+ +isPrivate: boolean
229
+ +isPublic: boolean
230
+ +isPublic: boolean
231
+ +isProtected: boolean
232
+ +isProtected: boolean
216
233
  }
217
- class Class extends Type {
218
- -isAbstract: boolean
219
- +getIsAbstract(): boolean
220
- +setIsAbstract(isAbstract: boolean): void
221
- -properties: Set<Property>
222
- +getProperties(): Set<Property>
234
+ class Interface extends Type {
235
+ -_properties: Set<Property>
223
236
  +addProperty(property: Property): void
224
- -methods: Set<Method>
225
- +getMethods(): Set<Method>
237
+ -_methods: Set<Method>
226
238
  +addMethod(method: Method): void
227
- -superInheritances: Set<Inheritance>
228
- +getSuperInheritances(): Set<Inheritance>
239
+ -_superInheritances: Set<Inheritance>
229
240
  +addSuperInheritance(superInheritance: Inheritance): void
230
- -subInheritances: Set<Inheritance>
231
- +getSubInheritances(): Set<Inheritance>
241
+ -_subInheritances: Set<Inheritance>
232
242
  +addSubInheritance(subInheritance: Inheritance): void
233
243
  +getJSON(): string
234
244
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
245
+ +properties: Set<Property>
246
+ +methods: Set<Method>
247
+ +superInheritances: Set<Inheritance>
248
+ +subInheritances: Set<Inheritance>
249
+ }
250
+ class PrimitiveType extends Type {
251
+ +getJSON(): string
252
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
235
253
  }
236
- class ParameterizableClass extends Class {
237
- -parameterTypes: Set<ParameterType>
238
- +getParameterTypes(): Set<ParameterType>
239
- +addParameterType(parameterType: ParameterType): void
254
+ class ParametricClass extends Class {
255
+ -_genericParameters: Set<ParameterType>
256
+ +addGenericParameter(genericParameter: ParameterType): void
257
+ +clearGenericParameters(): void
258
+ -_concreteParameters: Set<Class | Interface | PrimitiveType>
259
+ +addConcreteParameter(concreteParameter: Class | Interface | PrimitiveType): void
240
260
  +getJSON(): string
241
261
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
262
+ +genericParameters: Set<ParameterType>
263
+ +concreteParameters: Set<Class | Interface | PrimitiveType>
242
264
  }
243
- class ParameterizableInterface extends Interface {
244
- -parameterTypes: Set<ParameterType>
245
- +getParameterTypes(): Set<ParameterType>
246
- +addParameterType(parameterType: ParameterType): void
265
+ class ParametricInterface extends Interface {
266
+ -_genericParameters: Set<ParameterType>
267
+ +addGenericParameter(genericParameter: ParameterType): void
268
+ +clearGenericParameters(): void
269
+ -_concreteParameters: Set<Class | Interface | PrimitiveType>
270
+ +addConcreteParameter(concreteParameter: Class | Interface | PrimitiveType): void
247
271
  +getJSON(): string
248
272
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
273
+ +genericParameters: Set<ParameterType>
274
+ +concreteParameters: Set<Class | Interface | PrimitiveType>
249
275
  }
250
276
  class Function extends BehavioralEntity {
251
277
  +getJSON(): string
@@ -255,257 +281,286 @@ class Accessor extends Method {
255
281
  +getJSON(): string
256
282
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
257
283
  }
284
+ class ParametricMethod extends Method {
285
+ -_concreteParameters: Set<Class | Interface | PrimitiveType>
286
+ +addConcreteParameter(concreteParameter: Class | Interface | PrimitiveType): void
287
+ +getJSON(): string
288
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
289
+ +concreteParameters: Set<Class | Interface | PrimitiveType>
290
+ }
291
+ class ParametricFunction extends Function {
292
+ -_concreteParameters: Set<Class | Interface | PrimitiveType>
293
+ +addConcreteParameter(concreteParameter: Class | Interface | PrimitiveType): void
294
+ +getJSON(): string
295
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
296
+ +concreteParameters: Set<Class | Interface | PrimitiveType>
297
+ }
298
+ class ArrowFunction extends BehavioralEntity {
299
+ +getJSON(): string
300
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
301
+ }
302
+ class ParametricArrowFunction extends ArrowFunction {
303
+ -_concreteParameters: Set<Class | Interface | PrimitiveType>
304
+ +addConcreteParameter(concreteParameter: Class | Interface | PrimitiveType): void
305
+ +getJSON(): string
306
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
307
+ +concreteParameters: Set<Class | Interface | PrimitiveType>
308
+ }
258
309
  class ParameterType extends Type {
259
- -parentGeneric: Method | ParameterizableClass | ParameterizableInterface | Accessor | FamixFunction
260
- +getParentGeneric(): Method | ParameterizableClass | ParameterizableInterface | Accessor | FamixFunction
261
- +setParentGeneric(parentGeneric: Method | ParameterizableClass | ParameterizableInterface | Accessor | FamixFunction): void
310
+ -_parentGeneric: Method | ParametricArrowFunction | ArrowFunction | ParametricClass | ParametricInterface | ParametricMethod | Accessor | FamixFunction | ParametricFunction
311
+ -_baseType: Type
312
+ -_arguments: Set<Type>
313
+ +addArgument(argument: Type): void
262
314
  +getJSON(): string
263
315
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
316
+ +parentGeneric: Method | ParametricArrowFunction | ArrowFunction | ParametricClass | ParametricInterface | ParametricMethod | Accessor | FamixFunction | ParametricFunction
317
+ +parentGeneric: Method | ParametricArrowFunction | ArrowFunction | ParametricClass | ParametricInterface | ParametricMethod | Accessor | FamixFunction | ParametricFunction
318
+ +baseType: Type
319
+ +baseType: Type
320
+ +arguments: Set<Type>
264
321
  }
265
322
  class BehavioralEntity extends ContainerEntity {
266
- -isGeneric: boolean
267
- +getIsGeneric(): boolean
268
- +setIsGeneric(isGeneric: boolean): void
269
- -signature: string
270
- +getSignature(): string
271
- +setSignature(signature: string): void
272
- -parameters: Set<Parameter>
273
- +getParameters(): Set<Parameter>
323
+ -_signature: string
324
+ -_parameters: Set<Parameter>
274
325
  +addParameter(parameter: Parameter): void
275
- -numberOfParameters: number
276
- +getNumberOfParameters(): number
277
- +setNumberOfParameters(numberOfParameters: number): void
278
- -incomingInvocations: Set<Invocation>
279
- +getIncomingInvocations(): Set<Invocation>
326
+ -_numberOfParameters: number
327
+ -_incomingInvocations: Set<Invocation>
280
328
  +addIncomingInvocation(incomingInvocation: Invocation): void
281
- -declaredType: Type
282
- +getDeclaredType(): Type
283
- +setDeclaredType(declaredType: Type): void
284
- -typeParameters: Set<ParameterType>
285
- +getParameterTypes(): Set<ParameterType>
286
- +addParameterType(typeParameter: ParameterType): void
287
- +getJSON(): string
288
- +addPropertiesToExporter(exporter: FamixJSONExporter): void
289
- }
290
- class Invocation extends Association {
291
- -candidates: Set<BehavioralEntity>
292
- +getCandidates(): Set<BehavioralEntity>
329
+ -_declaredType: Type
330
+ -_genericParameters: Set<ParameterType>
331
+ +addGenericParameter(genericParameter: ParameterType): void
332
+ +clearGenericParameters(): void
333
+ +getJSON(): string
334
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
335
+ +signature: string
336
+ +signature: string
337
+ +parameters: Set<Parameter>
338
+ +numberOfParameters: number
339
+ +numberOfParameters: number
340
+ +incomingInvocations: Set<Invocation>
341
+ +declaredType: Type
342
+ +declaredType: Type
343
+ +genericParameters: Set<ParameterType>
344
+ }
345
+ class Invocation extends Entity {
346
+ -_candidates: Set<BehavioralEntity>
293
347
  +addCandidate(candidate: BehavioralEntity): void
294
- -receiver: NamedEntity
295
- +getReceiver(): NamedEntity
296
- +setReceiver(receiver: NamedEntity): void
297
- -sender: ContainerEntity
298
- +getSender(): ContainerEntity
299
- +setSender(sender: ContainerEntity): void
300
- -signature: string
301
- +getSignature(): string
302
- +setSignature(signature: string): void
348
+ -_receiver: NamedEntity
349
+ -_sender: ContainerEntity
350
+ -_signature: string
303
351
  +getJSON(): string
304
352
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
353
+ +candidates: Set<BehavioralEntity>
354
+ +receiver: NamedEntity
355
+ +receiver: NamedEntity
356
+ +sender: ContainerEntity
357
+ +sender: ContainerEntity
358
+ +signature: string
359
+ +signature: string
305
360
  }
306
- class Reference extends Association {
307
- -source: ContainerEntity
308
- +getSource(): ContainerEntity
309
- +setSource(source: ContainerEntity): void
310
- -target: Type
311
- +getTarget(): Type
312
- +setTarget(target: Type): void
361
+ class Reference extends Entity {
362
+ -_source: ContainerEntity
363
+ -_target: Type
313
364
  +getJSON(): string
314
365
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
366
+ +source: ContainerEntity
367
+ +source: ContainerEntity
368
+ +target: Type
369
+ +target: Type
315
370
  }
316
371
  class Variable extends StructuralEntity {
317
- -parentContainerEntity: ContainerEntity
318
- +getParentContainerEntity(): ContainerEntity
319
- +setParentContainerEntity(parentContainerEntity: ContainerEntity): void
372
+ -_parentContainerEntity: ContainerEntity
320
373
  +getJSON(): string
321
374
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
375
+ +parentContainerEntity: ContainerEntity
376
+ +parentContainerEntity: ContainerEntity
322
377
  }
323
378
  class ContainerEntity extends NamedEntity {
324
- -parentContainerEntity: ContainerEntity
325
- +getParentContainerEntity(): ContainerEntity
326
- +setParentContainerEntity(parentContainerEntity: ContainerEntity): void
327
- -childrenContainerEntities: Set<ContainerEntity>
328
- +getChildrenContainerEntities(): Set<ContainerEntity>
379
+ -_parentContainerEntity: ContainerEntity
380
+ -_childrenContainerEntities: Set<ContainerEntity>
329
381
  +addChildContainerEntity(childContainerEntity: ContainerEntity): void
330
- -cyclomaticComplexity: number
331
- +getCyclomaticComplexity(): number
332
- +setCyclomaticComplexity(cyclomaticComplexity: number): void
333
- -numberOfStatements: number
334
- +getNumberOfStatements(): number
335
- +setNumberOfStatements(numberOfStatements: number): void
336
- -outgoingReferences: Set<Reference>
337
- +getOutgoingReferences(): Set<Reference>
382
+ -_cyclomaticComplexity: number
383
+ -_numberOfStatements: number
384
+ -_outgoingReferences: Set<Reference>
338
385
  +addOutgoingReference(outgoingReference: Reference): void
339
- -numberOfLinesOfCode: number
340
- +getNumberOfLinesOfCode(): number
341
- +setNumberOfLinesOfCode(numberOfLinesOfCode: number): void
342
- -outgoingInvocations: Set<Invocation>
343
- +getOutgoingInvocations(): Set<Invocation>
386
+ -_numberOfLinesOfCode: number
387
+ -_outgoingInvocations: Set<Invocation>
344
388
  +addOutgoingInvocation(outgoingInvocation: Invocation): void
345
- -accesses: Set<Access>
346
- +getAccesses(): Set<Access>
389
+ -_accesses: Set<Access>
347
390
  +addAccess(access: Access): void
348
391
  -childrenTypes: Set<Type>
349
- +getTypes(): Set<Type>
350
392
  +addType(childType: Type): void
351
393
  -childrenFunctions: Set<FamixFunctionEntity>
352
- +getFunctions(): Set<FamixFunctionEntity>
353
394
  +addFunction(childFunction: FamixFunctionEntity): void
354
- -variables: Set<Variable>
355
- +getVariables(): Set<Variable>
395
+ -_variables: Set<Variable>
356
396
  +addVariable(variable: Variable): void
357
397
  +getJSON(): string
358
398
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
399
+ +parentContainerEntity: ContainerEntity
400
+ +parentContainerEntity: ContainerEntity
401
+ +childrenContainerEntities: Set<ContainerEntity>
402
+ +cyclomaticComplexity: number
403
+ +cyclomaticComplexity: number
404
+ +numberOfStatements: number
405
+ +numberOfStatements: number
406
+ +outgoingReferences: Set<Reference>
407
+ +numberOfLinesOfCode: number
408
+ +numberOfLinesOfCode: number
409
+ +outgoingInvocations: Set<Invocation>
410
+ +accesses: Set<Access>
411
+ +types: Set<Type>
412
+ +functions: Set<FamixFunctionEntity>
413
+ +variables: Set<Variable>
359
414
  }
360
415
  class Type extends ContainerEntity {
361
- -container: ContainerEntity
362
- +getContainer(): ContainerEntity
363
- +setContainer(container: ContainerEntity): void
364
- -typeAliases: Set<Alias>
365
- +getTypeAliases(): Set<Alias>
416
+ -_container: ContainerEntity
417
+ -_typeAliases: Set<Alias>
366
418
  +addTypeAlias(typeAlias: Alias): void
367
- -structuresWithDeclaredType: Set<StructuralEntity>
368
- +getStructuresWithDeclaredType(): Set<StructuralEntity>
419
+ -_structuresWithDeclaredType: Set<StructuralEntity>
369
420
  +addStructureWithDeclaredType(structureWithDeclaredType: StructuralEntity): void
370
- -behavioralEntitiesWithDeclaredType: Set<BehavioralEntity>
371
- +getBehavioralEntitiesWithDeclaredType(): Set<BehavioralEntity>
421
+ -_behavioralEntitiesWithDeclaredType: Set<BehavioralEntity>
372
422
  +addBehavioralEntityWithDeclaredType(behavioralEntityWithDeclaredType: BehavioralEntity): void
373
- -incomingReferences: Set<Reference>
374
- +getIncomingReferences(): Set<Reference>
423
+ -_incomingReferences: Set<Reference>
375
424
  +addIncomingReference(incomingReference: Reference): void
376
425
  +getJSON(): string
377
426
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
427
+ +container: ContainerEntity
428
+ +container: ContainerEntity
429
+ +typeAliases: Set<Alias>
430
+ +structuresWithDeclaredType: Set<StructuralEntity>
431
+ +behavioralEntitiesWithDeclaredType: Set<BehavioralEntity>
432
+ +incomingReferences: Set<Reference>
378
433
  }
379
434
  class StructuralEntity extends NamedEntity {
380
- -incomingAccesses: Set<Access>
381
- +getIncomingAccesses(): Set<Access>
435
+ -_incomingAccesses: Set<Access>
382
436
  +addIncomingAccess(incomingAccess: Access): void
383
- -declaredType: Type
384
- +getDeclaredType(): Type
385
- +setDeclaredType(declaredType: Type): void
437
+ -_declaredType: Type
386
438
  +getJSON(): string
387
439
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
440
+ +incomingAccesses: Set<Access>
441
+ +declaredType: Type
442
+ +declaredType: Type
388
443
  }
389
- class Access extends Association {
390
- -accessor: ContainerEntity
391
- +getAccessor(): ContainerEntity
392
- +setAccessor(accessor: ContainerEntity): void
393
- -variable: StructuralEntity
394
- +getVariable(): StructuralEntity
395
- +setVariable(variable: StructuralEntity): void
396
- -isWrite: boolean
397
- +getIsWrite(): boolean
398
- +setIsWrite(isWrite: boolean): void
444
+ class Access extends Entity {
445
+ -_accessor: ContainerEntity
446
+ -_variable: StructuralEntity
447
+ -_isWrite: boolean
399
448
  +getJSON(): string
400
449
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
450
+ +accessor: ContainerEntity
451
+ +accessor: ContainerEntity
452
+ +variable: StructuralEntity
453
+ +variable: StructuralEntity
454
+ +isWrite: boolean
455
+ +isWrite: boolean
401
456
  }
402
- class Enum extends Type {
403
- -values: Set<EnumValue>
404
- +getValues(): Set<EnumValue>
405
- +addValue(value: EnumValue): void
457
+ class Concretisation extends Entity {
458
+ -_genericEntity: ParametricClass | ParametricInterface | ParametricMethod | ParametricFunction
459
+ -_concreteEntity: ParametricClass | ParametricInterface | ParametricMethod | ParametricFunction
406
460
  +getJSON(): string
407
461
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
462
+ +genericEntity: ParametricClass | ParametricInterface | ParametricMethod | ParametricFunction
463
+ +genericEntity: ParametricClass | ParametricInterface | ParametricMethod | ParametricFunction
464
+ +concreteEntity: ParametricClass | ParametricInterface | ParametricMethod | ParametricFunction
465
+ +concreteEntity: ParametricClass | ParametricInterface | ParametricMethod | ParametricFunction
408
466
  }
409
- class EnumValue extends StructuralEntity {
410
- -parentEntity: Enum
411
- +getParentEntity(): Enum
412
- +setParentEntity(parentEntity: Enum): void
467
+ class Enum extends Type {
468
+ -_values: Set<EnumValue>
469
+ +addValue(value: EnumValue): void
413
470
  +getJSON(): string
414
471
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
472
+ +values: Set<EnumValue>
415
473
  }
416
- class ImplicitVariable extends Variable {
474
+ class EnumValue extends StructuralEntity {
475
+ -_parentEntity: Enum
417
476
  +getJSON(): string
418
477
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
478
+ +parentEntity: Enum
479
+ +parentEntity: Enum
419
480
  }
420
481
  class IndexedFileAnchor extends SourceAnchor {
421
- -startPos: number
422
- +getStartPos(): number
423
- +setStartPos(startPos: number): void
424
- -endPos: number
425
- +getEndPos(): number
426
- +setEndPos(endPos: number): void
427
- -endLine: number
428
- +getEndLine(): number
429
- +setEndLine(sourceEndLine: number): void
430
- -startLine: number
431
- +getStartLine(): number
432
- +setStartLine(sourceStartLine: number): void
433
- -fileName: string
434
- +getFileName(): string
435
- +setFileName(fileName: string): void
436
- +getJSON(): string
437
- +addPropertiesToExporter(exporter: FamixJSONExporter): void
438
- }
439
- class ParameterizedType extends Type {
440
- -baseType: Type
441
- +getBaseType(): Type
442
- +setBaseType(baseType: Type): void
443
- -arguments: Set<Type>
444
- +getArguments(): Set<Type>
445
- +addArgument(argument: Type): void
446
- +getJSON(): string
447
- +addPropertiesToExporter(exporter: FamixJSONExporter): void
448
- }
449
- class PrimitiveType extends Type {
482
+ -_startPos: number
483
+ -_endPos: number
484
+ -_fileName: string
450
485
  +getJSON(): string
451
486
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
487
+ +startPos: number
488
+ +startPos: number
489
+ +endPos: number
490
+ +endPos: number
491
+ +fileName: string
492
+ +fileName: string
452
493
  }
453
- class TextAnchor extends SourceAnchor {
454
- -startPos: number
455
- +getStartPos(): number
456
- +setStartPos(startPos: number): void
457
- -endPos: number
458
- +getEndPos(): number
459
- +setEndPos(endPos: number): void
460
- -fileName: string
461
- +getFileName(): string
462
- +setFileName(fileName: string): void
494
+ class ParameterConcretisation extends Entity {
495
+ -_genericParameter: ParameterType
496
+ -_concreteParameter: PrimitiveType
497
+ -_concretisations: Set<Concretisation>
498
+ +addConcretisation(concretisation: Concretisation): void
463
499
  +getJSON(): string
464
500
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
501
+ +genericParameter: ParameterType
502
+ +genericParameter: ParameterType
503
+ +concreteParameter: PrimitiveType
504
+ +concreteParameter: PrimitiveType
505
+ +concretisations: Set<Concretisation>
465
506
  }
466
507
  interface SearchParameters {
467
508
  +searchArray: string[]
468
509
  +targetArray: string[]
469
- +start?: number
510
+ +start?: number | undefined
470
511
  }
471
512
  class EntityDictionary {
472
513
  +famixRep: FamixRepository
473
514
  -fmxAliasMap: Map<string, Famix.Alias>
474
- -fmxClassMap: Map<string, Famix.Class | Famix.ParameterizableClass>
475
- -fmxInterfaceMap: Map<string, Famix.Interface | Famix.ParameterizableInterface>
476
- -fmxNamespaceMap: Map<string, Famix.Namespace>
515
+ -fmxClassMap: Map<string, Famix.Class | Famix.ParametricClass>
516
+ -fmxInterfaceMap: Map<string, Famix.Interface | Famix.ParametricInterface>
517
+ -fmxModuleMap: Map<string, Famix.Module>
477
518
  -fmxFileMap: Map<string, Famix.Module | Famix.ScriptEntity>
478
- -fmxTypeMap: Map<string, Famix.Type | Famix.PrimitiveType | Famix.ParameterizedType>
519
+ -fmxTypeMap: Map<string, Famix.Type | Famix.ParameterType | Famix.PrimitiveType>
520
+ -fmxFunctionAndMethodMap: Map<string, Famix.Method | Famix.ParametricMethod | Famix.Function | Famix.ParametricFunction>
479
521
  -UNKNOWN_VALUE: string
480
522
  +fmxElementObjectMap: Map<Famix.Entity, TSMorphObjectType>
523
+ +tsMorphElementObjectMap: Map<TSMorphObjectType, Famix.Entity>
524
+ +addSourceAnchor(fmx: Famix.SourcedEntity, node: TSMorphObjectType): Famix.IndexedFileAnchor
481
525
  +makeFamixIndexFileAnchor(sourceElement: TSMorphObjectType, famixElement: Famix.SourcedEntity): void
482
526
  +createOrGetFamixFile(f: SourceFile, isModule: boolean): Famix.Module | Famix.ScriptEntity
483
- +createOrGetFamixNamespace(m: ModuleDeclaration): Famix.Namespace
527
+ +createOrGetFamixModule(m: ModuleDeclaration): Famix.Module
484
528
  +createFamixAlias(a: TypeAliasDeclaration): Famix.Alias
485
- +createOrGetFamixClass(cls: ClassDeclaration): Famix.Class | Famix.ParameterizableClass
486
- +createOrGetFamixInterface(inter: InterfaceDeclaration): Famix.Interface | Famix.ParameterizableInterface
529
+ +createOrGetFamixClass(cls: ClassDeclaration): Famix.Class | Famix.ParametricClass
530
+ +createOrGetFamixInterface(inter: InterfaceDeclaration): Famix.Interface | Famix.ParametricInterface
531
+ +createOrGetFamixConcreteElement(concreteElement: ParametricVariantType, concreteElementDeclaration: ConcreteElementTSMorphType, concreteArguments: TypeNode<ts.TypeNode>[]): ParametricVariantType
487
532
  +createFamixProperty(property: PropertyDeclaration | PropertySignature): Famix.Property
488
- +createFamixMethod(method: MethodDeclaration | ConstructorDeclaration | MethodSignature | GetAccessorDeclaration | SetAccessorDeclaration, currentCC: unknown): Famix.Method | Famix.Accessor
489
- +createFamixFunction(func: FunctionDeclaration | FunctionExpression, currentCC: unknown): Famix.Function
533
+ +createOrGetFamixMethod(method: MethodDeclaration | ConstructorDeclaration | MethodSignature | GetAccessorDeclaration | SetAccessorDeclaration, currentCC: { [key: string]: number; }): Famix.Method | Famix.ParametricMethod | Famix.Accessor
534
+ +createOrGetFamixFunction(func: FunctionDeclaration | FunctionExpression, currentCC: { [key: string]: number; }): Famix.Function | Famix.ParametricFunction
490
535
  +createFamixParameter(param: ParameterDeclaration): Famix.Parameter
491
536
  +createFamixParameterType(tp: TypeParameterDeclaration): Famix.ParameterType
537
+ +createOrGetFamixConcreteType(param: TypeNode<ts.TypeNode>): Famix.Class | Famix.Interface | Famix.ParameterType | Famix.PrimitiveType
492
538
  +createFamixVariable(variable: VariableDeclaration): Famix.Variable
493
539
  +createFamixEnum(enumEntity: EnumDeclaration): Famix.Enum
494
540
  +createFamixEnumValue(enumMember: EnumMember): Famix.EnumValue
495
541
  +createOrGetFamixDecorator(decorator: Decorator, decoratedEntity: ClassDeclaration | MethodDeclaration | ParameterDeclaration | PropertyDeclaration | GetAccessorDeclaration | SetAccessorDeclaration): Famix.Decorator
496
542
  +createFamixComment(comment: CommentRange, fmxScope: Famix.NamedEntity, isJSDoc: boolean): Famix.Comment
497
- +createOrGetFamixType(typeName: string, element: MethodDeclaration | ConstructorDeclaration | MethodSignature | FunctionDeclaration | ... 8 more ... | TypeAliasDeclaration): Famix.Type | Famix.PrimitiveType | Famix.ParameterizedType
543
+ +createOrGetFamixType(typeName: string, element: TypeDeclaration): Famix.Type | Famix.ParameterType | Famix.PrimitiveType
498
544
  +createFamixAccess(node: Identifier, id: number): void
499
545
  +createFamixInvocation(node: Identifier, m: MethodDeclaration | ConstructorDeclaration | FunctionDeclaration | FunctionExpression | GetAccessorDeclaration | SetAccessorDeclaration, id: number): void
500
546
  +createFamixInheritance(cls: ClassDeclaration | InterfaceDeclaration, inhClass: ClassDeclaration | InterfaceDeclaration | ExpressionWithTypeArguments): void
501
- +createFamixImportClause(importClauseInfo: { importDeclaration?: ImportDeclaration | ImportEqualsDeclaration; importer: SourceFile; moduleSpecifierFilePath: string; importElement: ImportSpecifier | Identifier; isInExports: boolean; isDefaultExport: boolean; }): void
547
+ +createFamixImportClause(importedEntity: Famix.NamedEntity, importingEntity: Famix.Module): void
548
+ +oldCreateFamixImportClause(importClauseInfo: { importDeclaration?: ImportDeclaration | ImportEqualsDeclaration | undefined; importerSourceFile: SourceFile; moduleSpecifierFilePath: string; importElement: ImportSpecifier | Identifier; isInExports: boolean; isDefaultExport: boolean; }): void
549
+ +createFamixArrowFunction(arrowExpression: Expression<ts.Expression>, currentCC: { [key: string]: number; }): Famix.ParametricArrowFunction | Famix.ArrowFunction
550
+ +createFamixConcretisation(conEntity: Famix.ParametricClass | Famix.ParametricInterface | Famix.ParametricMethod | Famix.ParametricFunction, genEntity: Famix.ParametricClass | Famix.ParametricInterface | Famix.ParametricMethod | Famix.ParametricFunction): Famix.Concretisation
551
+ +createFamixParameterConcretisation(concretisation: Famix.Concretisation): Famix.ParameterConcretisation | undefined
552
+ +createFamixConcretisationClassOrInterfaceSpecialisation(element: ClassDeclaration | InterfaceDeclaration): void
553
+ +createFamixConcretisationGenericInstantiation(cls: ClassDeclaration): void
554
+ +createFamixConcretisationFunctionInstantiation(element: MethodDeclaration | FunctionDeclaration): void
555
+ +createFamixConcretisationInterfaceClass(cls: ClassDeclaration): void
556
+ +createFamixConcretisationTypeInstanciation(element: ClassDeclaration | InterfaceDeclaration): void
502
557
  +convertToRelativePath(absolutePath: string, absolutePathProject: string): string
503
558
  }
504
559
  class FamixRepository {
505
560
  -elements: Set<FamixBaseElement>
506
561
  -famixClasses: Set<Class>
507
562
  -famixInterfaces: Set<Interface>
508
- -famixNamespaces: Set<Namespace>
563
+ -famixModules: Set<Module>
509
564
  -famixMethods: Set<Method>
510
565
  -famixVariables: Set<Variable>
511
566
  -famixFunctions: Set<FamixFunctionEntity>
@@ -513,23 +568,24 @@ class FamixRepository {
513
568
  -idCounter: number
514
569
  -absolutePath: string
515
570
  -fmxElementObjectMap: Map<Famix.Entity, TSMorphObjectType>
571
+ -tsMorphObjectMap: Map<TSMorphObjectType, Famix.Entity>
516
572
  +setFmxElementObjectMap(fmxElementObjectMap: Map<Famix.Entity, TSMorphObjectType>): void
517
573
  +getFmxElementObjectMap(): Map<Famix.Entity, TSMorphObjectType>
518
574
  +getAbsolutePath(): string
519
575
  +setAbsolutePath(path: string): void
520
- +getFamixEntityById(id: number): FamixBaseElement
521
- +getFamixEntityByFullyQualifiedName(fullyQualifiedName: string): FamixBaseElement
576
+ +getFamixEntityById(id: number): FamixBaseElement | undefined
577
+ +getFamixEntityByFullyQualifiedName(fullyQualifiedName: string): FamixBaseElement | undefined
522
578
  +export(arg0: { format: string; }): string
523
579
  +_getAllEntities(): Set<FamixBaseElement>
524
580
  +_getAllEntitiesWithType(theType: string): Set<FamixBaseElement>
525
- +_getFamixClass(fullyQualifiedName: string): Class
526
- +_getFamixInterface(fullyQualifiedName: string): Interface
527
- +_getFamixMethod(fullyQualifiedName: string): Method
528
- +_getFamixFunction(fullyQualifiedName: string): FamixFunctionEntity
529
- +_getFamixVariable(fullyQualifiedName: string): Variable
530
- +_getFamixNamespace(fullyQualifiedName: string): Namespace
531
- +_getFamixNamespaces(): Set<Namespace>
532
- +_getFamixFile(fullyQualifiedName: string): Module | ScriptEntity
581
+ +_getFamixClass(fullyQualifiedName: string): Class | undefined
582
+ +_getFamixInterface(fullyQualifiedName: string): Interface | undefined
583
+ +_getFamixMethod(fullyQualifiedName: string): Method | undefined
584
+ +_getFamixFunction(fullyQualifiedName: string): FamixFunctionEntity | undefined
585
+ +_getFamixVariable(fullyQualifiedName: string): Variable | undefined
586
+ +_getFamixModule(fullyQualifiedName: string): Module | undefined
587
+ +_getFamixModules(): Set<Module>
588
+ +_getFamixFile(fullyQualifiedName: string): Module | ScriptEntity | undefined
533
589
  +_getFamixFiles(): Set<Module | ScriptEntity>
534
590
  +_methodNamesAsSetFromClass(className: string): Set<string>
535
591
  +_methodParentsAsSetFromClass(className: string): Set<Type>
@@ -540,7 +596,7 @@ class FamixRepository {
540
596
  class Importer {
541
597
  -project: Project
542
598
  +famixRepFromPaths(paths: string[]): FamixRepository
543
- -processEntities(project: any): void
599
+ -processEntities(project: Project): void
544
600
  +famixRepFromSource(filename: string, source: string): FamixRepository
545
601
  +famixRepFromProject(project: Project): FamixRepository
546
602
  }
@@ -549,11 +605,4 @@ abstract class FamixBaseElement {
549
605
  +{abstract} getJSON(): string
550
606
  +addPropertiesToExporter(exporter: FamixJSONExporter): void
551
607
  }
552
- class FamixJSONExporter {
553
- -element: FamixBaseElement
554
- -bufferArray: any
555
- -FamixPrefix: string
556
- +addProperty(name: string, prop: unknown): void
557
- +getJSON(): string
558
- }
559
608
  @enduml