ts2famix 1.4.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/README.md +1 -1
  2. package/dist/analyze.js +6 -3
  3. package/dist/analyze_functions/process_functions.js +248 -100
  4. package/dist/famix2puml.js +1 -0
  5. package/dist/famix_functions/EntityDictionary.js +661 -155
  6. package/dist/famix_functions/helpers_creation.js +26 -6
  7. package/dist/fqn.js +156 -69
  8. package/dist/lib/famix/src/famix_JSON_exporter.js +1 -0
  9. package/dist/lib/famix/src/famix_base_element.js +1 -0
  10. package/dist/lib/famix/src/famix_repository.js +9 -8
  11. package/dist/lib/famix/src/index.js +1 -0
  12. package/dist/lib/famix/src/model/famix/access.js +3 -2
  13. package/dist/lib/famix/src/model/famix/accessor.js +1 -0
  14. package/dist/lib/famix/src/model/famix/alias.js +2 -1
  15. package/dist/lib/famix/src/model/famix/arrowFunction.js +17 -0
  16. package/dist/lib/famix/src/model/famix/behavioral_entity.js +13 -15
  17. package/dist/lib/famix/src/model/famix/class.js +1 -0
  18. package/dist/lib/famix/src/model/famix/comment.js +2 -1
  19. package/dist/lib/famix/src/model/famix/concretisation.js +31 -0
  20. package/dist/lib/famix/src/model/famix/container_entity.js +7 -6
  21. package/dist/lib/famix/src/model/famix/decorator.js +2 -1
  22. package/dist/lib/famix/src/model/famix/entity.js +1 -0
  23. package/dist/lib/famix/src/model/famix/enum.js +2 -1
  24. package/dist/lib/famix/src/model/famix/enum_value.js +2 -1
  25. package/dist/lib/famix/src/model/famix/function.js +1 -0
  26. package/dist/lib/famix/src/model/famix/implicit_variable.js +1 -0
  27. package/dist/lib/famix/src/model/famix/import_clause.js +5 -3
  28. package/dist/lib/famix/src/model/famix/index.js +18 -11
  29. package/dist/lib/famix/src/model/famix/indexed_file_anchor.js +3 -2
  30. package/dist/lib/famix/src/model/famix/inheritance.js +3 -2
  31. package/dist/lib/famix/src/model/famix/interface.js +2 -1
  32. package/dist/lib/famix/src/model/famix/invocation.js +3 -2
  33. package/dist/lib/famix/src/model/famix/method.js +2 -1
  34. package/dist/lib/famix/src/model/famix/module.js +53 -0
  35. package/dist/lib/famix/src/model/famix/named_entity.js +4 -3
  36. package/dist/lib/famix/src/model/famix/parameter.js +2 -1
  37. package/dist/lib/famix/src/model/famix/parameterConcretisation.js +44 -0
  38. package/dist/lib/famix/src/model/famix/parameter_type.js +22 -1
  39. package/dist/lib/famix/src/model/famix/parametric_arrow_function.js +31 -0
  40. package/dist/lib/famix/src/model/famix/parametric_class.js +44 -0
  41. package/dist/lib/famix/src/model/famix/parametric_function.js +31 -0
  42. package/dist/lib/famix/src/model/famix/parametric_interface.js +44 -0
  43. package/dist/lib/famix/src/model/famix/parametric_method.js +31 -0
  44. package/dist/lib/famix/src/model/famix/primitive_type.js +1 -0
  45. package/dist/lib/famix/src/model/famix/property.js +91 -9
  46. package/dist/lib/famix/src/model/famix/reference.js +3 -2
  47. package/dist/lib/famix/src/model/famix/scoping_entity.js +12 -10
  48. package/dist/lib/famix/src/model/famix/script_entity.js +1 -2
  49. package/dist/lib/famix/src/model/famix/source_anchor.js +1 -0
  50. package/dist/lib/famix/src/model/famix/source_language.js +1 -1
  51. package/dist/lib/famix/src/model/famix/sourced_entity.js +2 -1
  52. package/dist/lib/famix/src/model/famix/structural_entity.js +1 -0
  53. package/dist/lib/famix/src/model/famix/text_anchor.js +1 -0
  54. package/dist/lib/famix/src/model/famix/type.js +6 -4
  55. package/dist/lib/famix/src/model/famix/variable.js +1 -0
  56. package/dist/lib/ts-complex/cyclomatic-service.js +2 -2
  57. package/dist/ts2famix-cli-wrapper.js +16 -0
  58. package/dist/ts2famix-cli.js +8 -1
  59. package/dist/ts2famix-tsconfig.js +1 -0
  60. package/doc-uml/famix-typescript-model.puml +559 -0
  61. package/doc-uml/famix-typescript-model.svg +1 -0
  62. package/jest.config.json +2 -1
  63. package/package.json +10 -10
  64. package/src/analyze.ts +25 -22
  65. package/src/analyze_functions/process_functions.ts +272 -96
  66. package/src/famix_functions/EntityDictionary.ts +731 -182
  67. package/src/famix_functions/helpers_creation.ts +28 -2
  68. package/src/fqn.ts +132 -10
  69. package/src/lib/famix/src/famix_repository.ts +9 -9
  70. package/src/lib/famix/src/model/famix/access.ts +2 -2
  71. package/src/lib/famix/src/model/famix/alias.ts +1 -1
  72. package/src/lib/famix/src/model/famix/arrowFunction.ts +15 -0
  73. package/src/lib/famix/src/model/famix/behavioral_entity.ts +12 -19
  74. package/src/lib/famix/src/model/famix/comment.ts +1 -1
  75. package/src/lib/famix/src/model/famix/concretisation.ts +42 -0
  76. package/src/lib/famix/src/model/famix/container_entity.ts +6 -6
  77. package/src/lib/famix/src/model/famix/decorator.ts +1 -1
  78. package/src/lib/famix/src/model/famix/enum.ts +1 -1
  79. package/src/lib/famix/src/model/famix/enum_value.ts +1 -1
  80. package/src/lib/famix/src/model/famix/import_clause.ts +4 -3
  81. package/src/lib/famix/src/model/famix/index.ts +8 -5
  82. package/src/lib/famix/src/model/famix/indexed_file_anchor.ts +2 -2
  83. package/src/lib/famix/src/model/famix/inheritance.ts +3 -4
  84. package/src/lib/famix/src/model/famix/interface.ts +1 -1
  85. package/src/lib/famix/src/model/famix/invocation.ts +2 -2
  86. package/src/lib/famix/src/model/famix/method.ts +1 -1
  87. package/src/lib/famix/src/model/famix/module.ts +67 -1
  88. package/src/lib/famix/src/model/famix/named_entity.ts +3 -3
  89. package/src/lib/famix/src/model/famix/parameter.ts +1 -1
  90. package/src/lib/famix/src/model/famix/parameterConcretisation.ts +54 -0
  91. package/src/lib/famix/src/model/famix/parameter_type.ts +33 -6
  92. package/src/lib/famix/src/model/famix/parametric_arrow_function.ts +32 -0
  93. package/src/lib/famix/src/model/famix/parametric_class.ts +49 -0
  94. package/src/lib/famix/src/model/famix/parametric_function.ts +32 -0
  95. package/src/lib/famix/src/model/famix/parametric_interface.ts +49 -0
  96. package/src/lib/famix/src/model/famix/parametric_method.ts +32 -0
  97. package/src/lib/famix/src/model/famix/property.ts +109 -11
  98. package/src/lib/famix/src/model/famix/reference.ts +2 -2
  99. package/src/lib/famix/src/model/famix/scoping_entity.ts +12 -11
  100. package/src/lib/famix/src/model/famix/script_entity.ts +0 -2
  101. package/src/lib/famix/src/model/famix/source_language.ts +0 -1
  102. package/src/lib/famix/src/model/famix/sourced_entity.ts +1 -1
  103. package/src/lib/famix/src/model/famix/type.ts +5 -4
  104. package/src/ts2famix-cli-wrapper.ts +17 -0
  105. package/src/ts2famix-cli.ts +7 -1
  106. package/tsconfig.json +5 -5
  107. package/dist/lib/famix/src/model/famix/association.js +0 -36
  108. package/dist/lib/famix/src/model/famix/namespace.js +0 -24
  109. package/dist/lib/famix/src/model/famix/parameterizable_class.js +0 -30
  110. package/dist/lib/famix/src/model/famix/parameterizable_interface.js +0 -30
  111. package/dist/lib/famix/src/model/famix/parameterized_type.js +0 -36
  112. package/doc-uml/metamodel-full.svg +0 -1
  113. package/doc-uml/metamodel.svg +0 -1
  114. package/plantuml.jar +0 -0
  115. package/src/lib/famix/src/model/famix/association.ts +0 -44
  116. package/src/lib/famix/src/model/famix/namespace.ts +0 -28
  117. package/src/lib/famix/src/model/famix/parameterizable_class.ts +0 -31
  118. package/src/lib/famix/src/model/famix/parameterizable_interface.ts +0 -31
  119. package/src/lib/famix/src/model/famix/parameterized_type.ts +0 -40
