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.
- package/LICENSE +1 -0
- package/README.md +29 -60
- package/dist/analyze.js +1 -1
- package/dist/analyze_functions/process_functions.js +49 -43
- package/dist/famix_functions/EntityDictionary.js +309 -182
- package/dist/famix_functions/helpers_creation.js +36 -5
- package/dist/fqn.js +76 -114
- package/dist/lib/famix/famix_JSON_exporter.js +55 -0
- package/dist/lib/famix/famix_base_element.js +18 -0
- package/dist/lib/famix/famix_repository.js +224 -0
- package/dist/lib/famix/{src/index.js → index.js} +1 -1
- package/dist/lib/famix/model/famix/access.js +40 -0
- package/dist/lib/famix/model/famix/accessor.js +17 -0
- package/dist/lib/famix/model/famix/alias.js +33 -0
- package/dist/lib/famix/model/famix/arrow_function.js +17 -0
- package/dist/lib/famix/model/famix/behavioral_entity.js +79 -0
- package/dist/lib/famix/model/famix/class.js +71 -0
- package/dist/lib/famix/model/famix/comment.js +39 -0
- package/dist/lib/famix/model/famix/concretisation.js +31 -0
- package/dist/lib/famix/model/famix/container_entity.js +126 -0
- package/dist/lib/famix/model/famix/decorator.js +32 -0
- package/dist/lib/famix/model/famix/entity.js +17 -0
- package/dist/lib/famix/model/famix/enum.js +31 -0
- package/dist/lib/famix/model/famix/enum_value.js +25 -0
- package/dist/lib/famix/model/famix/function.js +17 -0
- package/dist/lib/famix/model/famix/import_clause.js +41 -0
- package/dist/lib/famix/{src/model → model}/famix/index.js +6 -10
- package/dist/lib/famix/model/famix/indexed_file_anchor.js +38 -0
- package/dist/lib/famix/model/famix/inheritance.js +33 -0
- package/dist/lib/famix/model/famix/interface.js +64 -0
- package/dist/lib/famix/model/famix/invocation.js +54 -0
- package/dist/lib/famix/model/famix/method.js +67 -0
- package/dist/lib/famix/model/famix/module.js +60 -0
- package/dist/lib/famix/model/famix/named_entity.js +78 -0
- package/dist/lib/famix/model/famix/parameter.js +25 -0
- package/dist/lib/famix/model/famix/parameter_concretisation.js +44 -0
- package/dist/lib/famix/model/famix/parameter_type.js +45 -0
- package/dist/lib/famix/model/famix/parametric_arrow_function.js +31 -0
- package/dist/lib/famix/model/famix/parametric_class.js +44 -0
- package/dist/lib/famix/model/famix/parametric_function.js +31 -0
- package/dist/lib/famix/model/famix/parametric_interface.js +44 -0
- package/dist/lib/famix/model/famix/parametric_method.js +31 -0
- package/dist/lib/famix/model/famix/primitive_type.js +17 -0
- package/dist/lib/famix/model/famix/property.js +73 -0
- package/dist/lib/famix/model/famix/reference.js +33 -0
- package/dist/lib/famix/model/famix/scoping_entity.js +36 -0
- package/dist/lib/famix/model/famix/script_entity.js +29 -0
- package/dist/lib/famix/model/famix/source_anchor.js +27 -0
- package/dist/lib/famix/model/famix/source_language.js +35 -0
- package/dist/lib/famix/model/famix/sourced_entity.js +60 -0
- package/dist/lib/famix/model/famix/structural_entity.js +39 -0
- package/dist/lib/famix/model/famix/type.js +73 -0
- package/dist/lib/famix/model/famix/variable.js +24 -0
- package/dist/lib/ts-complex/cyclomatic-service.js +2 -2
- package/dist/refactorer/refactor-getter-setter.js +142 -0
- package/dist/ts2famix-cli-wrapper.js +29 -3
- package/dist/ts2famix-cli.js +1 -1
- package/doc-uml/famix-typescript-model.puml +390 -341
- package/doc-uml/famix-typescript-model.svg +1 -1
- package/package.json +8 -7
- package/src/analyze.ts +2 -2
- package/src/analyze_functions/process_functions.ts +49 -44
- package/src/famix_functions/EntityDictionary.ts +345 -216
- package/src/famix_functions/helpers_creation.ts +36 -4
- package/src/fqn.ts +76 -125
- package/src/lib/famix/famix_JSON_exporter.ts +56 -0
- package/src/lib/famix/famix_base_element.ts +22 -0
- package/src/lib/famix/famix_repository.ts +243 -0
- package/src/lib/famix/model/famix/access.ts +50 -0
- package/src/lib/famix/model/famix/alias.ts +39 -0
- package/src/lib/famix/model/famix/behavioral_entity.ts +97 -0
- package/src/lib/famix/model/famix/class.ts +85 -0
- package/src/lib/famix/model/famix/comment.ts +47 -0
- package/src/lib/famix/model/famix/concretisation.ts +40 -0
- package/src/lib/famix/model/famix/container_entity.ts +160 -0
- package/src/lib/famix/model/famix/decorator.ts +37 -0
- package/src/lib/famix/model/famix/enum.ts +30 -0
- package/src/lib/famix/model/famix/enum_value.ts +28 -0
- package/src/lib/famix/model/famix/import_clause.ts +51 -0
- package/src/lib/famix/{src/model → model}/famix/index.ts +2 -4
- package/src/lib/famix/model/famix/indexed_file_anchor.ts +46 -0
- package/src/lib/famix/model/famix/inheritance.ts +40 -0
- package/src/lib/famix/model/famix/interface.ts +75 -0
- package/src/lib/famix/model/famix/invocation.ts +65 -0
- package/src/lib/famix/model/famix/method.ts +89 -0
- package/src/lib/famix/model/famix/module.ts +71 -0
- package/src/lib/famix/model/famix/named_entity.ts +95 -0
- package/src/lib/famix/{src/model → model}/famix/parameter.ts +11 -12
- package/src/lib/famix/model/famix/parameter_concretisation.ts +51 -0
- package/src/lib/famix/model/famix/parameter_type.ts +58 -0
- package/src/lib/famix/model/famix/parametric_arrow_function.ts +32 -0
- package/src/lib/famix/model/famix/parametric_class.ts +49 -0
- package/src/lib/famix/model/famix/parametric_function.ts +32 -0
- package/src/lib/famix/model/famix/parametric_interface.ts +49 -0
- package/src/lib/famix/model/famix/parametric_method.ts +32 -0
- package/src/lib/famix/model/famix/primitive_type.ts +15 -0
- package/src/lib/famix/model/famix/property.ts +94 -0
- package/src/lib/famix/model/famix/reference.ts +40 -0
- package/src/lib/famix/model/famix/scoping_entity.ts +35 -0
- package/src/lib/famix/model/famix/script_entity.ts +34 -0
- package/src/lib/famix/model/famix/source_anchor.ts +30 -0
- package/src/lib/famix/model/famix/source_language.ts +35 -0
- package/src/lib/famix/model/famix/sourced_entity.ts +70 -0
- package/src/lib/famix/model/famix/structural_entity.ts +43 -0
- package/src/lib/famix/model/famix/type.ts +87 -0
- package/src/lib/famix/model/famix/variable.ts +27 -0
- package/src/lib/famix/package.json +1 -1
- package/src/lib/ts-complex/cyclomatic-service.ts +10 -10
- package/src/refactorer/refactor-getter-setter.ts +140 -0
- package/src/ts2famix-cli-wrapper.ts +6 -2
- package/src/ts2famix-cli.ts +1 -1
- package/tsconfig.check-tests.json +14 -0
- package/tsconfig.json +70 -68
- package/dist/famix2puml.js +0 -126
- package/dist/lib/famix/src/famix_JSON_exporter.js +0 -55
- package/dist/lib/famix/src/famix_base_element.js +0 -18
- package/dist/lib/famix/src/famix_repository.js +0 -223
- package/dist/lib/famix/src/model/famix/access.js +0 -40
- package/dist/lib/famix/src/model/famix/accessor.js +0 -17
- package/dist/lib/famix/src/model/famix/alias.js +0 -33
- package/dist/lib/famix/src/model/famix/arrowFunction.js +0 -17
- package/dist/lib/famix/src/model/famix/behavioral_entity.js +0 -79
- package/dist/lib/famix/src/model/famix/class.js +0 -71
- package/dist/lib/famix/src/model/famix/comment.js +0 -39
- package/dist/lib/famix/src/model/famix/concretisation.js +0 -31
- package/dist/lib/famix/src/model/famix/container_entity.js +0 -126
- package/dist/lib/famix/src/model/famix/decorator.js +0 -32
- package/dist/lib/famix/src/model/famix/entity.js +0 -17
- package/dist/lib/famix/src/model/famix/enum.js +0 -31
- package/dist/lib/famix/src/model/famix/enum_value.js +0 -25
- package/dist/lib/famix/src/model/famix/function.js +0 -17
- package/dist/lib/famix/src/model/famix/implicit_variable.js +0 -17
- package/dist/lib/famix/src/model/famix/import_clause.js +0 -41
- package/dist/lib/famix/src/model/famix/indexed_file_anchor.js +0 -52
- package/dist/lib/famix/src/model/famix/inheritance.js +0 -33
- package/dist/lib/famix/src/model/famix/interface.js +0 -64
- package/dist/lib/famix/src/model/famix/invocation.js +0 -54
- package/dist/lib/famix/src/model/famix/method.js +0 -67
- package/dist/lib/famix/src/model/famix/module.js +0 -84
- package/dist/lib/famix/src/model/famix/named_entity.js +0 -78
- package/dist/lib/famix/src/model/famix/parameter.js +0 -25
- package/dist/lib/famix/src/model/famix/parameterConcretisation.js +0 -44
- package/dist/lib/famix/src/model/famix/parameter_type.js +0 -45
- package/dist/lib/famix/src/model/famix/parametric_arrow_function.js +0 -31
- package/dist/lib/famix/src/model/famix/parametric_class.js +0 -44
- package/dist/lib/famix/src/model/famix/parametric_function.js +0 -31
- package/dist/lib/famix/src/model/famix/parametric_interface.js +0 -44
- package/dist/lib/famix/src/model/famix/parametric_method.js +0 -31
- package/dist/lib/famix/src/model/famix/primitive_type.js +0 -17
- package/dist/lib/famix/src/model/famix/property.js +0 -126
- package/dist/lib/famix/src/model/famix/reference.js +0 -33
- package/dist/lib/famix/src/model/famix/scoping_entity.js +0 -37
- package/dist/lib/famix/src/model/famix/script_entity.js +0 -29
- package/dist/lib/famix/src/model/famix/source_anchor.js +0 -27
- package/dist/lib/famix/src/model/famix/source_language.js +0 -35
- package/dist/lib/famix/src/model/famix/sourced_entity.js +0 -60
- package/dist/lib/famix/src/model/famix/structural_entity.js +0 -39
- package/dist/lib/famix/src/model/famix/text_anchor.js +0 -38
- package/dist/lib/famix/src/model/famix/type.js +0 -73
- package/dist/lib/famix/src/model/famix/variable.js +0 -24
- package/jest.config-old.ts +0 -199
- package/src/famix2puml.ts +0 -119
- package/src/lib/famix/package-lock.json +0 -301
- package/src/lib/famix/readme.md +0 -5
- package/src/lib/famix/src/famix_JSON_exporter.ts +0 -56
- package/src/lib/famix/src/famix_base_element.ts +0 -22
- package/src/lib/famix/src/famix_repository.ts +0 -243
- package/src/lib/famix/src/model/famix/access.ts +0 -53
- package/src/lib/famix/src/model/famix/alias.ts +0 -41
- package/src/lib/famix/src/model/famix/behavioral_entity.ts +0 -100
- package/src/lib/famix/src/model/famix/class.ts +0 -86
- package/src/lib/famix/src/model/famix/comment.ts +0 -50
- package/src/lib/famix/src/model/famix/concretisation.ts +0 -42
- package/src/lib/famix/src/model/famix/container_entity.ts +0 -165
- package/src/lib/famix/src/model/famix/decorator.ts +0 -39
- package/src/lib/famix/src/model/famix/enum.ts +0 -31
- package/src/lib/famix/src/model/famix/enum_value.ts +0 -29
- package/src/lib/famix/src/model/famix/implicit_variable.ts +0 -15
- package/src/lib/famix/src/model/famix/import_clause.ts +0 -54
- package/src/lib/famix/src/model/famix/indexed_file_anchor.ts +0 -71
- package/src/lib/famix/src/model/famix/inheritance.ts +0 -41
- package/src/lib/famix/src/model/famix/interface.ts +0 -75
- package/src/lib/famix/src/model/famix/invocation.ts +0 -68
- package/src/lib/famix/src/model/famix/method.ts +0 -96
- package/src/lib/famix/src/model/famix/module.ts +0 -97
- package/src/lib/famix/src/model/famix/named_entity.ts +0 -98
- package/src/lib/famix/src/model/famix/parameterConcretisation.ts +0 -54
- package/src/lib/famix/src/model/famix/parameter_type.ts +0 -60
- package/src/lib/famix/src/model/famix/parametric_arrow_function.ts +0 -32
- package/src/lib/famix/src/model/famix/parametric_class.ts +0 -49
- package/src/lib/famix/src/model/famix/parametric_function.ts +0 -32
- package/src/lib/famix/src/model/famix/parametric_interface.ts +0 -49
- package/src/lib/famix/src/model/famix/parametric_method.ts +0 -32
- package/src/lib/famix/src/model/famix/primitive_type.ts +0 -15
- package/src/lib/famix/src/model/famix/property.ts +0 -152
- package/src/lib/famix/src/model/famix/reference.ts +0 -42
- package/src/lib/famix/src/model/famix/scoping_entity.ts +0 -36
- package/src/lib/famix/src/model/famix/script_entity.ts +0 -36
- package/src/lib/famix/src/model/famix/source_anchor.ts +0 -31
- package/src/lib/famix/src/model/famix/source_language.ts +0 -36
- package/src/lib/famix/src/model/famix/sourced_entity.ts +0 -73
- package/src/lib/famix/src/model/famix/structural_entity.ts +0 -44
- package/src/lib/famix/src/model/famix/text_anchor.ts +0 -49
- package/src/lib/famix/src/model/famix/type.ts +0 -89
- package/src/lib/famix/src/model/famix/variable.ts +0 -28
- package/src/lib/famix/tsconfig.json +0 -27
- package/src/lib/famix/tslint.json +0 -15
- /package/src/lib/famix/{src/index.ts → index.ts} +0 -0
- /package/src/lib/famix/{src/model → model}/famix/accessor.ts +0 -0
- /package/src/lib/famix/{src/model/famix/arrowFunction.ts → model/famix/arrow_function.ts} +0 -0
- /package/src/lib/famix/{src/model → model}/famix/entity.ts +0 -0
- /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==
|