ts2famix 2.0.0 → 2.0.3
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 +26 -9
- 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
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ParametricMethod = void 0;
|
|
4
|
+
const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
|
|
5
|
+
const method_1 = require("./method");
|
|
6
|
+
class ParametricMethod extends method_1.Method {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this._concreteParameters = new Set();
|
|
10
|
+
}
|
|
11
|
+
addConcreteParameter(concreteParameter) {
|
|
12
|
+
if (!this._concreteParameters.has(concreteParameter)) {
|
|
13
|
+
this._concreteParameters.add(concreteParameter);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
getJSON() {
|
|
17
|
+
const json = new famix_JSON_exporter_1.FamixJSONExporter("ParametricMethod", this);
|
|
18
|
+
this.addPropertiesToExporter(json);
|
|
19
|
+
return json.getJSON();
|
|
20
|
+
}
|
|
21
|
+
addPropertiesToExporter(exporter) {
|
|
22
|
+
super.addPropertiesToExporter(exporter);
|
|
23
|
+
exporter.addProperty("genericParameters", this.genericParameters);
|
|
24
|
+
exporter.addProperty("concreteParameters", this.concreteParameters);
|
|
25
|
+
}
|
|
26
|
+
get concreteParameters() {
|
|
27
|
+
return this._concreteParameters;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.ParametricMethod = ParametricMethod;
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldHJpY19tZXRob2QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L3BhcmFtZXRyaWNfbWV0aG9kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUc5RCxxQ0FBa0M7QUFHbEMsTUFBYSxnQkFBaUIsU0FBUSxlQUFNO0lBQTVDOztRQUVZLHdCQUFtQixHQUEyQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBdUJwRixDQUFDO0lBckJVLG9CQUFvQixDQUFDLGlCQUFvRDtRQUM1RSxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDTCxDQUFDO0lBRU0sT0FBTztRQUNWLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDdEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLFFBQVEsQ0FBQyxXQUFXLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDbEUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDcEMsQ0FBQztDQUNKO0FBekJELDRDQXlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcbmltcG9ydCB7IENsYXNzIH0gZnJvbSBcIi4vY2xhc3NcIjtcbmltcG9ydCB7IEludGVyZmFjZSB9IGZyb20gXCIuL2ludGVyZmFjZVwiO1xuaW1wb3J0IHsgTWV0aG9kIH0gZnJvbSBcIi4vbWV0aG9kXCI7XG5pbXBvcnQgeyBQcmltaXRpdmVUeXBlIH0gZnJvbSBcIi4vcHJpbWl0aXZlX3R5cGVcIjtcblxuZXhwb3J0IGNsYXNzIFBhcmFtZXRyaWNNZXRob2QgZXh0ZW5kcyBNZXRob2Qge1xuXG4gICAgcHJpdmF0ZSBfY29uY3JldGVQYXJhbWV0ZXJzOiBTZXQ8UHJpbWl0aXZlVHlwZSB8IENsYXNzIHwgSW50ZXJmYWNlPiA9IG5ldyBTZXQoKTtcblxuICAgIHB1YmxpYyBhZGRDb25jcmV0ZVBhcmFtZXRlcihjb25jcmV0ZVBhcmFtZXRlcjogUHJpbWl0aXZlVHlwZSB8IENsYXNzIHwgSW50ZXJmYWNlKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fY29uY3JldGVQYXJhbWV0ZXJzLmhhcyhjb25jcmV0ZVBhcmFtZXRlcikpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbmNyZXRlUGFyYW1ldGVycy5hZGQoY29uY3JldGVQYXJhbWV0ZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJQYXJhbWV0cmljTWV0aG9kXCIsIHRoaXMpO1xuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xuICAgICAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgICAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiZ2VuZXJpY1BhcmFtZXRlcnNcIiwgdGhpcy5nZW5lcmljUGFyYW1ldGVycyk7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiY29uY3JldGVQYXJhbWV0ZXJzXCIsIHRoaXMuY29uY3JldGVQYXJhbWV0ZXJzKTtcbiAgICB9XG5cbiAgICBnZXQgY29uY3JldGVQYXJhbWV0ZXJzKCk6IFNldDxQcmltaXRpdmVUeXBlIHwgQ2xhc3MgfCBJbnRlcmZhY2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmNyZXRlUGFyYW1ldGVycztcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PrimitiveType = void 0;
|
|
4
|
+
const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
|
|
5
|
+
const type_1 = require("./type");
|
|
6
|
+
class PrimitiveType extends type_1.Type {
|
|
7
|
+
getJSON() {
|
|
8
|
+
const json = new famix_JSON_exporter_1.FamixJSONExporter("PrimitiveType", this);
|
|
9
|
+
this.addPropertiesToExporter(json);
|
|
10
|
+
return json.getJSON();
|
|
11
|
+
}
|
|
12
|
+
addPropertiesToExporter(exporter) {
|
|
13
|
+
super.addPropertiesToExporter(exporter);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.PrimitiveType = PrimitiveType;
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlX3R5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L3ByaW1pdGl2ZV90eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUM5RCxpQ0FBOEI7QUFFOUIsTUFBYSxhQUFjLFNBQVEsV0FBSTtJQUU1QixPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDdEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FDSjtBQVhELHNDQVdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gXCIuL3R5cGVcIjtcblxuZXhwb3J0IGNsYXNzIFByaW1pdGl2ZVR5cGUgZXh0ZW5kcyBUeXBlIHtcblxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiUHJpbWl0aXZlVHlwZVwiLCB0aGlzKTtcbiAgICAgICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcbiAgICAgICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Property = void 0;
|
|
4
|
+
const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
|
|
5
|
+
const structural_entity_1 = require("./structural_entity");
|
|
6
|
+
class Property extends structural_entity_1.StructuralEntity {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this._isClassSide = false;
|
|
10
|
+
this._readOnly = false;
|
|
11
|
+
this._visibility = "";
|
|
12
|
+
}
|
|
13
|
+
get readOnly() {
|
|
14
|
+
return this._readOnly;
|
|
15
|
+
}
|
|
16
|
+
set readOnly(value) {
|
|
17
|
+
this._readOnly = value;
|
|
18
|
+
}
|
|
19
|
+
get isDefinitelyAssigned() {
|
|
20
|
+
return this._isDefinitelyAssigned;
|
|
21
|
+
}
|
|
22
|
+
set isDefinitelyAssigned(value) {
|
|
23
|
+
this._isDefinitelyAssigned = value;
|
|
24
|
+
}
|
|
25
|
+
get isOptional() {
|
|
26
|
+
return this._isOptional;
|
|
27
|
+
}
|
|
28
|
+
set isOptional(value) {
|
|
29
|
+
this._isOptional = value;
|
|
30
|
+
}
|
|
31
|
+
get isJavaScriptPrivate() {
|
|
32
|
+
return this._isJavaScriptPrivate;
|
|
33
|
+
}
|
|
34
|
+
set isJavaScriptPrivate(value) {
|
|
35
|
+
this._isJavaScriptPrivate = value;
|
|
36
|
+
}
|
|
37
|
+
get visibility() {
|
|
38
|
+
return this._visibility;
|
|
39
|
+
}
|
|
40
|
+
set visibility(value) {
|
|
41
|
+
this._visibility = value;
|
|
42
|
+
}
|
|
43
|
+
getJSON() {
|
|
44
|
+
const json = new famix_JSON_exporter_1.FamixJSONExporter("Property", this);
|
|
45
|
+
this.addPropertiesToExporter(json);
|
|
46
|
+
return json.getJSON();
|
|
47
|
+
}
|
|
48
|
+
addPropertiesToExporter(exporter) {
|
|
49
|
+
super.addPropertiesToExporter(exporter);
|
|
50
|
+
exporter.addProperty("readOnly", this.readOnly);
|
|
51
|
+
exporter.addProperty("isClassSide", this.isClassSide);
|
|
52
|
+
exporter.addProperty("parentType", this.parentEntity);
|
|
53
|
+
exporter.addProperty("visibility", this.visibility);
|
|
54
|
+
exporter.addProperty("isDefinitelyAssigned", this.isDefinitelyAssigned);
|
|
55
|
+
exporter.addProperty("isOptional", this.isOptional);
|
|
56
|
+
exporter.addProperty("isJavaScriptPrivate", this.isJavaScriptPrivate);
|
|
57
|
+
}
|
|
58
|
+
get isClassSide() {
|
|
59
|
+
return this._isClassSide;
|
|
60
|
+
}
|
|
61
|
+
set isClassSide(isClassSide) {
|
|
62
|
+
this._isClassSide = isClassSide;
|
|
63
|
+
}
|
|
64
|
+
get parentEntity() {
|
|
65
|
+
return this._parentEntity;
|
|
66
|
+
}
|
|
67
|
+
set parentEntity(parentEntity) {
|
|
68
|
+
this._parentEntity = parentEntity;
|
|
69
|
+
parentEntity.addProperty(this);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.Property = Property;
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L3Byb3BlcnR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUc5RCwyREFBdUQ7QUFJdkQsTUFBYSxRQUFTLFNBQVEsb0NBQWdCO0lBQTlDOztRQUVZLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBUzlCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUF3QzNCLGdCQUFXLEdBQW9CLEVBQUUsQ0FBQztJQW1DOUMsQ0FBQztJQWxGRyxJQUFXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVcsUUFBUSxDQUFDLEtBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUlELElBQVcsb0JBQW9CO1FBQzNCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFXLG9CQUFvQixDQUFDLEtBQWM7UUFDMUMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBVyxVQUFVLENBQUMsS0FBYztRQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxtQkFBbUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDckMsQ0FBQztJQUVELElBQVcsbUJBQW1CLENBQUMsS0FBYztRQUN6QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO0lBQ3RDLENBQUM7SUFPRCxJQUFXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFXLFVBQVUsQ0FBQyxLQUFzQjtRQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBSU0sT0FBTztRQUNWLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFFBQTJCO1FBQ3RELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RELFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0RCxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN4RSxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFJLFdBQVcsQ0FBQyxXQUFvQjtRQUNoQyxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxZQUErQjtRQUM1QyxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQztRQUNsQyxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7Q0FDSjtBQXRGRCw0QkFzRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEpTT05FeHBvcnRlciB9IGZyb20gXCIuLi8uLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XG5pbXBvcnQgeyBDbGFzcyB9IGZyb20gXCIuL2NsYXNzXCI7XG5pbXBvcnQgeyBJbnRlcmZhY2UgfSBmcm9tIFwiLi9pbnRlcmZhY2VcIjtcbmltcG9ydCB7IFN0cnVjdHVyYWxFbnRpdHkgfSBmcm9tIFwiLi9zdHJ1Y3R1cmFsX2VudGl0eVwiO1xuXG5leHBvcnQgdHlwZSBWaXNpYmlsaXR5VHlwZXMgPSBcInB1YmxpY1wiIHwgXCJwcml2YXRlXCIgfCBcInByb3RlY3RlZFwiIHwgXCJcIjtcblxuZXhwb3J0IGNsYXNzIFByb3BlcnR5IGV4dGVuZHMgU3RydWN0dXJhbEVudGl0eSB7XG5cbiAgICBwcml2YXRlIF9pc0NsYXNzU2lkZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHVibGljIGdldCByZWFkT25seSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlYWRPbmx5O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgcmVhZE9ubHkodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fcmVhZE9ubHkgPSB2YWx1ZTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcmVhZE9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwcml2YXRlIF9wYXJlbnRFbnRpdHkhOiBDbGFzcyB8IEludGVyZmFjZTtcblxuICAgIHB1YmxpYyBnZXQgaXNEZWZpbml0ZWx5QXNzaWduZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0RlZmluaXRlbHlBc3NpZ25lZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGlzRGVmaW5pdGVseUFzc2lnbmVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2lzRGVmaW5pdGVseUFzc2lnbmVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc09wdGlvbmFsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNPcHRpb25hbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGlzT3B0aW9uYWwodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faXNPcHRpb25hbCA9IHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNKYXZhU2NyaXB0UHJpdmF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzSmF2YVNjcmlwdFByaXZhdGU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBpc0phdmFTY3JpcHRQcml2YXRlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2lzSmF2YVNjcmlwdFByaXZhdGUgPSB2YWx1ZTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNEZWZpbml0ZWx5QXNzaWduZWQhOiBib29sZWFuO1xuXG4gICAgcHJpdmF0ZSBfaXNPcHRpb25hbCE6IGJvb2xlYW47XG5cbiAgICBwcml2YXRlIF9pc0phdmFTY3JpcHRQcml2YXRlITogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBnZXQgdmlzaWJpbGl0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2liaWxpdHk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCB2aXNpYmlsaXR5KHZhbHVlOiBWaXNpYmlsaXR5VHlwZXMpIHtcbiAgICAgICAgdGhpcy5fdmlzaWJpbGl0eSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3Zpc2liaWxpdHk6IFZpc2liaWxpdHlUeXBlcyA9IFwiXCI7XG5cbiAgICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIlByb3BlcnR5XCIsIHRoaXMpO1xuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xuICAgICAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgICAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwicmVhZE9ubHlcIiwgdGhpcy5yZWFkT25seSk7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiaXNDbGFzc1NpZGVcIiwgdGhpcy5pc0NsYXNzU2lkZSk7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwicGFyZW50VHlwZVwiLCB0aGlzLnBhcmVudEVudGl0eSk7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwidmlzaWJpbGl0eVwiLCB0aGlzLnZpc2liaWxpdHkpO1xuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImlzRGVmaW5pdGVseUFzc2lnbmVkXCIsIHRoaXMuaXNEZWZpbml0ZWx5QXNzaWduZWQpO1xuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImlzT3B0aW9uYWxcIiwgdGhpcy5pc09wdGlvbmFsKTtcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJpc0phdmFTY3JpcHRQcml2YXRlXCIsIHRoaXMuaXNKYXZhU2NyaXB0UHJpdmF0ZSk7XG4gICAgfVxuXG4gICAgZ2V0IGlzQ2xhc3NTaWRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNDbGFzc1NpZGU7XG4gICAgfVxuXG4gICAgc2V0IGlzQ2xhc3NTaWRlKGlzQ2xhc3NTaWRlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2lzQ2xhc3NTaWRlID0gaXNDbGFzc1NpZGU7XG4gICAgfVxuXG4gICAgZ2V0IHBhcmVudEVudGl0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcmVudEVudGl0eTtcbiAgICB9XG5cbiAgICBzZXQgcGFyZW50RW50aXR5KHBhcmVudEVudGl0eTogQ2xhc3MgfCBJbnRlcmZhY2UpIHtcbiAgICAgICAgdGhpcy5fcGFyZW50RW50aXR5ID0gcGFyZW50RW50aXR5O1xuICAgICAgICBwYXJlbnRFbnRpdHkuYWRkUHJvcGVydHkodGhpcyk7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Reference = void 0;
|
|
4
|
+
const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
|
|
5
|
+
const entity_1 = require("./entity");
|
|
6
|
+
class Reference extends entity_1.Entity {
|
|
7
|
+
getJSON() {
|
|
8
|
+
const json = new famix_JSON_exporter_1.FamixJSONExporter("Reference", this);
|
|
9
|
+
this.addPropertiesToExporter(json);
|
|
10
|
+
return json.getJSON();
|
|
11
|
+
}
|
|
12
|
+
addPropertiesToExporter(exporter) {
|
|
13
|
+
super.addPropertiesToExporter(exporter);
|
|
14
|
+
exporter.addProperty("source", this.source);
|
|
15
|
+
exporter.addProperty("target", this.target);
|
|
16
|
+
}
|
|
17
|
+
get source() {
|
|
18
|
+
return this._source;
|
|
19
|
+
}
|
|
20
|
+
set source(source) {
|
|
21
|
+
this._source = source;
|
|
22
|
+
source.addOutgoingReference(this);
|
|
23
|
+
}
|
|
24
|
+
get target() {
|
|
25
|
+
return this._target;
|
|
26
|
+
}
|
|
27
|
+
set target(target) {
|
|
28
|
+
this._target = target;
|
|
29
|
+
target.addIncomingReference(this);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.Reference = Reference;
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9mYW1peC9tb2RlbC9mYW1peC9yZWZlcmVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQThEO0FBRzlELHFDQUFrQztBQUVsQyxNQUFhLFNBQVUsU0FBUSxlQUFNO0lBSzFCLE9BQU87UUFDVixNQUFNLElBQUksR0FBc0IsSUFBSSx1Q0FBaUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUF1QjtRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixNQUFNLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsTUFBWTtRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixNQUFNLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUNKO0FBbENELDhCQWtDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcbmltcG9ydCB7IFR5cGUgfSBmcm9tIFwiLi90eXBlXCI7XG5pbXBvcnQgeyBDb250YWluZXJFbnRpdHkgfSBmcm9tIFwiLi9jb250YWluZXJfZW50aXR5XCI7XG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tIFwiLi9lbnRpdHlcIjtcblxuZXhwb3J0IGNsYXNzIFJlZmVyZW5jZSBleHRlbmRzIEVudGl0eSB7XG5cbiAgICBwcml2YXRlIF9zb3VyY2UhOiBDb250YWluZXJFbnRpdHk7XG4gICAgcHJpdmF0ZSBfdGFyZ2V0ITogVHlwZTtcblxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiUmVmZXJlbmNlXCIsIHRoaXMpO1xuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xuICAgICAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgICAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwic291cmNlXCIsIHRoaXMuc291cmNlKTtcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJ0YXJnZXRcIiwgdGhpcy50YXJnZXQpO1xuICAgIH1cblxuICAgIGdldCBzb3VyY2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zb3VyY2U7XG4gICAgfVxuXG4gICAgc2V0IHNvdXJjZShzb3VyY2U6IENvbnRhaW5lckVudGl0eSkge1xuICAgICAgICB0aGlzLl9zb3VyY2UgPSBzb3VyY2U7XG4gICAgICAgIHNvdXJjZS5hZGRPdXRnb2luZ1JlZmVyZW5jZSh0aGlzKTtcbiAgICB9XG5cbiAgICBnZXQgdGFyZ2V0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFyZ2V0O1xuICAgIH1cblxuICAgIHNldCB0YXJnZXQodGFyZ2V0OiBUeXBlKSB7XG4gICAgICAgIHRoaXMuX3RhcmdldCA9IHRhcmdldDtcbiAgICAgICAgdGFyZ2V0LmFkZEluY29taW5nUmVmZXJlbmNlKHRoaXMpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ScopingEntity = void 0;
|
|
4
|
+
const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
|
|
5
|
+
const container_entity_1 = require("./container_entity");
|
|
6
|
+
const analyze_1 = require("../../../../analyze");
|
|
7
|
+
class ScopingEntity extends container_entity_1.ContainerEntity {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this._modules = new Set();
|
|
11
|
+
}
|
|
12
|
+
addModule(childModule) {
|
|
13
|
+
if (!this._modules.has(childModule)) {
|
|
14
|
+
analyze_1.logger.debug("Adding module " + childModule.name + " to " + this.name);
|
|
15
|
+
this._modules.add(childModule);
|
|
16
|
+
childModule.parentScope = this;
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
analyze_1.logger.debug("Module " + childModule.name + " already added to " + this.name);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
getJSON() {
|
|
23
|
+
const json = new famix_JSON_exporter_1.FamixJSONExporter("ScopingEntity", this);
|
|
24
|
+
this.addPropertiesToExporter(json);
|
|
25
|
+
return json.getJSON();
|
|
26
|
+
}
|
|
27
|
+
addPropertiesToExporter(exporter) {
|
|
28
|
+
super.addPropertiesToExporter(exporter);
|
|
29
|
+
// exporter.addProperty("namespaces", this.getModules());
|
|
30
|
+
}
|
|
31
|
+
get modules() {
|
|
32
|
+
return this._modules;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.ScopingEntity = ScopingEntity;
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGluZ19lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L3Njb3BpbmdfZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUM5RCx5REFBcUQ7QUFDckQsaURBQTZDO0FBRzdDLE1BQWEsYUFBYyxTQUFRLGtDQUFlO0lBQWxEOztRQUVZLGFBQVEsR0FBZ0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQTJCOUMsQ0FBQztJQXpCVSxTQUFTLENBQUMsV0FBbUI7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDbEMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLElBQUksR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQy9CLFdBQVcsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25DLENBQUM7YUFBTSxDQUFDO1lBQ0osZ0JBQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxJQUFJLEdBQUcsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xGLENBQUM7SUFDTCxDQUFDO0lBR00sT0FBTztRQUNWLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFFBQTJCO1FBQ3RELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4Qyw0REFBNEQ7SUFDaEUsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0NBQ0o7QUE3QkQsc0NBNkJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xuaW1wb3J0IHsgQ29udGFpbmVyRW50aXR5IH0gZnJvbSBcIi4vY29udGFpbmVyX2VudGl0eVwiO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIi4uLy4uLy4uLy4uL2FuYWx5emVcIjtcbmltcG9ydCB7IE1vZHVsZSB9IGZyb20gXCIuL21vZHVsZVwiO1xuXG5leHBvcnQgY2xhc3MgU2NvcGluZ0VudGl0eSBleHRlbmRzIENvbnRhaW5lckVudGl0eSB7XG5cbiAgICBwcml2YXRlIF9tb2R1bGVzOiBTZXQ8TW9kdWxlPiA9IG5ldyBTZXQoKTtcblxuICAgIHB1YmxpYyBhZGRNb2R1bGUoY2hpbGRNb2R1bGU6IE1vZHVsZSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX21vZHVsZXMuaGFzKGNoaWxkTW9kdWxlKSkge1xuICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKFwiQWRkaW5nIG1vZHVsZSBcIiArIGNoaWxkTW9kdWxlLm5hbWUgKyBcIiB0byBcIiArIHRoaXMubmFtZSk7XG4gICAgICAgICAgICB0aGlzLl9tb2R1bGVzLmFkZChjaGlsZE1vZHVsZSk7XG4gICAgICAgICAgICBjaGlsZE1vZHVsZS5wYXJlbnRTY29wZSA9IHRoaXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsb2dnZXIuZGVidWcoXCJNb2R1bGUgXCIgKyBjaGlsZE1vZHVsZS5uYW1lICsgXCIgYWxyZWFkeSBhZGRlZCB0byBcIiArIHRoaXMubmFtZSk7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiU2NvcGluZ0VudGl0eVwiLCB0aGlzKTtcbiAgICAgICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcbiAgICAgICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xuICAgICAgICAvLyAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcIm5hbWVzcGFjZXNcIiwgdGhpcy5nZXRNb2R1bGVzKCkpO1xuICAgIH1cblxuICAgIGdldCBtb2R1bGVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbW9kdWxlcztcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ScriptEntity = void 0;
|
|
4
|
+
const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
|
|
5
|
+
const scoping_entity_1 = require("./scoping_entity");
|
|
6
|
+
class ScriptEntity extends scoping_entity_1.ScopingEntity {
|
|
7
|
+
getJSON() {
|
|
8
|
+
const json = new famix_JSON_exporter_1.FamixJSONExporter("ScriptEntity", this);
|
|
9
|
+
this.addPropertiesToExporter(json);
|
|
10
|
+
return json.getJSON();
|
|
11
|
+
}
|
|
12
|
+
addPropertiesToExporter(exporter) {
|
|
13
|
+
super.addPropertiesToExporter(exporter);
|
|
14
|
+
}
|
|
15
|
+
get numberOfLinesOfText() {
|
|
16
|
+
return this._numberOfLinesOfText;
|
|
17
|
+
}
|
|
18
|
+
set numberOfLinesOfText(numberOfLinesOfText) {
|
|
19
|
+
this._numberOfLinesOfText = numberOfLinesOfText;
|
|
20
|
+
}
|
|
21
|
+
get numberOfCharacters() {
|
|
22
|
+
return this._numberOfCharacters;
|
|
23
|
+
}
|
|
24
|
+
set numberOfCharacters(numberOfCharacters) {
|
|
25
|
+
this._numberOfCharacters = numberOfCharacters;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.ScriptEntity = ScriptEntity;
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0X2VudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvbW9kZWwvZmFtaXgvc2NyaXB0X2VudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFDOUQscURBQWlEO0FBRWpELE1BQWEsWUFBYSxTQUFRLDhCQUFhO0lBS3BDLE9BQU87UUFDVixNQUFNLElBQUksR0FBc0IsSUFBSSx1Q0FBaUIsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ25CLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLG1CQUFtQixDQUFDLG1CQUEyQjtRQUMvQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsbUJBQW1CLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLGtCQUFrQixDQUFDLGtCQUEwQjtRQUM3QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsa0JBQWtCLENBQUM7SUFDbEQsQ0FBQztDQUNKO0FBOUJELG9DQThCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcbmltcG9ydCB7IFNjb3BpbmdFbnRpdHkgfSBmcm9tIFwiLi9zY29waW5nX2VudGl0eVwiO1xuXG5leHBvcnQgY2xhc3MgU2NyaXB0RW50aXR5IGV4dGVuZHMgU2NvcGluZ0VudGl0eSB7XG5cbiAgICBwcml2YXRlIF9udW1iZXJPZkxpbmVzT2ZUZXh0ITogbnVtYmVyO1xuICAgIHByaXZhdGUgX251bWJlck9mQ2hhcmFjdGVycyE6IG51bWJlcjtcblxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiU2NyaXB0RW50aXR5XCIsIHRoaXMpO1xuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xuICAgICAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgICAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XG4gICAgfVxuXG4gICAgZ2V0IG51bWJlck9mTGluZXNPZlRleHQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9udW1iZXJPZkxpbmVzT2ZUZXh0O1xuICAgIH1cblxuICAgIHNldCBudW1iZXJPZkxpbmVzT2ZUZXh0KG51bWJlck9mTGluZXNPZlRleHQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9udW1iZXJPZkxpbmVzT2ZUZXh0ID0gbnVtYmVyT2ZMaW5lc09mVGV4dDtcbiAgICB9XG5cbiAgICBnZXQgbnVtYmVyT2ZDaGFyYWN0ZXJzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbnVtYmVyT2ZDaGFyYWN0ZXJzO1xuICAgIH1cblxuICAgIHNldCBudW1iZXJPZkNoYXJhY3RlcnMobnVtYmVyT2ZDaGFyYWN0ZXJzOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fbnVtYmVyT2ZDaGFyYWN0ZXJzID0gbnVtYmVyT2ZDaGFyYWN0ZXJzO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SourceAnchor = void 0;
|
|
4
|
+
const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
|
|
5
|
+
const entity_1 = require("./entity");
|
|
6
|
+
class SourceAnchor extends entity_1.Entity {
|
|
7
|
+
getJSON() {
|
|
8
|
+
const json = new famix_JSON_exporter_1.FamixJSONExporter("SourceAnchor", this);
|
|
9
|
+
this.addPropertiesToExporter(json);
|
|
10
|
+
return json.getJSON();
|
|
11
|
+
}
|
|
12
|
+
addPropertiesToExporter(exporter) {
|
|
13
|
+
super.addPropertiesToExporter(exporter);
|
|
14
|
+
exporter.addProperty("element", this.element);
|
|
15
|
+
}
|
|
16
|
+
get element() {
|
|
17
|
+
return this._element;
|
|
18
|
+
}
|
|
19
|
+
set element(element) {
|
|
20
|
+
if (this._element === undefined) {
|
|
21
|
+
this._element = element;
|
|
22
|
+
element.sourceAnchor = this;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.SourceAnchor = SourceAnchor;
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlX2FuY2hvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvbW9kZWwvZmFtaXgvc291cmNlX2FuY2hvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFDOUQscUNBQWtDO0FBR2xDLE1BQWEsWUFBYSxTQUFRLGVBQU07SUFJN0IsT0FBTztRQUNWLE1BQU0sSUFBSSxHQUFzQixJQUFJLHVDQUFpQixDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFFBQTJCO1FBQ3RELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxRQUFRLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1lBQ3hCLE9BQU8sQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLENBQUM7SUFDTCxDQUFDO0NBQ0o7QUF6QkQsb0NBeUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSBcIi4vZW50aXR5XCI7XG5pbXBvcnQgeyBTb3VyY2VkRW50aXR5IH0gZnJvbSBcIi4vc291cmNlZF9lbnRpdHlcIjtcblxuZXhwb3J0IGNsYXNzIFNvdXJjZUFuY2hvciBleHRlbmRzIEVudGl0eSB7XG5cbiAgICBwcml2YXRlIF9lbGVtZW50ITogU291cmNlZEVudGl0eTtcblxuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGpzb246IEZhbWl4SlNPTkV4cG9ydGVyID0gbmV3IEZhbWl4SlNPTkV4cG9ydGVyKFwiU291cmNlQW5jaG9yXCIsIHRoaXMpO1xuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xuICAgICAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgICAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiZWxlbWVudFwiLCB0aGlzLmVsZW1lbnQpO1xuICAgIH1cblxuICAgIGdldCBlbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudDtcbiAgICB9XG5cbiAgICBzZXQgZWxlbWVudChlbGVtZW50OiBTb3VyY2VkRW50aXR5KSB7XG4gICAgICAgIGlmICh0aGlzLl9lbGVtZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICAgICAgZWxlbWVudC5zb3VyY2VBbmNob3IgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SourceLanguage = void 0;
|
|
4
|
+
const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
|
|
5
|
+
const entity_1 = require("./entity");
|
|
6
|
+
class SourceLanguage extends entity_1.Entity {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this._sourcedEntities = new Set();
|
|
10
|
+
}
|
|
11
|
+
// name of the source language
|
|
12
|
+
get name() {
|
|
13
|
+
return "TypeScript";
|
|
14
|
+
}
|
|
15
|
+
addSourcedEntity(sourcedEntity) {
|
|
16
|
+
if (!this._sourcedEntities.has(sourcedEntity)) {
|
|
17
|
+
this._sourcedEntities.add(sourcedEntity);
|
|
18
|
+
sourcedEntity.declaredSourceLanguage = this;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
getJSON() {
|
|
22
|
+
const json = new famix_JSON_exporter_1.FamixJSONExporter("SourceLanguage", this);
|
|
23
|
+
this.addPropertiesToExporter(json);
|
|
24
|
+
return json.getJSON();
|
|
25
|
+
}
|
|
26
|
+
addPropertiesToExporter(exporter) {
|
|
27
|
+
super.addPropertiesToExporter(exporter);
|
|
28
|
+
exporter.addProperty("sourcedEntities", this.sourcedEntities);
|
|
29
|
+
}
|
|
30
|
+
get sourcedEntities() {
|
|
31
|
+
return this._sourcedEntities;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.SourceLanguage = SourceLanguage;
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlX2xhbmd1YWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9mYW1peC9tb2RlbC9mYW1peC9zb3VyY2VfbGFuZ3VhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUVBQThEO0FBQzlELHFDQUFrQztBQUdsQyxNQUFhLGNBQWUsU0FBUSxlQUFNO0lBQTFDOztRQUVZLHFCQUFnQixHQUF1QixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBNEI3RCxDQUFDO0lBMUJHLDhCQUE4QjtJQUM5QixJQUFJLElBQUk7UUFDSixPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0lBRU0sZ0JBQWdCLENBQUMsYUFBNEI7UUFDaEQsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3pDLGFBQWEsQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7UUFDaEQsQ0FBQztJQUNMLENBQUM7SUFFTSxPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7Q0FDSjtBQTlCRCx3Q0E4QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEpTT05FeHBvcnRlciB9IGZyb20gXCIuLi8uLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tIFwiLi9lbnRpdHlcIjtcbmltcG9ydCB7IFNvdXJjZWRFbnRpdHkgfSBmcm9tIFwiLi9zb3VyY2VkX2VudGl0eVwiO1xuXG5leHBvcnQgY2xhc3MgU291cmNlTGFuZ3VhZ2UgZXh0ZW5kcyBFbnRpdHkge1xuXG4gICAgcHJpdmF0ZSBfc291cmNlZEVudGl0aWVzOiBTZXQ8U291cmNlZEVudGl0eT4gPSBuZXcgU2V0KCk7XG5cbiAgICAvLyBuYW1lIG9mIHRoZSBzb3VyY2UgbGFuZ3VhZ2VcbiAgICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gXCJUeXBlU2NyaXB0XCI7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFNvdXJjZWRFbnRpdHkoc291cmNlZEVudGl0eTogU291cmNlZEVudGl0eSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX3NvdXJjZWRFbnRpdGllcy5oYXMoc291cmNlZEVudGl0eSkpIHtcbiAgICAgICAgICAgIHRoaXMuX3NvdXJjZWRFbnRpdGllcy5hZGQoc291cmNlZEVudGl0eSk7XG4gICAgICAgICAgICBzb3VyY2VkRW50aXR5LmRlY2xhcmVkU291cmNlTGFuZ3VhZ2UgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJTb3VyY2VMYW5ndWFnZVwiLCB0aGlzKTtcbiAgICAgICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcbiAgICAgICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcInNvdXJjZWRFbnRpdGllc1wiLCB0aGlzLnNvdXJjZWRFbnRpdGllcyk7XG4gICAgfVxuXG4gICAgZ2V0IHNvdXJjZWRFbnRpdGllcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZWRFbnRpdGllcztcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SourcedEntity = void 0;
|
|
4
|
+
const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
|
|
5
|
+
const entity_1 = require("./entity");
|
|
6
|
+
const analyze_1 = require("../../../../analyze");
|
|
7
|
+
class SourcedEntity extends entity_1.Entity {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this._comments = new Set();
|
|
11
|
+
}
|
|
12
|
+
addComment(comment) {
|
|
13
|
+
if (!this._comments.has(comment)) {
|
|
14
|
+
this._comments.add(comment);
|
|
15
|
+
comment.container = this;
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
analyze_1.logger.debug("Adding comment that is already in comments: " + comment.getJSON() + " to " + this.getJSON());
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
getJSON() {
|
|
22
|
+
const json = new famix_JSON_exporter_1.FamixJSONExporter("SourcedEntity", this);
|
|
23
|
+
this.addPropertiesToExporter(json);
|
|
24
|
+
return json.getJSON();
|
|
25
|
+
}
|
|
26
|
+
addPropertiesToExporter(exporter) {
|
|
27
|
+
super.addPropertiesToExporter(exporter);
|
|
28
|
+
exporter.addProperty("isStub", this.isStub);
|
|
29
|
+
exporter.addProperty("sourceAnchor", this.sourceAnchor);
|
|
30
|
+
exporter.addProperty("comments", this.comments);
|
|
31
|
+
exporter.addProperty("declaredSourceLanguage", this.declaredSourceLanguage);
|
|
32
|
+
}
|
|
33
|
+
get isStub() {
|
|
34
|
+
return this._isStub;
|
|
35
|
+
}
|
|
36
|
+
set isStub(isStub) {
|
|
37
|
+
this._isStub = isStub;
|
|
38
|
+
}
|
|
39
|
+
get sourceAnchor() {
|
|
40
|
+
return this._sourceAnchor;
|
|
41
|
+
}
|
|
42
|
+
set sourceAnchor(sourceAnchor) {
|
|
43
|
+
if (this._sourceAnchor === undefined) {
|
|
44
|
+
this._sourceAnchor = sourceAnchor;
|
|
45
|
+
sourceAnchor.element = this;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
get comments() {
|
|
49
|
+
return this._comments;
|
|
50
|
+
}
|
|
51
|
+
get declaredSourceLanguage() {
|
|
52
|
+
return this._declaredSourceLanguage;
|
|
53
|
+
}
|
|
54
|
+
set declaredSourceLanguage(declaredSourceLanguage) {
|
|
55
|
+
this._declaredSourceLanguage = declaredSourceLanguage;
|
|
56
|
+
declaredSourceLanguage.addSourcedEntity(this);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.SourcedEntity = SourcedEntity;
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlZF9lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L3NvdXJjZWRfZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUU5RCxxQ0FBa0M7QUFHbEMsaURBQTZDO0FBRTdDLE1BQWEsYUFBYyxTQUFRLGVBQU07SUFBekM7O1FBSVksY0FBUyxHQUFpQixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBMERoRCxDQUFDO0lBeERVLFVBQVUsQ0FBQyxPQUFnQjtRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM1QixPQUFPLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO2FBQU0sQ0FBQztZQUNKLGdCQUFNLENBQUMsS0FBSyxDQUFDLDhDQUE4QyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDL0csQ0FBQztJQUNMLENBQUM7SUFJTSxPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDdEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QyxRQUFRLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hELFFBQVEsQ0FBQyxXQUFXLENBQUMsd0JBQXdCLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsTUFBZTtRQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxZQUEwQjtRQUN2QyxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUM7WUFDbEMsWUFBWSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDaEMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksc0JBQXNCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLHNCQUFzQixDQUFDLHNCQUFzQztRQUM3RCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsc0JBQXNCLENBQUM7UUFDdEQsc0JBQXNCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEQsQ0FBQztDQUNKO0FBOURELHNDQThEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcbmltcG9ydCB7IFNvdXJjZUxhbmd1YWdlIH0gZnJvbSBcIi4vc291cmNlX2xhbmd1YWdlXCI7XG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tIFwiLi9lbnRpdHlcIjtcbmltcG9ydCB7IENvbW1lbnQgfSBmcm9tIFwiLi9jb21tZW50XCI7XG5pbXBvcnQgeyBTb3VyY2VBbmNob3IgfSBmcm9tIFwiLi9zb3VyY2VfYW5jaG9yXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiLi4vLi4vLi4vLi4vYW5hbHl6ZVwiO1xuXG5leHBvcnQgY2xhc3MgU291cmNlZEVudGl0eSBleHRlbmRzIEVudGl0eSB7XG5cbiAgICBwcml2YXRlIF9pc1N0dWIhOiBib29sZWFuO1xuICAgIHByaXZhdGUgX3NvdXJjZUFuY2hvciE6IFNvdXJjZUFuY2hvcjtcbiAgICBwcml2YXRlIF9jb21tZW50czogU2V0PENvbW1lbnQ+ID0gbmV3IFNldCgpO1xuXG4gICAgcHVibGljIGFkZENvbW1lbnQoY29tbWVudDogQ29tbWVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2NvbW1lbnRzLmhhcyhjb21tZW50KSkge1xuICAgICAgICAgICAgdGhpcy5fY29tbWVudHMuYWRkKGNvbW1lbnQpO1xuICAgICAgICAgICAgY29tbWVudC5jb250YWluZXIgPSB0aGlzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKFwiQWRkaW5nIGNvbW1lbnQgdGhhdCBpcyBhbHJlYWR5IGluIGNvbW1lbnRzOiBcIiArIGNvbW1lbnQuZ2V0SlNPTigpICsgXCIgdG8gXCIgKyB0aGlzLmdldEpTT04oKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9kZWNsYXJlZFNvdXJjZUxhbmd1YWdlITogU291cmNlTGFuZ3VhZ2U7XG5cbiAgICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIlNvdXJjZWRFbnRpdHlcIiwgdGhpcyk7XG4gICAgICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XG4gICAgICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXI6IEZhbWl4SlNPTkV4cG9ydGVyKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJpc1N0dWJcIiwgdGhpcy5pc1N0dWIpO1xuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcInNvdXJjZUFuY2hvclwiLCB0aGlzLnNvdXJjZUFuY2hvcik7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiY29tbWVudHNcIiwgdGhpcy5jb21tZW50cyk7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiZGVjbGFyZWRTb3VyY2VMYW5ndWFnZVwiLCB0aGlzLmRlY2xhcmVkU291cmNlTGFuZ3VhZ2UpO1xuICAgIH1cblxuICAgIGdldCBpc1N0dWIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1N0dWI7XG4gICAgfVxuXG4gICAgc2V0IGlzU3R1Yihpc1N0dWI6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faXNTdHViID0gaXNTdHViO1xuICAgIH1cblxuICAgIGdldCBzb3VyY2VBbmNob3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zb3VyY2VBbmNob3I7XG4gICAgfVxuXG4gICAgc2V0IHNvdXJjZUFuY2hvcihzb3VyY2VBbmNob3I6IFNvdXJjZUFuY2hvcikge1xuICAgICAgICBpZiAodGhpcy5fc291cmNlQW5jaG9yID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3NvdXJjZUFuY2hvciA9IHNvdXJjZUFuY2hvcjtcbiAgICAgICAgICAgIHNvdXJjZUFuY2hvci5lbGVtZW50ID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBjb21tZW50cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbW1lbnRzO1xuICAgIH1cblxuICAgIGdldCBkZWNsYXJlZFNvdXJjZUxhbmd1YWdlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVjbGFyZWRTb3VyY2VMYW5ndWFnZTtcbiAgICB9XG5cbiAgICBzZXQgZGVjbGFyZWRTb3VyY2VMYW5ndWFnZShkZWNsYXJlZFNvdXJjZUxhbmd1YWdlOiBTb3VyY2VMYW5ndWFnZSkge1xuICAgICAgICB0aGlzLl9kZWNsYXJlZFNvdXJjZUxhbmd1YWdlID0gZGVjbGFyZWRTb3VyY2VMYW5ndWFnZTtcbiAgICAgICAgZGVjbGFyZWRTb3VyY2VMYW5ndWFnZS5hZGRTb3VyY2VkRW50aXR5KHRoaXMpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StructuralEntity = void 0;
|
|
4
|
+
const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
|
|
5
|
+
const named_entity_1 = require("./named_entity");
|
|
6
|
+
class StructuralEntity extends named_entity_1.NamedEntity {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this._incomingAccesses = new Set();
|
|
10
|
+
}
|
|
11
|
+
addIncomingAccess(incomingAccess) {
|
|
12
|
+
if (!this._incomingAccesses.has(incomingAccess)) {
|
|
13
|
+
this._incomingAccesses.add(incomingAccess);
|
|
14
|
+
incomingAccess.variable = this;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
getJSON() {
|
|
18
|
+
const json = new famix_JSON_exporter_1.FamixJSONExporter("StructuralEntity", this);
|
|
19
|
+
this.addPropertiesToExporter(json);
|
|
20
|
+
return json.getJSON();
|
|
21
|
+
}
|
|
22
|
+
addPropertiesToExporter(exporter) {
|
|
23
|
+
super.addPropertiesToExporter(exporter);
|
|
24
|
+
exporter.addProperty("incomingAccesses", this.incomingAccesses);
|
|
25
|
+
exporter.addProperty("declaredType", this.declaredType);
|
|
26
|
+
}
|
|
27
|
+
get incomingAccesses() {
|
|
28
|
+
return this._incomingAccesses;
|
|
29
|
+
}
|
|
30
|
+
get declaredType() {
|
|
31
|
+
return this._declaredType;
|
|
32
|
+
}
|
|
33
|
+
set declaredType(declaredType) {
|
|
34
|
+
this._declaredType = declaredType;
|
|
35
|
+
declaredType.addStructureWithDeclaredType(this);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.StructuralEntity = StructuralEntity;
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJhbF9lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L3N0cnVjdHVyYWxfZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUc5RCxpREFBNkM7QUFFN0MsTUFBYSxnQkFBaUIsU0FBUSwwQkFBVztJQUFqRDs7UUFFWSxzQkFBaUIsR0FBZ0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQW1DdkQsQ0FBQztJQWpDVSxpQkFBaUIsQ0FBQyxjQUFzQjtRQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDM0MsY0FBYyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDbkMsQ0FBQztJQUNMLENBQUM7SUFJTSxPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNoRSxRQUFRLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksWUFBWSxDQUFDLFlBQWtCO1FBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLFlBQVksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0o7QUFyQ0QsNENBcUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gXCIuL3R5cGVcIjtcbmltcG9ydCB7IEFjY2VzcyB9IGZyb20gXCIuL2FjY2Vzc1wiO1xuaW1wb3J0IHsgTmFtZWRFbnRpdHkgfSBmcm9tIFwiLi9uYW1lZF9lbnRpdHlcIjtcblxuZXhwb3J0IGNsYXNzIFN0cnVjdHVyYWxFbnRpdHkgZXh0ZW5kcyBOYW1lZEVudGl0eSB7XG5cbiAgICBwcml2YXRlIF9pbmNvbWluZ0FjY2Vzc2VzOiBTZXQ8QWNjZXNzPiA9IG5ldyBTZXQoKTtcblxuICAgIHB1YmxpYyBhZGRJbmNvbWluZ0FjY2VzcyhpbmNvbWluZ0FjY2VzczogQWNjZXNzKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5faW5jb21pbmdBY2Nlc3Nlcy5oYXMoaW5jb21pbmdBY2Nlc3MpKSB7XG4gICAgICAgICAgICB0aGlzLl9pbmNvbWluZ0FjY2Vzc2VzLmFkZChpbmNvbWluZ0FjY2Vzcyk7XG4gICAgICAgICAgICBpbmNvbWluZ0FjY2Vzcy52YXJpYWJsZSA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9kZWNsYXJlZFR5cGUhOiBUeXBlO1xuXG4gICAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJTdHJ1Y3R1cmFsRW50aXR5XCIsIHRoaXMpO1xuICAgICAgICB0aGlzLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGpzb24pO1xuICAgICAgICByZXR1cm4ganNvbi5nZXRKU09OKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyOiBGYW1peEpTT05FeHBvcnRlcik6IHZvaWQge1xuICAgICAgICBzdXBlci5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcik7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiaW5jb21pbmdBY2Nlc3Nlc1wiLCB0aGlzLmluY29taW5nQWNjZXNzZXMpO1xuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcImRlY2xhcmVkVHlwZVwiLCB0aGlzLmRlY2xhcmVkVHlwZSk7XG4gICAgfVxuXG4gICAgZ2V0IGluY29taW5nQWNjZXNzZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbmNvbWluZ0FjY2Vzc2VzO1xuICAgIH1cblxuICAgIGdldCBkZWNsYXJlZFR5cGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZWNsYXJlZFR5cGU7XG4gICAgfVxuXG4gICAgc2V0IGRlY2xhcmVkVHlwZShkZWNsYXJlZFR5cGU6IFR5cGUpIHtcbiAgICAgICAgdGhpcy5fZGVjbGFyZWRUeXBlID0gZGVjbGFyZWRUeXBlO1xuICAgICAgICBkZWNsYXJlZFR5cGUuYWRkU3RydWN0dXJlV2l0aERlY2xhcmVkVHlwZSh0aGlzKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Type = void 0;
|
|
4
|
+
const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
|
|
5
|
+
const container_entity_1 = require("./container_entity");
|
|
6
|
+
class Type extends container_entity_1.ContainerEntity {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this._typeAliases = new Set();
|
|
10
|
+
this._structuresWithDeclaredType = new Set();
|
|
11
|
+
this._behavioralEntitiesWithDeclaredType = new Set();
|
|
12
|
+
this._incomingReferences = new Set();
|
|
13
|
+
}
|
|
14
|
+
addTypeAlias(typeAlias) {
|
|
15
|
+
if (!this._typeAliases.has(typeAlias)) {
|
|
16
|
+
this._typeAliases.add(typeAlias);
|
|
17
|
+
typeAlias.aliasedEntity = this;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
addStructureWithDeclaredType(structureWithDeclaredType) {
|
|
21
|
+
if (!this._structuresWithDeclaredType.has(structureWithDeclaredType)) {
|
|
22
|
+
this._structuresWithDeclaredType.add(structureWithDeclaredType);
|
|
23
|
+
structureWithDeclaredType.declaredType = this;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
addBehavioralEntityWithDeclaredType(behavioralEntityWithDeclaredType) {
|
|
27
|
+
if (!this._behavioralEntitiesWithDeclaredType.has(behavioralEntityWithDeclaredType)) {
|
|
28
|
+
this._behavioralEntitiesWithDeclaredType.add(behavioralEntityWithDeclaredType);
|
|
29
|
+
behavioralEntityWithDeclaredType.declaredType = this;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
addIncomingReference(incomingReference) {
|
|
33
|
+
if (!this._incomingReferences.has(incomingReference)) {
|
|
34
|
+
this._incomingReferences.add(incomingReference);
|
|
35
|
+
incomingReference.target = this;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
getJSON() {
|
|
39
|
+
const json = new famix_JSON_exporter_1.FamixJSONExporter("Type", this);
|
|
40
|
+
this.addPropertiesToExporter(json);
|
|
41
|
+
return json.getJSON();
|
|
42
|
+
}
|
|
43
|
+
addPropertiesToExporter(exporter) {
|
|
44
|
+
super.addPropertiesToExporter(exporter);
|
|
45
|
+
exporter.addProperty("typeContainer", this.container);
|
|
46
|
+
/* unsupported properties in MM so far */
|
|
47
|
+
// exporter.addProperty("typeAliases", this.getTypeAliases());
|
|
48
|
+
// exporter.addProperty("structuresWithDeclaredType", this.getStructuresWithDeclaredType());
|
|
49
|
+
// exporter.addProperty("behavioralEntitiesWithDeclaredType", this.getBehavioralEntitiesWithDeclaredType());
|
|
50
|
+
exporter.addProperty("incomingReferences", this.incomingReferences);
|
|
51
|
+
}
|
|
52
|
+
get container() {
|
|
53
|
+
return this._container;
|
|
54
|
+
}
|
|
55
|
+
set container(container) {
|
|
56
|
+
this._container = container;
|
|
57
|
+
container.addType(this);
|
|
58
|
+
}
|
|
59
|
+
get typeAliases() {
|
|
60
|
+
return this._typeAliases;
|
|
61
|
+
}
|
|
62
|
+
get structuresWithDeclaredType() {
|
|
63
|
+
return this._structuresWithDeclaredType;
|
|
64
|
+
}
|
|
65
|
+
get behavioralEntitiesWithDeclaredType() {
|
|
66
|
+
return this._behavioralEntitiesWithDeclaredType;
|
|
67
|
+
}
|
|
68
|
+
get incomingReferences() {
|
|
69
|
+
return this._incomingReferences;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
exports.Type = Type;
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZmFtaXgvbW9kZWwvZmFtaXgvdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBOEQ7QUFFOUQseURBQXFEO0FBS3JELE1BQWEsSUFBSyxTQUFRLGtDQUFlO0lBQXpDOztRQUdZLGlCQUFZLEdBQWUsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVNyQyxnQ0FBMkIsR0FBMEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVMvRCx3Q0FBbUMsR0FBMEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVN2RSx3QkFBbUIsR0FBbUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQWlENUQsQ0FBQztJQTFFVSxZQUFZLENBQUMsU0FBZ0I7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakMsU0FBUyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDbkMsQ0FBQztJQUNMLENBQUM7SUFJTSw0QkFBNEIsQ0FBQyx5QkFBMkM7UUFDM0UsSUFBSSxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsRUFBRSxDQUFDO1lBQ25FLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztZQUNoRSx5QkFBeUIsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ2xELENBQUM7SUFDTCxDQUFDO0lBSU0sbUNBQW1DLENBQUMsZ0NBQWtEO1FBQ3pGLElBQUksQ0FBQyxJQUFJLENBQUMsbUNBQW1DLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxDQUFDLEVBQUUsQ0FBQztZQUNsRixJQUFJLENBQUMsbUNBQW1DLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7WUFDL0UsZ0NBQWdDLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6RCxDQUFDO0lBQ0wsQ0FBQztJQUlNLG9CQUFvQixDQUFDLGlCQUE0QjtRQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ2hELGlCQUFpQixDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDcEMsQ0FBQztJQUNMLENBQUM7SUFFTSxPQUFPO1FBQ1YsTUFBTSxJQUFJLEdBQXNCLElBQUksdUNBQWlCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU0sdUJBQXVCLENBQUMsUUFBMkI7UUFDdEQsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLFFBQVEsQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0RCx5Q0FBeUM7UUFDekMsOERBQThEO1FBQzlELDRGQUE0RjtRQUM1Riw0R0FBNEc7UUFDNUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLFNBQVMsQ0FBQyxTQUEwQjtRQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUM1QixTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksMEJBQTBCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLGtDQUFrQztRQUNsQyxPQUFPLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDcEMsQ0FBQztDQUNKO0FBL0VELG9CQStFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZhbWl4SlNPTkV4cG9ydGVyIH0gZnJvbSBcIi4uLy4uL2ZhbWl4X0pTT05fZXhwb3J0ZXJcIjtcbmltcG9ydCB7IFN0cnVjdHVyYWxFbnRpdHkgfSBmcm9tIFwiLi9zdHJ1Y3R1cmFsX2VudGl0eVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyRW50aXR5IH0gZnJvbSBcIi4vY29udGFpbmVyX2VudGl0eVwiO1xuaW1wb3J0IHsgUmVmZXJlbmNlIH0gZnJvbSBcIi4vcmVmZXJlbmNlXCI7XG5pbXBvcnQgeyBCZWhhdmlvcmFsRW50aXR5IH0gZnJvbSBcIi4vYmVoYXZpb3JhbF9lbnRpdHlcIjtcbmltcG9ydCB7IEFsaWFzIH0gZnJvbSBcIi4vYWxpYXNcIjtcblxuZXhwb3J0IGNsYXNzIFR5cGUgZXh0ZW5kcyBDb250YWluZXJFbnRpdHkge1xuXG4gICAgcHJpdmF0ZSBfY29udGFpbmVyITogQ29udGFpbmVyRW50aXR5O1xuICAgIHByaXZhdGUgX3R5cGVBbGlhc2VzOiBTZXQ8QWxpYXM+ID0gbmV3IFNldCgpO1xuXG4gICAgcHVibGljIGFkZFR5cGVBbGlhcyh0eXBlQWxpYXM6IEFsaWFzKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fdHlwZUFsaWFzZXMuaGFzKHR5cGVBbGlhcykpIHtcbiAgICAgICAgICAgIHRoaXMuX3R5cGVBbGlhc2VzLmFkZCh0eXBlQWxpYXMpO1xuICAgICAgICAgICAgdHlwZUFsaWFzLmFsaWFzZWRFbnRpdHkgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc3RydWN0dXJlc1dpdGhEZWNsYXJlZFR5cGU6IFNldDxTdHJ1Y3R1cmFsRW50aXR5PiA9IG5ldyBTZXQoKTtcblxuICAgIHB1YmxpYyBhZGRTdHJ1Y3R1cmVXaXRoRGVjbGFyZWRUeXBlKHN0cnVjdHVyZVdpdGhEZWNsYXJlZFR5cGU6IFN0cnVjdHVyYWxFbnRpdHkpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9zdHJ1Y3R1cmVzV2l0aERlY2xhcmVkVHlwZS5oYXMoc3RydWN0dXJlV2l0aERlY2xhcmVkVHlwZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX3N0cnVjdHVyZXNXaXRoRGVjbGFyZWRUeXBlLmFkZChzdHJ1Y3R1cmVXaXRoRGVjbGFyZWRUeXBlKTtcbiAgICAgICAgICAgIHN0cnVjdHVyZVdpdGhEZWNsYXJlZFR5cGUuZGVjbGFyZWRUeXBlID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2JlaGF2aW9yYWxFbnRpdGllc1dpdGhEZWNsYXJlZFR5cGU6IFNldDxCZWhhdmlvcmFsRW50aXR5PiA9IG5ldyBTZXQoKTtcblxuICAgIHB1YmxpYyBhZGRCZWhhdmlvcmFsRW50aXR5V2l0aERlY2xhcmVkVHlwZShiZWhhdmlvcmFsRW50aXR5V2l0aERlY2xhcmVkVHlwZTogQmVoYXZpb3JhbEVudGl0eSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2JlaGF2aW9yYWxFbnRpdGllc1dpdGhEZWNsYXJlZFR5cGUuaGFzKGJlaGF2aW9yYWxFbnRpdHlXaXRoRGVjbGFyZWRUeXBlKSkge1xuICAgICAgICAgICAgdGhpcy5fYmVoYXZpb3JhbEVudGl0aWVzV2l0aERlY2xhcmVkVHlwZS5hZGQoYmVoYXZpb3JhbEVudGl0eVdpdGhEZWNsYXJlZFR5cGUpO1xuICAgICAgICAgICAgYmVoYXZpb3JhbEVudGl0eVdpdGhEZWNsYXJlZFR5cGUuZGVjbGFyZWRUeXBlID0gdGhpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2luY29taW5nUmVmZXJlbmNlczogU2V0PFJlZmVyZW5jZT4gPSBuZXcgU2V0KCk7XG5cbiAgICBwdWJsaWMgYWRkSW5jb21pbmdSZWZlcmVuY2UoaW5jb21pbmdSZWZlcmVuY2U6IFJlZmVyZW5jZSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2luY29taW5nUmVmZXJlbmNlcy5oYXMoaW5jb21pbmdSZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICB0aGlzLl9pbmNvbWluZ1JlZmVyZW5jZXMuYWRkKGluY29taW5nUmVmZXJlbmNlKTtcbiAgICAgICAgICAgIGluY29taW5nUmVmZXJlbmNlLnRhcmdldCA9IHRoaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0SlNPTigpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBqc29uOiBGYW1peEpTT05FeHBvcnRlciA9IG5ldyBGYW1peEpTT05FeHBvcnRlcihcIlR5cGVcIiwgdGhpcyk7XG4gICAgICAgIHRoaXMuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoanNvbik7XG4gICAgICAgIHJldHVybiBqc29uLmdldEpTT04oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXI6IEZhbWl4SlNPTkV4cG9ydGVyKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmFkZFByb3BlcnRpZXNUb0V4cG9ydGVyKGV4cG9ydGVyKTtcbiAgICAgICAgZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJ0eXBlQ29udGFpbmVyXCIsIHRoaXMuY29udGFpbmVyKTtcbiAgICAgICAgLyogdW5zdXBwb3J0ZWQgcHJvcGVydGllcyBpbiBNTSBzbyBmYXIgKi9cbiAgICAgICAgLy8gZXhwb3J0ZXIuYWRkUHJvcGVydHkoXCJ0eXBlQWxpYXNlc1wiLCB0aGlzLmdldFR5cGVBbGlhc2VzKCkpO1xuICAgICAgICAvLyBleHBvcnRlci5hZGRQcm9wZXJ0eShcInN0cnVjdHVyZXNXaXRoRGVjbGFyZWRUeXBlXCIsIHRoaXMuZ2V0U3RydWN0dXJlc1dpdGhEZWNsYXJlZFR5cGUoKSk7XG4gICAgICAgIC8vIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiYmVoYXZpb3JhbEVudGl0aWVzV2l0aERlY2xhcmVkVHlwZVwiLCB0aGlzLmdldEJlaGF2aW9yYWxFbnRpdGllc1dpdGhEZWNsYXJlZFR5cGUoKSk7XG4gICAgICAgIGV4cG9ydGVyLmFkZFByb3BlcnR5KFwiaW5jb21pbmdSZWZlcmVuY2VzXCIsIHRoaXMuaW5jb21pbmdSZWZlcmVuY2VzKTtcbiAgICB9XG5cbiAgICBnZXQgY29udGFpbmVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGFpbmVyO1xuICAgIH1cblxuICAgIHNldCBjb250YWluZXIoY29udGFpbmVyOiBDb250YWluZXJFbnRpdHkpIHtcbiAgICAgICAgdGhpcy5fY29udGFpbmVyID0gY29udGFpbmVyO1xuICAgICAgICBjb250YWluZXIuYWRkVHlwZSh0aGlzKTtcbiAgICB9XG5cbiAgICBnZXQgdHlwZUFsaWFzZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90eXBlQWxpYXNlcztcbiAgICB9XG5cbiAgICBnZXQgc3RydWN0dXJlc1dpdGhEZWNsYXJlZFR5cGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdHJ1Y3R1cmVzV2l0aERlY2xhcmVkVHlwZTtcbiAgICB9XG5cbiAgICBnZXQgYmVoYXZpb3JhbEVudGl0aWVzV2l0aERlY2xhcmVkVHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2JlaGF2aW9yYWxFbnRpdGllc1dpdGhEZWNsYXJlZFR5cGU7XG4gICAgfVxuXG4gICAgZ2V0IGluY29taW5nUmVmZXJlbmNlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luY29taW5nUmVmZXJlbmNlcztcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Variable = void 0;
|
|
4
|
+
const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
|
|
5
|
+
const structural_entity_1 = require("./structural_entity");
|
|
6
|
+
class Variable extends structural_entity_1.StructuralEntity {
|
|
7
|
+
getJSON() {
|
|
8
|
+
const json = new famix_JSON_exporter_1.FamixJSONExporter("Variable", this);
|
|
9
|
+
this.addPropertiesToExporter(json);
|
|
10
|
+
return json.getJSON();
|
|
11
|
+
}
|
|
12
|
+
addPropertiesToExporter(exporter) {
|
|
13
|
+
super.addPropertiesToExporter(exporter);
|
|
14
|
+
exporter.addProperty("parentBehaviouralEntity", this.parentContainerEntity);
|
|
15
|
+
}
|
|
16
|
+
get parentContainerEntity() {
|
|
17
|
+
return this._parentContainerEntity;
|
|
18
|
+
}
|
|
19
|
+
set parentContainerEntity(parentContainerEntity) {
|
|
20
|
+
this._parentContainerEntity = parentContainerEntity;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.Variable = Variable;
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L3ZhcmlhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1FQUE4RDtBQUU5RCwyREFBdUQ7QUFFdkQsTUFBYSxRQUFTLFNBQVEsb0NBQWdCO0lBSW5DLE9BQU87UUFDVixNQUFNLElBQUksR0FBc0IsSUFBSSx1Q0FBaUIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxRQUEyQjtRQUN0RCxLQUFLLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsSUFBSSxxQkFBcUI7UUFDckIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQUkscUJBQXFCLENBQUMscUJBQXNDO1FBQzVELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxxQkFBcUIsQ0FBQztJQUN4RCxDQUFDO0NBQ0o7QUF0QkQsNEJBc0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi4vLi4vZmFtaXhfSlNPTl9leHBvcnRlclwiO1xuaW1wb3J0IHsgQ29udGFpbmVyRW50aXR5IH0gZnJvbSBcIi4vY29udGFpbmVyX2VudGl0eVwiO1xuaW1wb3J0IHsgU3RydWN0dXJhbEVudGl0eSB9IGZyb20gXCIuL3N0cnVjdHVyYWxfZW50aXR5XCI7XG5cbmV4cG9ydCBjbGFzcyBWYXJpYWJsZSBleHRlbmRzIFN0cnVjdHVyYWxFbnRpdHkge1xuXG4gICAgcHJpdmF0ZSBfcGFyZW50Q29udGFpbmVyRW50aXR5ITogQ29udGFpbmVyRW50aXR5O1xuXG4gICAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QganNvbjogRmFtaXhKU09ORXhwb3J0ZXIgPSBuZXcgRmFtaXhKU09ORXhwb3J0ZXIoXCJWYXJpYWJsZVwiLCB0aGlzKTtcbiAgICAgICAgdGhpcy5hZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihqc29uKTtcbiAgICAgICAgcmV0dXJuIGpzb24uZ2V0SlNPTigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGRQcm9wZXJ0aWVzVG9FeHBvcnRlcihleHBvcnRlcjogRmFtaXhKU09ORXhwb3J0ZXIpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuYWRkUHJvcGVydGllc1RvRXhwb3J0ZXIoZXhwb3J0ZXIpO1xuICAgICAgICBleHBvcnRlci5hZGRQcm9wZXJ0eShcInBhcmVudEJlaGF2aW91cmFsRW50aXR5XCIsIHRoaXMucGFyZW50Q29udGFpbmVyRW50aXR5KTtcbiAgICB9XG5cbiAgICBnZXQgcGFyZW50Q29udGFpbmVyRW50aXR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFyZW50Q29udGFpbmVyRW50aXR5O1xuICAgIH1cblxuICAgIHNldCBwYXJlbnRDb250YWluZXJFbnRpdHkocGFyZW50Q29udGFpbmVyRW50aXR5OiBDb250YWluZXJFbnRpdHkpIHtcbiAgICAgICAgdGhpcy5fcGFyZW50Q29udGFpbmVyRW50aXR5ID0gcGFyZW50Q29udGFpbmVyRW50aXR5O1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -75,8 +75,8 @@ const calculate = (filePath) => {
|
|
|
75
75
|
throw new Error(`File "${filePath}" does not exists`);
|
|
76
76
|
}
|
|
77
77
|
const sourceText = (0, fs_1.readFileSync)(filePath).toString();
|
|
78
|
-
const source = (0, typescript_1.createSourceFile)(filePath, sourceText, typescript_1.ScriptTarget.ES2015);
|
|
78
|
+
const source = (0, typescript_1.createSourceFile)(filePath.toString(), sourceText, typescript_1.ScriptTarget.ES2015);
|
|
79
79
|
return calculateFromSource(source);
|
|
80
80
|
};
|
|
81
81
|
exports.calculate = calculate;
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ljbG9tYXRpYy1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cy1jb21wbGV4L2N5Y2xvbWF0aWMtc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7OztFQVlFOzs7QUFFRiwyQ0FBaUs7QUFDaksscUNBQTZDO0FBQzdDLDJCQUF3RDtBQUV4RCxNQUFNLFdBQVcsR0FBRyxDQUFDLElBQTZCLEVBQUUsRUFBRTtJQUNwRCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDaEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFBLHlCQUFZLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNoRyxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQztBQUVGLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxJQUFVLEVBQUUsRUFBRTtJQUN6QywyQkFBMkI7SUFDM0IsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEIsS0FBSyx1QkFBVSxDQUFDLFVBQVU7WUFDeEIsT0FBUSxJQUFtQixDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ3BELEtBQUssdUJBQVUsQ0FBQyxXQUFXLENBQUM7UUFDNUIsS0FBSyx1QkFBVSxDQUFDLHFCQUFxQixDQUFDO1FBQ3RDLEtBQUssdUJBQVUsQ0FBQyxXQUFXLENBQUM7UUFDNUIsS0FBSyx1QkFBVSxDQUFDLFlBQVksQ0FBQztRQUM3QixLQUFLLHVCQUFVLENBQUMsY0FBYyxDQUFDO1FBQy9CLEtBQUssdUJBQVUsQ0FBQyxjQUFjLENBQUM7UUFDL0IsS0FBSyx1QkFBVSxDQUFDLFdBQVcsQ0FBQztRQUM1QixLQUFLLHVCQUFVLENBQUMsY0FBYztZQUM1QixPQUFPLElBQUksQ0FBQztRQUVkLEtBQUssdUJBQVUsQ0FBQyxnQkFBZ0I7WUFDOUIsUUFBUyxJQUF5QixDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdEQsS0FBSyx1QkFBVSxDQUFDLFdBQVcsQ0FBQztnQkFDNUIsS0FBSyx1QkFBVSxDQUFDLHVCQUF1QjtvQkFDckMsT0FBTyxJQUFJLENBQUM7Z0JBQ2Q7b0JBQ0UsT0FBTyxLQUFLLENBQUM7WUFDakIsQ0FBQztRQUVIO1lBQ0UsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUNELDBCQUEwQjtBQUM1QixDQUFDLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUFHLENBQUMsR0FBUyxFQUFFLEVBQUU7SUFDeEMsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLE1BQU0sTUFBTSxHQUE4QixFQUFFLENBQUM7SUFDN0MsSUFBQSx5QkFBWSxFQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQyxJQUFJO1FBQ2hDLElBQUksSUFBQSw0QkFBa0IsRUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzdCLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQztZQUN2QixVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ2YsSUFBQSx5QkFBWSxFQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN2QixNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUM7WUFDM0MsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQztZQUMxQixVQUFVLEdBQUcsR0FBRyxDQUFDO1FBQ25CLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUM5QixVQUFVLElBQUksQ0FBQyxDQUFDO1lBQ2xCLENBQUM7WUFDRCxJQUFBLHlCQUFZLEVBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVLLE1BQU0sU0FBUyxHQUFHLENBQUMsUUFBa0IsRUFBRSxFQUFFO0lBQzlDLElBQUksQ0FBQyxJQUFBLGVBQVUsRUFBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsU0FBUyxRQUFRLG1CQUFtQixDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUNELE1BQU0sVUFBVSxHQUFHLElBQUEsaUJBQVksRUFBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyRCxNQUFNLE1BQU0sR0FBRyxJQUFBLDZCQUFnQixFQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxVQUFVLEVBQUUseUJBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0RixPQUFPLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3JDLENBQUMsQ0FBQztBQVBXLFFBQUEsU0FBUyxhQU9wQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5Qb3J0aW9ucyBvZiB0aGlzIGZpbGU6XG5cbk1JVCBMaWNlbnNlXG5cbkNvcHlyaWdodCAoYykgMjAxOCBBbmFuZCBVbmRhdmlhXG5cblBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cblRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cbiovXG5cbmltcG9ydCB7IGZvckVhY2hDaGlsZCwgaXNJZGVudGlmaWVyLCBTeW50YXhLaW5kLCBjcmVhdGVTb3VyY2VGaWxlLCBTY3JpcHRUYXJnZXQsIE5vZGUsIENhc2VDbGF1c2UsIEJpbmFyeUV4cHJlc3Npb24sIEZ1bmN0aW9uTGlrZURlY2xhcmF0aW9uIH0gZnJvbSAndHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uV2l0aEJvZHkgfSBmcm9tICd0c3V0aWxzJztcbmltcG9ydCB7IGV4aXN0c1N5bmMsIFBhdGhMaWtlLCByZWFkRmlsZVN5bmMgfSBmcm9tICdmcyc7XG5cbmNvbnN0IGdldE5vZGVOYW1lID0gKG5vZGU6IEZ1bmN0aW9uTGlrZURlY2xhcmF0aW9uKSA9PiB7XG4gIGNvbnN0IHsgbmFtZSwgcG9zLCBlbmQgfSA9IG5vZGU7XG4gIGNvbnN0IGtleSA9IG5hbWUgIT09IHVuZGVmaW5lZCAmJiBpc0lkZW50aWZpZXIobmFtZSkgPyBuYW1lLnRleHQgOiBKU09OLnN0cmluZ2lmeSh7IHBvcywgZW5kIH0pO1xuICByZXR1cm4ga2V5O1xufTtcblxuY29uc3QgaW5jcmVhc2VzQ29tcGxleGl0eSA9IChub2RlOiBOb2RlKSA9PiB7XG4gIC8qIGVzbGludC1kaXNhYmxlIGluZGVudCAqL1xuICBzd2l0Y2ggKG5vZGUua2luZCkge1xuICAgIGNhc2UgU3ludGF4S2luZC5DYXNlQ2xhdXNlOlxuICAgICAgcmV0dXJuIChub2RlIGFzIENhc2VDbGF1c2UpLnN0YXRlbWVudHMubGVuZ3RoID4gMDtcbiAgICBjYXNlIFN5bnRheEtpbmQuQ2F0Y2hDbGF1c2U6XG4gICAgY2FzZSBTeW50YXhLaW5kLkNvbmRpdGlvbmFsRXhwcmVzc2lvbjpcbiAgICBjYXNlIFN5bnRheEtpbmQuRG9TdGF0ZW1lbnQ6XG4gICAgY2FzZSBTeW50YXhLaW5kLkZvclN0YXRlbWVudDpcbiAgICBjYXNlIFN5bnRheEtpbmQuRm9ySW5TdGF0ZW1lbnQ6XG4gICAgY2FzZSBTeW50YXhLaW5kLkZvck9mU3RhdGVtZW50OlxuICAgIGNhc2UgU3ludGF4S2luZC5JZlN0YXRlbWVudDpcbiAgICBjYXNlIFN5bnRheEtpbmQuV2hpbGVTdGF0ZW1lbnQ6XG4gICAgICByZXR1cm4gdHJ1ZTtcblxuICAgIGNhc2UgU3ludGF4S2luZC5CaW5hcnlFeHByZXNzaW9uOlxuICAgICAgc3dpdGNoICgobm9kZSBhcyBCaW5hcnlFeHByZXNzaW9uKS5vcGVyYXRvclRva2VuLmtpbmQpIHtcbiAgICAgICAgY2FzZSBTeW50YXhLaW5kLkJhckJhclRva2VuOlxuICAgICAgICBjYXNlIFN5bnRheEtpbmQuQW1wZXJzYW5kQW1wZXJzYW5kVG9rZW46XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICAvKiBlc2xpbnQtZW5hYmxlIGluZGVudCAqL1xufTtcblxuY29uc3QgY2FsY3VsYXRlRnJvbVNvdXJjZSA9IChjdHg6IE5vZGUpID0+IHtcbiAgbGV0IGNvbXBsZXhpdHkgPSAwO1xuICBjb25zdCBvdXRwdXQ6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcbiAgZm9yRWFjaENoaWxkKGN0eCwgZnVuY3Rpb24gY2Iobm9kZSkge1xuICAgIGlmIChpc0Z1bmN0aW9uV2l0aEJvZHkobm9kZSkpIHtcbiAgICAgIGNvbnN0IG9sZCA9IGNvbXBsZXhpdHk7XG4gICAgICBjb21wbGV4aXR5ID0gMTtcbiAgICAgIGZvckVhY2hDaGlsZChub2RlLCBjYik7XG4gICAgICBjb25zdCBuYW1lID0gZ2V0Tm9kZU5hbWUobm9kZSk/LnRvU3RyaW5nKCk7XG4gICAgICBvdXRwdXRbbmFtZV0gPSBjb21wbGV4aXR5O1xuICAgICAgY29tcGxleGl0eSA9IG9sZDtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGluY3JlYXNlc0NvbXBsZXhpdHkobm9kZSkpIHtcbiAgICAgICAgY29tcGxleGl0eSArPSAxO1xuICAgICAgfVxuICAgICAgZm9yRWFjaENoaWxkKG5vZGUsIGNiKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gb3V0cHV0O1xufTtcblxuZXhwb3J0IGNvbnN0IGNhbGN1bGF0ZSA9IChmaWxlUGF0aDogUGF0aExpa2UpID0+IHtcbiAgaWYgKCFleGlzdHNTeW5jKGZpbGVQYXRoKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgRmlsZSBcIiR7ZmlsZVBhdGh9XCIgZG9lcyBub3QgZXhpc3RzYCk7XG4gIH1cbiAgY29uc3Qgc291cmNlVGV4dCA9IHJlYWRGaWxlU3luYyhmaWxlUGF0aCkudG9TdHJpbmcoKTtcbiAgY29uc3Qgc291cmNlID0gY3JlYXRlU291cmNlRmlsZShmaWxlUGF0aC50b1N0cmluZygpLCBzb3VyY2VUZXh0LCBTY3JpcHRUYXJnZXQuRVMyMDE1KTtcbiAgcmV0dXJuIGNhbGN1bGF0ZUZyb21Tb3VyY2Uoc291cmNlKTtcbn07XG4iXX0=
|