@@ -0,0 +1,559 @@
1
+ @startuml
2
+ class Entity extends FamixBaseElement {
3
+ +getJSON(): string
4
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
5
+ }
6
+ class SourceLanguage extends Entity {
7
+ -sourcedEntities: Set<SourcedEntity>
8
+ +name: string
9
+ +getSourcedEntities(): Set<SourcedEntity>
10
+ +addSourcedEntity(sourcedEntity: SourcedEntity): void
11
+ +getJSON(): string
12
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
13
+ }
14
+ 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
24
+ +getJSON(): string
25
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
26
+ }
27
+ class SourceAnchor extends Entity {
28
+ -element: SourcedEntity
29
+ +getElement(): SourcedEntity
30
+ +setElement(element: SourcedEntity): void
31
+ +getJSON(): string
32
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
33
+ }
34
+ 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>
43
+ +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
64
+ +getJSON(): string
65
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
66
+ }
67
+ class ScopingEntity extends ContainerEntity {
68
+ -childrenNamespaces: Set<Namespace>
69
+ +getNamespaces(): Set<Namespace>
70
+ +addNamespace(childNamespace: Namespace): void
71
+ +getJSON(): string
72
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
73
+ }
74
+ 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
81
+ +getJSON(): string
82
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
83
+ }
84
+ class Module extends ScriptEntity {
85
+ -outgoingImports: Set<ImportClause>
86
+ +getOutgoingImports(): Set<ImportClause>
87
+ +addOutgoingImport(importClause: ImportClause): void
88
+ +getJSON(): string
89
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
90
+ }
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
101
+ +getJSON(): string
102
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
103
+ }
104
+ 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
111
+ +getJSON(): string
112
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
113
+ }
114
+ 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
121
+ +getJSON(): string
122
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
123
+ }
124
+ class NamedEntity extends SourcedEntity {
125
+ -fullyQualifiedName: string
126
+ +getFullyQualifiedName(): string
127
+ +setFullyQualifiedName(fullyQualifiedName: string): void
128
+ -receivedInvocations: Set<Invocation>
129
+ +getReceivedInvocations(): Set<Invocation>
130
+ +addReceivedInvocation(receivedInvocation: Invocation): void
131
+ -incomingImports: Set<ImportClause>
132
+ +getIncomingImports(): Set<ImportClause>
133
+ +addIncomingImport(anImport: ImportClause): void
134
+ -name: string
135
+ +getName(): string
136
+ +setName(name: string): void
137
+ -aliases: Set<Alias>
138
+ +getAliases(): Set<Alias>
139
+ +addAlias(alias: Alias): void
140
+ -decorators: Set<Decorator>
141
+ +getDecorators(): Set<Decorator>
142
+ +addDecorator(decorator: Decorator): void
143
+ +getJSON(): string
144
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
145
+ }
146
+ class Parameter extends StructuralEntity {
147
+ -parentEntity: BehavioralEntity
148
+ +getParentEntity(): BehavioralEntity
149
+ +setParentEntity(parentEntity: BehavioralEntity): void
150
+ +getJSON(): string
151
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
152
+ }
153
+ 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
175
+ }
176
+ class Interface extends Type {
177
+ -properties: Set<Property>
178
+ +getProperties(): Set<Property>
179
+ +addProperty(property: Property): void
180
+ -methods: Set<Method>
181
+ +getMethods(): Set<Method>
182
+ +addMethod(method: Method): void
183
+ -superInheritances: Set<Inheritance>
184
+ +getSuperInheritances(): Set<Inheritance>
185
+ +addSuperInheritance(superInheritance: Inheritance): void
186
+ -subInheritances: Set<Inheritance>
187
+ +getSubInheritances(): Set<Inheritance>
188
+ +addSubInheritance(subInheritance: Inheritance): void
189
+ +getJSON(): string
190
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
191
+ }
192
+ 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
216
+ }
217
+ class Class extends Type {
218
+ -isAbstract: boolean
219
+ +getIsAbstract(): boolean
220
+ +setIsAbstract(isAbstract: boolean): void
221
+ -properties: Set<Property>
222
+ +getProperties(): Set<Property>
223
+ +addProperty(property: Property): void
224
+ -methods: Set<Method>
225
+ +getMethods(): Set<Method>
226
+ +addMethod(method: Method): void
227
+ -superInheritances: Set<Inheritance>
228
+ +getSuperInheritances(): Set<Inheritance>
229
+ +addSuperInheritance(superInheritance: Inheritance): void
230
+ -subInheritances: Set<Inheritance>
231
+ +getSubInheritances(): Set<Inheritance>
232
+ +addSubInheritance(subInheritance: Inheritance): void
233
+ +getJSON(): string
234
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
235
+ }
236
+ class ParameterizableClass extends Class {
237
+ -parameterTypes: Set<ParameterType>
238
+ +getParameterTypes(): Set<ParameterType>
239
+ +addParameterType(parameterType: ParameterType): void
240
+ +getJSON(): string
241
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
242
+ }
243
+ class ParameterizableInterface extends Interface {
244
+ -parameterTypes: Set<ParameterType>
245
+ +getParameterTypes(): Set<ParameterType>
246
+ +addParameterType(parameterType: ParameterType): void
247
+ +getJSON(): string
248
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
249
+ }
250
+ class Function extends BehavioralEntity {
251
+ +getJSON(): string
252
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
253
+ }
254
+ class Accessor extends Method {
255
+ +getJSON(): string
256
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
257
+ }
258
+ 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
262
+ +getJSON(): string
263
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
264
+ }
265
+ 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>
274
+ +addParameter(parameter: Parameter): void
275
+ -numberOfParameters: number
276
+ +getNumberOfParameters(): number
277
+ +setNumberOfParameters(numberOfParameters: number): void
278
+ -incomingInvocations: Set<Invocation>
279
+ +getIncomingInvocations(): Set<Invocation>
280
+ +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>
293
+ +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
303
+ +getJSON(): string
304
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
305
+ }
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
313
+ +getJSON(): string
314
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
315
+ }
316
+ class Variable extends StructuralEntity {
317
+ -parentContainerEntity: ContainerEntity
318
+ +getParentContainerEntity(): ContainerEntity
319
+ +setParentContainerEntity(parentContainerEntity: ContainerEntity): void
320
+ +getJSON(): string
321
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
322
+ }
323
+ class ContainerEntity extends NamedEntity {
324
+ -parentContainerEntity: ContainerEntity
325
+ +getParentContainerEntity(): ContainerEntity
326
+ +setParentContainerEntity(parentContainerEntity: ContainerEntity): void
327
+ -childrenContainerEntities: Set<ContainerEntity>
328
+ +getChildrenContainerEntities(): Set<ContainerEntity>
329
+ +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>
338
+ +addOutgoingReference(outgoingReference: Reference): void
339
+ -numberOfLinesOfCode: number
340
+ +getNumberOfLinesOfCode(): number
341
+ +setNumberOfLinesOfCode(numberOfLinesOfCode: number): void
342
+ -outgoingInvocations: Set<Invocation>
343
+ +getOutgoingInvocations(): Set<Invocation>
344
+ +addOutgoingInvocation(outgoingInvocation: Invocation): void
345
+ -accesses: Set<Access>
346
+ +getAccesses(): Set<Access>
347
+ +addAccess(access: Access): void
348
+ -childrenTypes: Set<Type>
349
+ +getTypes(): Set<Type>
350
+ +addType(childType: Type): void
351
+ -childrenFunctions: Set<FamixFunctionEntity>
352
+ +getFunctions(): Set<FamixFunctionEntity>
353
+ +addFunction(childFunction: FamixFunctionEntity): void
354
+ -variables: Set<Variable>
355
+ +getVariables(): Set<Variable>
356
+ +addVariable(variable: Variable): void
357
+ +getJSON(): string
358
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
359
+ }
360
+ class Type extends ContainerEntity {
361
+ -container: ContainerEntity
362
+ +getContainer(): ContainerEntity
363
+ +setContainer(container: ContainerEntity): void
364
+ -typeAliases: Set<Alias>
365
+ +getTypeAliases(): Set<Alias>
366
+ +addTypeAlias(typeAlias: Alias): void
367
+ -structuresWithDeclaredType: Set<StructuralEntity>
368
+ +getStructuresWithDeclaredType(): Set<StructuralEntity>
369
+ +addStructureWithDeclaredType(structureWithDeclaredType: StructuralEntity): void
370
+ -behavioralEntitiesWithDeclaredType: Set<BehavioralEntity>
371
+ +getBehavioralEntitiesWithDeclaredType(): Set<BehavioralEntity>
372
+ +addBehavioralEntityWithDeclaredType(behavioralEntityWithDeclaredType: BehavioralEntity): void
373
+ -incomingReferences: Set<Reference>
374
+ +getIncomingReferences(): Set<Reference>
375
+ +addIncomingReference(incomingReference: Reference): void
376
+ +getJSON(): string
377
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
378
+ }
379
+ class StructuralEntity extends NamedEntity {
380
+ -incomingAccesses: Set<Access>
381
+ +getIncomingAccesses(): Set<Access>
382
+ +addIncomingAccess(incomingAccess: Access): void
383
+ -declaredType: Type
384
+ +getDeclaredType(): Type
385
+ +setDeclaredType(declaredType: Type): void
386
+ +getJSON(): string
387
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
388
+ }
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
399
+ +getJSON(): string
400
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
401
+ }
402
+ class Enum extends Type {
403
+ -values: Set<EnumValue>
404
+ +getValues(): Set<EnumValue>
405
+ +addValue(value: EnumValue): void
406
+ +getJSON(): string
407
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
408
+ }
409
+ class EnumValue extends StructuralEntity {
410
+ -parentEntity: Enum
411
+ +getParentEntity(): Enum
412
+ +setParentEntity(parentEntity: Enum): void
413
+ +getJSON(): string
414
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
415
+ }
416
+ class ImplicitVariable extends Variable {
417
+ +getJSON(): string
418
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
419
+ }
420
+ 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 {
450
+ +getJSON(): string
451
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
452
+ }
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
463
+ +getJSON(): string
464
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
465
+ }
466
+ interface SearchParameters {
467
+ +searchArray: string[]
468
+ +targetArray: string[]
469
+ +start?: number
470
+ }
471
+ class EntityDictionary {
472
+ +famixRep: FamixRepository
473
+ -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>
477
+ -fmxFileMap: Map<string, Famix.Module | Famix.ScriptEntity>
478
+ -fmxTypeMap: Map<string, Famix.Type | Famix.PrimitiveType | Famix.ParameterizedType>
479
+ -UNKNOWN_VALUE: string
480
+ +fmxElementObjectMap: Map<Famix.Entity, TSMorphObjectType>
481
+ +makeFamixIndexFileAnchor(sourceElement: TSMorphObjectType, famixElement: Famix.SourcedEntity): void
482
+ +createOrGetFamixFile(f: SourceFile, isModule: boolean): Famix.Module | Famix.ScriptEntity
483
+ +createOrGetFamixNamespace(m: ModuleDeclaration): Famix.Namespace
484
+ +createFamixAlias(a: TypeAliasDeclaration): Famix.Alias
485
+ +createOrGetFamixClass(cls: ClassDeclaration): Famix.Class | Famix.ParameterizableClass
486
+ +createOrGetFamixInterface(inter: InterfaceDeclaration): Famix.Interface | Famix.ParameterizableInterface
487
+ +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
490
+ +createFamixParameter(param: ParameterDeclaration): Famix.Parameter
491
+ +createFamixParameterType(tp: TypeParameterDeclaration): Famix.ParameterType
492
+ +createFamixVariable(variable: VariableDeclaration): Famix.Variable
493
+ +createFamixEnum(enumEntity: EnumDeclaration): Famix.Enum
494
+ +createFamixEnumValue(enumMember: EnumMember): Famix.EnumValue
495
+ +createOrGetFamixDecorator(decorator: Decorator, decoratedEntity: ClassDeclaration | MethodDeclaration | ParameterDeclaration | PropertyDeclaration | GetAccessorDeclaration | SetAccessorDeclaration): Famix.Decorator
496
+ +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
498
+ +createFamixAccess(node: Identifier, id: number): void
499
+ +createFamixInvocation(node: Identifier, m: MethodDeclaration | ConstructorDeclaration | FunctionDeclaration | FunctionExpression | GetAccessorDeclaration | SetAccessorDeclaration, id: number): void
500
+ +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
502
+ +convertToRelativePath(absolutePath: string, absolutePathProject: string): string
503
+ }
504
+ class FamixRepository {
505
+ -elements: Set<FamixBaseElement>
506
+ -famixClasses: Set<Class>
507
+ -famixInterfaces: Set<Interface>
508
+ -famixNamespaces: Set<Namespace>
509
+ -famixMethods: Set<Method>
510
+ -famixVariables: Set<Variable>
511
+ -famixFunctions: Set<FamixFunctionEntity>
512
+ -famixFiles: Set<Module | ScriptEntity>
513
+ -idCounter: number
514
+ -absolutePath: string
515
+ -fmxElementObjectMap: Map<Famix.Entity, TSMorphObjectType>
516
+ +setFmxElementObjectMap(fmxElementObjectMap: Map<Famix.Entity, TSMorphObjectType>): void
517
+ +getFmxElementObjectMap(): Map<Famix.Entity, TSMorphObjectType>
518
+ +getAbsolutePath(): string
519
+ +setAbsolutePath(path: string): void
520
+ +getFamixEntityById(id: number): FamixBaseElement
521
+ +getFamixEntityByFullyQualifiedName(fullyQualifiedName: string): FamixBaseElement
522
+ +export(arg0: { format: string; }): string
523
+ +_getAllEntities(): Set<FamixBaseElement>
524
+ +_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
533
+ +_getFamixFiles(): Set<Module | ScriptEntity>
534
+ +_methodNamesAsSetFromClass(className: string): Set<string>
535
+ +_methodParentsAsSetFromClass(className: string): Set<Type>
536
+ +_initMapFromModel(model: string): Map<number, unknown>
537
+ +addElement(element: FamixBaseElement): void
538
+ +getJSON(): string
539
+ }
540
+ class Importer {
541
+ -project: Project
542
+ +famixRepFromPaths(paths: string[]): FamixRepository
543
+ -processEntities(project: any): void
544
+ +famixRepFromSource(filename: string, source: string): FamixRepository
545
+ +famixRepFromProject(project: Project): FamixRepository
546
+ }
547
+ abstract class FamixBaseElement {
548
+ +id: number
549
+ +{abstract} getJSON(): string
550
+ +addPropertiesToExporter(exporter: FamixJSONExporter): void
551
+ }
552
+ class FamixJSONExporter {
553
+ -element: FamixBaseElement
554
+ -bufferArray: any
555
+ -FamixPrefix: string
556
+ +addProperty(name: string, prop: unknown): void
557
+ +getJSON(): string
558
+ }
559
+ @enduml