ts2famix 1.4.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/analyze.js +6 -3
- package/dist/analyze_functions/process_functions.js +248 -100
- package/dist/famix2puml.js +1 -0
- package/dist/famix_functions/EntityDictionary.js +661 -155
- package/dist/famix_functions/helpers_creation.js +26 -6
- package/dist/fqn.js +156 -69
- package/dist/lib/famix/src/famix_JSON_exporter.js +1 -0
- package/dist/lib/famix/src/famix_base_element.js +1 -0
- package/dist/lib/famix/src/famix_repository.js +9 -8
- package/dist/lib/famix/src/index.js +1 -0
- package/dist/lib/famix/src/model/famix/access.js +3 -2
- package/dist/lib/famix/src/model/famix/accessor.js +1 -0
- package/dist/lib/famix/src/model/famix/alias.js +2 -1
- package/dist/lib/famix/src/model/famix/arrowFunction.js +17 -0
- package/dist/lib/famix/src/model/famix/behavioral_entity.js +13 -15
- package/dist/lib/famix/src/model/famix/class.js +1 -0
- package/dist/lib/famix/src/model/famix/comment.js +2 -1
- package/dist/lib/famix/src/model/famix/concretisation.js +31 -0
- package/dist/lib/famix/src/model/famix/container_entity.js +7 -6
- package/dist/lib/famix/src/model/famix/decorator.js +2 -1
- package/dist/lib/famix/src/model/famix/entity.js +1 -0
- package/dist/lib/famix/src/model/famix/enum.js +2 -1
- package/dist/lib/famix/src/model/famix/enum_value.js +2 -1
- package/dist/lib/famix/src/model/famix/function.js +1 -0
- package/dist/lib/famix/src/model/famix/implicit_variable.js +1 -0
- package/dist/lib/famix/src/model/famix/import_clause.js +5 -3
- package/dist/lib/famix/src/model/famix/index.js +18 -11
- package/dist/lib/famix/src/model/famix/indexed_file_anchor.js +3 -2
- package/dist/lib/famix/src/model/famix/inheritance.js +3 -2
- package/dist/lib/famix/src/model/famix/interface.js +2 -1
- package/dist/lib/famix/src/model/famix/invocation.js +3 -2
- package/dist/lib/famix/src/model/famix/method.js +2 -1
- package/dist/lib/famix/src/model/famix/module.js +53 -0
- package/dist/lib/famix/src/model/famix/named_entity.js +4 -3
- package/dist/lib/famix/src/model/famix/parameter.js +2 -1
- package/dist/lib/famix/src/model/famix/parameterConcretisation.js +44 -0
- package/dist/lib/famix/src/model/famix/parameter_type.js +22 -1
- package/dist/lib/famix/src/model/famix/parametric_arrow_function.js +31 -0
- package/dist/lib/famix/src/model/famix/parametric_class.js +44 -0
- package/dist/lib/famix/src/model/famix/parametric_function.js +31 -0
- package/dist/lib/famix/src/model/famix/parametric_interface.js +44 -0
- package/dist/lib/famix/src/model/famix/parametric_method.js +31 -0
- package/dist/lib/famix/src/model/famix/primitive_type.js +1 -0
- package/dist/lib/famix/src/model/famix/property.js +91 -9
- package/dist/lib/famix/src/model/famix/reference.js +3 -2
- package/dist/lib/famix/src/model/famix/scoping_entity.js +12 -10
- package/dist/lib/famix/src/model/famix/script_entity.js +1 -2
- package/dist/lib/famix/src/model/famix/source_anchor.js +1 -0
- package/dist/lib/famix/src/model/famix/source_language.js +1 -1
- package/dist/lib/famix/src/model/famix/sourced_entity.js +2 -1
- package/dist/lib/famix/src/model/famix/structural_entity.js +1 -0
- package/dist/lib/famix/src/model/famix/text_anchor.js +1 -0
- package/dist/lib/famix/src/model/famix/type.js +6 -4
- package/dist/lib/famix/src/model/famix/variable.js +1 -0
- package/dist/lib/ts-complex/cyclomatic-service.js +2 -2
- package/dist/ts2famix-cli-wrapper.js +16 -0
- package/dist/ts2famix-cli.js +8 -1
- package/dist/ts2famix-tsconfig.js +1 -0
- package/doc-uml/famix-typescript-model.puml +559 -0
- package/doc-uml/famix-typescript-model.svg +1 -0
- package/jest.config.json +2 -1
- package/package.json +10 -10
- package/src/analyze.ts +25 -22
- package/src/analyze_functions/process_functions.ts +272 -96
- package/src/famix_functions/EntityDictionary.ts +731 -182
- package/src/famix_functions/helpers_creation.ts +28 -2
- package/src/fqn.ts +132 -10
- package/src/lib/famix/src/famix_repository.ts +9 -9
- package/src/lib/famix/src/model/famix/access.ts +2 -2
- package/src/lib/famix/src/model/famix/alias.ts +1 -1
- package/src/lib/famix/src/model/famix/arrowFunction.ts +15 -0
- package/src/lib/famix/src/model/famix/behavioral_entity.ts +12 -19
- package/src/lib/famix/src/model/famix/comment.ts +1 -1
- package/src/lib/famix/src/model/famix/concretisation.ts +42 -0
- package/src/lib/famix/src/model/famix/container_entity.ts +6 -6
- package/src/lib/famix/src/model/famix/decorator.ts +1 -1
- package/src/lib/famix/src/model/famix/enum.ts +1 -1
- package/src/lib/famix/src/model/famix/enum_value.ts +1 -1
- package/src/lib/famix/src/model/famix/import_clause.ts +4 -3
- package/src/lib/famix/src/model/famix/index.ts +8 -5
- package/src/lib/famix/src/model/famix/indexed_file_anchor.ts +2 -2
- package/src/lib/famix/src/model/famix/inheritance.ts +3 -4
- package/src/lib/famix/src/model/famix/interface.ts +1 -1
- package/src/lib/famix/src/model/famix/invocation.ts +2 -2
- package/src/lib/famix/src/model/famix/method.ts +1 -1
- package/src/lib/famix/src/model/famix/module.ts +67 -1
- package/src/lib/famix/src/model/famix/named_entity.ts +3 -3
- package/src/lib/famix/src/model/famix/parameter.ts +1 -1
- package/src/lib/famix/src/model/famix/parameterConcretisation.ts +54 -0
- package/src/lib/famix/src/model/famix/parameter_type.ts +33 -6
- package/src/lib/famix/src/model/famix/parametric_arrow_function.ts +32 -0
- package/src/lib/famix/src/model/famix/parametric_class.ts +49 -0
- package/src/lib/famix/src/model/famix/parametric_function.ts +32 -0
- package/src/lib/famix/src/model/famix/parametric_interface.ts +49 -0
- package/src/lib/famix/src/model/famix/parametric_method.ts +32 -0
- package/src/lib/famix/src/model/famix/property.ts +109 -11
- package/src/lib/famix/src/model/famix/reference.ts +2 -2
- package/src/lib/famix/src/model/famix/scoping_entity.ts +12 -11
- package/src/lib/famix/src/model/famix/script_entity.ts +0 -2
- package/src/lib/famix/src/model/famix/source_language.ts +0 -1
- package/src/lib/famix/src/model/famix/sourced_entity.ts +1 -1
- package/src/lib/famix/src/model/famix/type.ts +5 -4
- package/src/ts2famix-cli-wrapper.ts +17 -0
- package/src/ts2famix-cli.ts +7 -1
- package/tsconfig.json +5 -5
- package/dist/lib/famix/src/model/famix/association.js +0 -36
- package/dist/lib/famix/src/model/famix/namespace.js +0 -24
- package/dist/lib/famix/src/model/famix/parameterizable_class.js +0 -30
- package/dist/lib/famix/src/model/famix/parameterizable_interface.js +0 -30
- package/dist/lib/famix/src/model/famix/parameterized_type.js +0 -36
- package/doc-uml/metamodel-full.svg +0 -1
- package/doc-uml/metamodel.svg +0 -1
- package/plantuml.jar +0 -0
- package/src/lib/famix/src/model/famix/association.ts +0 -44
- package/src/lib/famix/src/model/famix/namespace.ts +0 -28
- package/src/lib/famix/src/model/famix/parameterizable_class.ts +0 -31
- package/src/lib/famix/src/model/famix/parameterizable_interface.ts +0 -31
- package/src/lib/famix/src/model/famix/parameterized_type.ts +0 -40
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { spawn } from 'child_process';
|
|
4
|
+
|
|
5
|
+
// allow tslog to display the proper typescript files and line numbers
|
|
6
|
+
const args = [
|
|
7
|
+
'--enable-source-maps',
|
|
8
|
+
'--experimental-specifier-resolution=node',
|
|
9
|
+
'dist/ts2famix-cli.js',
|
|
10
|
+
...process.argv.slice(2)
|
|
11
|
+
];
|
|
12
|
+
|
|
13
|
+
const child = spawn('node', args, { stdio: 'inherit' });
|
|
14
|
+
|
|
15
|
+
child.on('close', (code) => {
|
|
16
|
+
process.exit(code);
|
|
17
|
+
});
|
package/src/ts2famix-cli.ts
CHANGED
|
@@ -33,8 +33,14 @@ let famixRep: FamixRepository;
|
|
|
33
33
|
|
|
34
34
|
if ((argv.input as string).endsWith('tsconfig.json')) {
|
|
35
35
|
const tsConfigFilePath = argv.input as string;
|
|
36
|
+
// get the baseUrl from the tsconfig file
|
|
37
|
+
const baseUrl = tsConfigFilePath.substring(0, tsConfigFilePath.lastIndexOf('/'));
|
|
38
|
+
logger.info(`baseUrl: ${baseUrl}`);
|
|
36
39
|
const project = new Project({
|
|
37
|
-
tsConfigFilePath
|
|
40
|
+
tsConfigFilePath,
|
|
41
|
+
compilerOptions: {
|
|
42
|
+
baseUrl: baseUrl,
|
|
43
|
+
}
|
|
38
44
|
});
|
|
39
45
|
famixRep = importer.famixRepFromProject(project);
|
|
40
46
|
|
package/tsconfig.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"compilerOptions": {
|
|
3
3
|
/* Basic Options */
|
|
4
|
-
"target": "
|
|
4
|
+
"target": "ES2020", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */
|
|
5
5
|
"module": "CommonJS", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
|
|
6
6
|
// "lib": [], /* Specify library files to be included in the compilation. */
|
|
7
7
|
// "allowJs": true, /* Allow javascript files to be compiled. */
|
|
@@ -46,14 +46,14 @@
|
|
|
46
46
|
// "typeRoots": [], /* List of folders to include type definitions from. */
|
|
47
47
|
// "types": [], /* Type declaration files to be included in compilation. */
|
|
48
48
|
"allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
|
|
49
|
-
"esModuleInterop": true
|
|
49
|
+
"esModuleInterop": true , /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
|
|
50
50
|
// "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */
|
|
51
51
|
|
|
52
52
|
/* Source Map Options */
|
|
53
53
|
// "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */
|
|
54
54
|
// "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
"inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */
|
|
56
|
+
"inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */
|
|
57
57
|
|
|
58
58
|
/* Experimental Options */
|
|
59
59
|
// "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */
|
|
@@ -67,4 +67,4 @@
|
|
|
67
67
|
"out": "docs",
|
|
68
68
|
"githubPages": false
|
|
69
69
|
}
|
|
70
|
-
}
|
|
70
|
+
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Association = void 0;
|
|
4
|
-
const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
|
|
5
|
-
const sourced_entity_1 = require("./sourced_entity");
|
|
6
|
-
class Association extends sourced_entity_1.SourcedEntity {
|
|
7
|
-
getNext() {
|
|
8
|
-
return this.next;
|
|
9
|
-
}
|
|
10
|
-
setNext(next) {
|
|
11
|
-
if (this.next === undefined) {
|
|
12
|
-
this.next = next;
|
|
13
|
-
next.setPrevious(this);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
getPrevious() {
|
|
17
|
-
return this.previous;
|
|
18
|
-
}
|
|
19
|
-
setPrevious(previous) {
|
|
20
|
-
if (this.previous === undefined) {
|
|
21
|
-
this.previous = previous;
|
|
22
|
-
previous.setNext(this);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
getJSON() {
|
|
26
|
-
const json = new famix_JSON_exporter_1.FamixJSONExporter("Association", this);
|
|
27
|
-
this.addPropertiesToExporter(json);
|
|
28
|
-
return json.getJSON();
|
|
29
|
-
}
|
|
30
|
-
addPropertiesToExporter(exporter) {
|
|
31
|
-
super.addPropertiesToExporter(exporter);
|
|
32
|
-
exporter.addProperty("next", this.getNext());
|
|
33
|
-
exporter.addProperty("previous", this.getPrevious());
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
exports.Association = Association;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Namespace = void 0;
|
|
4
|
-
const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
|
|
5
|
-
const scoping_entity_1 = require("./scoping_entity");
|
|
6
|
-
class Namespace extends scoping_entity_1.ScopingEntity {
|
|
7
|
-
getParentScope() {
|
|
8
|
-
return this.parentScope;
|
|
9
|
-
}
|
|
10
|
-
setParentScope(parentScope) {
|
|
11
|
-
this.parentScope = parentScope;
|
|
12
|
-
parentScope.addNamespace(this);
|
|
13
|
-
}
|
|
14
|
-
getJSON() {
|
|
15
|
-
const json = new famix_JSON_exporter_1.FamixJSONExporter("Namespace", this);
|
|
16
|
-
this.addPropertiesToExporter(json);
|
|
17
|
-
return json.getJSON();
|
|
18
|
-
}
|
|
19
|
-
addPropertiesToExporter(exporter) {
|
|
20
|
-
super.addPropertiesToExporter(exporter);
|
|
21
|
-
exporter.addProperty("parentScope", this.getParentScope());
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
exports.Namespace = Namespace;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ParameterizableClass = void 0;
|
|
4
|
-
const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
|
|
5
|
-
const class_1 = require("./class");
|
|
6
|
-
class ParameterizableClass extends class_1.Class {
|
|
7
|
-
constructor() {
|
|
8
|
-
super(...arguments);
|
|
9
|
-
this.parameterTypes = new Set();
|
|
10
|
-
}
|
|
11
|
-
getParameterTypes() {
|
|
12
|
-
return this.parameterTypes;
|
|
13
|
-
}
|
|
14
|
-
addParameterType(parameterType) {
|
|
15
|
-
if (!this.parameterTypes.has(parameterType)) {
|
|
16
|
-
this.parameterTypes.add(parameterType);
|
|
17
|
-
parameterType.setParentGeneric(this);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
getJSON() {
|
|
21
|
-
const json = new famix_JSON_exporter_1.FamixJSONExporter("ParameterizableClass", this);
|
|
22
|
-
this.addPropertiesToExporter(json);
|
|
23
|
-
return json.getJSON();
|
|
24
|
-
}
|
|
25
|
-
addPropertiesToExporter(exporter) {
|
|
26
|
-
super.addPropertiesToExporter(exporter);
|
|
27
|
-
exporter.addProperty("parameterTypes", this.getParameterTypes());
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
exports.ParameterizableClass = ParameterizableClass;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ParameterizableInterface = void 0;
|
|
4
|
-
const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
|
|
5
|
-
const interface_1 = require("./interface");
|
|
6
|
-
class ParameterizableInterface extends interface_1.Interface {
|
|
7
|
-
constructor() {
|
|
8
|
-
super(...arguments);
|
|
9
|
-
this.parameterTypes = new Set();
|
|
10
|
-
}
|
|
11
|
-
getParameterTypes() {
|
|
12
|
-
return this.parameterTypes;
|
|
13
|
-
}
|
|
14
|
-
addParameterType(parameterType) {
|
|
15
|
-
if (!this.parameterTypes.has(parameterType)) {
|
|
16
|
-
this.parameterTypes.add(parameterType);
|
|
17
|
-
parameterType.setParentGeneric(this);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
getJSON() {
|
|
21
|
-
const json = new famix_JSON_exporter_1.FamixJSONExporter("ParameterizableInterface", this);
|
|
22
|
-
this.addPropertiesToExporter(json);
|
|
23
|
-
return json.getJSON();
|
|
24
|
-
}
|
|
25
|
-
addPropertiesToExporter(exporter) {
|
|
26
|
-
super.addPropertiesToExporter(exporter);
|
|
27
|
-
exporter.addProperty("parameterTypes", this.getParameterTypes());
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
exports.ParameterizableInterface = ParameterizableInterface;
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ParameterizedType = void 0;
|
|
4
|
-
const famix_JSON_exporter_1 = require("../../famix_JSON_exporter");
|
|
5
|
-
const type_1 = require("./type");
|
|
6
|
-
class ParameterizedType extends type_1.Type {
|
|
7
|
-
constructor() {
|
|
8
|
-
super(...arguments);
|
|
9
|
-
this.arguments = new Set();
|
|
10
|
-
}
|
|
11
|
-
getBaseType() {
|
|
12
|
-
return this.baseType;
|
|
13
|
-
}
|
|
14
|
-
setBaseType(baseType) {
|
|
15
|
-
this.baseType = baseType;
|
|
16
|
-
}
|
|
17
|
-
getArguments() {
|
|
18
|
-
return this.arguments;
|
|
19
|
-
}
|
|
20
|
-
addArgument(argument) {
|
|
21
|
-
if (!this.arguments.has(argument)) {
|
|
22
|
-
this.arguments.add(argument);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
getJSON() {
|
|
26
|
-
const json = new famix_JSON_exporter_1.FamixJSONExporter("ParameterizedType", this);
|
|
27
|
-
this.addPropertiesToExporter(json);
|
|
28
|
-
return json.getJSON();
|
|
29
|
-
}
|
|
30
|
-
addPropertiesToExporter(exporter) {
|
|
31
|
-
super.addPropertiesToExporter(exporter);
|
|
32
|
-
exporter.addProperty("baseType", this.getBaseType());
|
|
33
|
-
exporter.addProperty("arguments", this.getArguments());
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
exports.ParameterizedType = ParameterizedType;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="us-ascii" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="206px" preserveAspectRatio="none" style="width:303px;height:206px;background:#FFFFFF;" version="1.1" viewBox="0 0 303 206" width="303px" zoomAndPan="magnify"><defs/><g><text fill="#33FF02" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="261" x="5" y="19">Dot Executable: /opt/local/bin/dot</text><text fill="#33FF02" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="237" x="5" y="35.2969">Dot executable does not exist</text><text fill="#33FF02" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="291" x="5" y="51.5938">Cannot find Graphviz. You should try</text><text fill="#33FF02" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="5" x="5" y="67.8906"> </text><text fill="#33FF02" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="79" x="5" y="84.1875">@startuml</text><text fill="#33FF02" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="57" x="5" y="100.4844">testdot</text><text fill="#33FF02" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="72" x="5" y="116.7813">@enduml</text><text fill="#33FF02" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="5" x="5" y="133.0781"> </text><text fill="#33FF02" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="17" x="10" y="149.375">or</text><text fill="#33FF02" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="5" x="5" y="165.6719"> </text><text fill="#33FF02" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="227" x="5" y="181.9688">java -jar plantuml.jar -testdot</text><text fill="#33FF02" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="5" x="5" y="198.2656"> </text><!--SRC=[xHpBSjmsykwlu96koAuzRZ5RIicIx9eaihGUnJviRRau78p4DOUS9KYj5Dl_ldWsq423CtOYUX_nGHwYdsW0_G10Lat9UNRU3lNmaB7xWRLhdhqij_NzYvApyuPjMJja7vzaujztDspuSNdvEdzQP7pew_P6DvVhzLNVxLW_r8nVT-VtkwuVM9ypywFG32MfXGaETrszVlBvIQKKM7PZNx6Vo_PcB6yOA6BqqkAVSOMqLer2Kf4jsV2NfTVuSAmLQiijmoeApPUOMdOYHIywX9fpN_93aI6WxSeZM-YqswgXiAP1EbWBrVp7vLbN5TcgwnfMjg3KGWEaNWZ47IYazVlrhEhQeQnRgIaI309EBOAoQup2VPGKjqYaw70qZgUwFJGnTv20SgO1qZqvQQlRhazCOAQNKyg6PhMbBMWHQ3wpzdCTk8nm7Yw7SKLDGzbEpq852GZHXE2UWGjaxc2DwqPdHX-91qXffi5aLAlF-1op5e-zEQd1rgbW165qqv0RFeLTpaZ8cWaBzsoDdM4HE4SGUaQYksvZ0fuaE4piJBFhXFEkgikXxjffLzSAQE6ZWsQl1KHg5i6uWKMaQ1HsFRkhkv7JpAyCD2K0u2IRcOpuMiG_lYih5qYNLRSJ4h09TsBKsq62v6Zx6Awx3aLDh1Y9OwGqpxdS4-gfxJ_47co1whPkra9XC9XPuF3ibhX3iOiyH1BAGrEkECDZuOPaDZFqzMu8h43EWdRShbX_kVbPc8TVRgxLuj2DhlCnZjJPn-8qrWHtjEeitkbjsPULw11FAk5G9dJmaDAiPngBYsuzDlvQz8R6348t3ZUTaBdOIXPc5kg7qwOSkJSHBp6gdOq4ib0T8-UrXrHaFibCfl15Wa5ydsyJ28K7SxKmDdI918PBJNqC7cDeZb99ZOXcdm52WYzNQvYTBH2Eb1XXyGXhWZ5IOAjqMkvOLMzggMIGz5vWE97yXXW9ZdE5yQOkEGomrsiSUwRiVULXfAoDS98iaQLBgPaRaEk7dPjL9pvCodHG7a89FZFPLgHnNLyENfL1s7TjaGINdd4krbOqgSvY769YKLWJtCECLk9DBwmpZ9GQwn1jYlUCULPO2979wcPiceU_ZcBEYBMeqe9eC5v6ACHO44XfrcWaUbQn-ewj5-rTLobNQuCCDBWGyoP6XZ0JeWipnkXvB4w46_YDVMyhYgB3Gjy2eqw7FeoSbwt-aGvxpyXjeyH8gEOsPMtj74nVbDyu3fmCAEz3XTRgKJkNGdjHQa5rlU4DY_CuNjKW8aGIOg39BUN2EPQPbe_mtiA00k0Mpz2FrJ3sPJCLBLwmsrBKLe2L31aqudJS26dcieMcVzXhYfgVIe9blMRK_We0wKqM1wRuu3eOcKKXPv_48XRARqGTapHw0dFQwX5Hc1sf9CPCUctwOpyvqc0xuH6261oBa5j6CsT3Y_QMzVLGjjLaqij78KLHJDbx2LZJrlRm9XdZFRPnTO02guF4hwpmrI6Y7zNyHXuONsPhu5k0kvuyTYKUUti-5iDEi037wIZcjVbHm9B6KvaDjztQYBfG3zv4ra0h1O7bD5RFkMOXwXZrVp1yGg8tso36GyindaS-hWln8ROy3mcmyr1KuS_oS4uThDBg2nHQONLMXoZpc5M-6WwOOc4SeKFPDtMh7-fs7UKxFub68jzHpJu1pk7uoKeqbzL0nIGBeqCIG0acWP2P8b_Dh_hwJfGMb1W3eeLOOCmX532kcfeyfzEG17iDYyWZxRk1LQ8oelKtm5GFB9ZYCzTPf_fBEUjP9jeV4U6FYF2xrZVrh-MgONXMwoSN53IcdEjsrlbjntvSy51X-X78iWT-Suwa51a2VXkJn9cPQ_b_CytBiQtGiMSYWtZCNTjAh37kRIoQdERZRDD2-NeoIrTvpIlMYgbJMKydCXjoZNrApxDFhfEVj5xMxa7cPKIfauN74iP3OO_VovacSpHtznp4rXmw7OTrRoZYg6w1CGSSSkgRjXp6dhWNPY54rkjW4NsuLw878dHGX7EA7HFXb9n3yfmHUM1wvObE79XYqOa3KmyfpPhUk3raItaH8qzjASVeUImkkQLiRxHePuwEUCuyK7J2Wu0n4oHZ40rNgM7_tU8Ial9jufApyTJULLMswtejAXvZYj01U7Ub0DDQ8e4hhqrPt1puJ-_GsdEEdZvgCYSLVUgC2U0a6-nGX2KaF71epgqekAhSAGmE60b6ytclHvmxRzY6YOYsPzjJdPXDM5B19osfCHACyB8jUy4oS0hNgZ5o1wRP9vd9Rc_BlfOH_S23aQ33QLDUKUXJbgK93fCwsyLed57ilNJmdsyjk9U6SM138Y3rV6kApbrCfIYbfvMKeUOLqRX7yOUgwRPYULUdtNRNi7j54UGbfmGIaPcGQ5C2oFneEOYWOUxk9l8ZXpAH7tb8QTP80tkd2voW6JruZkzqELGxO26oTwSBG7aagN2UbpIAkOrtsiajqEcxVX9d_rq_XJN1dJJCGOdZPOmybJZ6w7aiBfaubgfgWeDxzUITt1ie7DtxS7bshvvppQGm9HYvhhsz39mgeWmH9uOg7rGC4XcfPMvBFIC0bN-Xmm1SApEDBLImxLeD-rHa117IxCw4CwEHZMvE3Ti2QWGeGhPjoIsp0gBaJ846xKsaBXIxDrjIKGMzAPEA9EIxCfDvZL3kPEBMoRM39swU04OElAWRADna8eo_guVRCrGagVUfWap5syjDKiAxM3IjtDkrj14fJq6AA6b2_LZXAg9EzITToBpOos5_WHD28WwhFGXxoY5RD1yGWnOHwaGCYf3pI58Y1ZtcdVSmIPv81Qsw9vCUVn5WfJm_niinSp8IpB15yUWRnLD5NMds7zD-qEvGJhb1m4co8-DClFIZIAD6aaJY7bAQON3a-gwlwUDY1Q1tBZKef9rf1Cz5NaPkjD-LpMYNWqHwAv_zI2t1TXs422fEYyTSSIaoWC_OAoNl2syKIhhapGi7dBvi8V7cUusYgQjwYFO9eE7ZusyBhjazMx-ic_2TL_GYhDtZ6Sf-kEhY6cnf04I90Q2G6Aqz8PBYUwwQ2Qu6WCb2ZhA2eLZATfgdWkWDg7DC7sHFeYiazwM5f2pXILY6N92CZHWI-egv0L0Nooqe99x_N5Y7Cz8thKJwIWJC5wOv2fO0m8IuvEjlHk_LNboEdLWWNP9PS6wPp1g4h_fwAzBEEvQorsFMGaBS_zYo_-zQDZMSzIvPsLUtxYZA3ZvNxITzNpvOkN_xkmRf7MqIf8p-0vZF1LOPuyvgLU6NFTn5s4WDtx2TqLNywdWzTFs3iUdsNbMG5wN047_CpUmZZVtSgq0bgZhMJg3Q8s_zH9s7Epvm3fxWvP-Ja_m0mV64ztSJF8ENWIM9d1m9RFD6g1Nlln7gwELAJj2hHGxA8pz0T4bxLCFubzS_lRvyz_hzsvEVVpd74rB8D5-Ok5pzWrK32DSSjNv7sVNoekjtjnh7SuZRyWDJc2erS8c13OlsenKH_L6cfX4W6ACalsrHzQmSs6N_IYn0jVCaHEKR-y42-NIKrLpRsC-hzzgUPkzUwjxQbqTr5MRt3uCPu7DH8FDEZmuEwe6YLm1Q0pM_ywgnT-WfylqBXEODSprNBgLmDx0eAOSldSWA4_SXFKdoLejfXUDBa6uX4M_o7YJcAkf6lLNKzHYWaK6OQ7db2a-CkYG1Hrarzkg8vxJ8nlP3s_tBcsts2eyPP4CUzG2sLZVYHm6NmR1ys6A5joudPUFBHlvGu6icthq2Qim1cEQZxohiz0m_Z9bBr3o64vky53CBY_Z8Kap4-d7hrsOK1rVR1TIwZ9KiBfYCX9g5_ese5IAzjAPViZlAeZTOmyKDipDO88I1lNM3MxzmCaFVGC_8FAblsRmfsnlfoxVtvlCVpY-kRUmWFZ9bt9VcGHiIhiBuATPH1fz1-ethdLvipvy_p_wSRJk18dz-clRUNnEHuq2XjmzRTN2sM8k-gRVLXDdMv2ShF5Bll2icttwXYGxrFb_ZAm_fYhl4JSOy_uKMpBkzFVLUDTjF8ffTR-JMkXfZM_Gb5VHU84QVr5Yqcwx8FcQwpPFpWtthE519jPt_SomRNzdlC_Un2fVJV9y5dtIGZLVbS6iNX2M3F4gp1tmf42Q5GEQBLjSL79QZR3rZct9i1Wto89-nERhsJZYRw-uDQqevrQKcURdYNJCEIAsZp6yLJagcVLwTP39Gk0QDwuZWqsd-cQRtWKARD4Eo13Sb_Ce0fJjmv1oa-YZZepy7f94kKkzjQF3RgJDFZNBeGQt1he4PfB14uL2lJxjHPt9U2VoC6XceD7vBrY-hu9X3_jLSmygPOlxqInIKbQxNUQAAH-2TPw185vqTI7al7XRh7FcoS4xIL5_w1GUQgzuYaDjEVvB-PjFrst9mVk1pqCVtwhC3JNWPY5v58RPrY_bmQ_RGGBazJBpQPRAFNdK2PAuicIGDoWqWDmN19At62GYzF7pVgE2b6l21J7QI3qvWWTXLd9FKGSKPaoS_LUQwM-zJaVGr11VtZbhQENttNbTeIfqJBh1VzjtMLhVYRo0xUfVVqEj3c4CvUBxWVTtMqeD88g4dQ-GN0LZZTrVu5RsaZsmzvVPxe-zlXfD_pxOV_WeMwxrNq7LGDD4Hxwr9PQLhuietSRTZzpInwoROoSGBbZkmBrkyaU9BC7TevKPcYx9iUwiMJ_v09bPMoyl3RX6qdv-KvbNCp0l_nAU7dQlLpnyjtUVi4L_92X6Y3xcIxldPQjniM6_sLuNHTQlP1M6R-ZwbwKEERI-tIlowVd9o_Hi0]--></g></svg>
|
package/doc-uml/metamodel.svg
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="us-ascii" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="206px" preserveAspectRatio="none" style="width:303px;height:206px;background:#FFFFFF;" version="1.1" viewBox="0 0 303 206" width="303px" zoomAndPan="magnify"><defs/><g><text fill="#33FF02" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="261" x="5" y="19">Dot Executable: /opt/local/bin/dot</text><text fill="#33FF02" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="237" x="5" y="35.2969">Dot executable does not exist</text><text fill="#33FF02" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="291" x="5" y="51.5938">Cannot find Graphviz. You should try</text><text fill="#33FF02" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="5" x="5" y="67.8906"> </text><text fill="#33FF02" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="79" x="5" y="84.1875">@startuml</text><text fill="#33FF02" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="57" x="5" y="100.4844">testdot</text><text fill="#33FF02" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="72" x="5" y="116.7813">@enduml</text><text fill="#33FF02" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="5" x="5" y="133.0781"> </text><text fill="#33FF02" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="17" x="10" y="149.375">or</text><text fill="#33FF02" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="5" x="5" y="165.6719"> </text><text fill="#33FF02" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="227" x="5" y="181.9688">java -jar plantuml.jar -testdot</text><text fill="#33FF02" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="5" x="5" y="198.2656"> </text><!--SRC=[xHpBSjouyUwlO6vqhUpACSLDQKkMPDVihYp5exKFgPIBmy58Z3daX20LARR_FNWsq423C_Qkw3pM1tc8Vg81z0C0-OUwhPfnpJB-eMxvS_FqV3TkcoTLKtAUdRT3FJnax7vWxPfdByjjVV-YvEoyOLlM3jd79vduzzqD6tvSNhxEdnOP7_gwlT7DvNfzrNSxrWyruzVT-VskwmVMvypyA3H3IMfXWiDTLw-VV3OABBknhzZFPNipbZSC535wQV7Fk49QgqOXgSYMRFZpqcjyEDOAjUMMOHM5vajCBJkHeXSTGisvB_cXo13GTkMHBNJQRTLGMDCW7Qo5QlxZygohYcpLTGqhMr1geG5IBmJY3XJI-lrwLdNjKDQjr1G91W6d5a7PDKRXFagAMoHIT3WQnrFT7fgOEqX0ETC0wPwSjDLjroScCDFBAML3izhI5hG8D9zP-xaEN4Ou3vV3kAAceModPw6218HeGd3Fm0KoTx36TQCpeu_40wGqqs0ogjLdV8vPYyVUdDHWwrGmWZ2wQSWDdy8kPoHapOI5UxR6ph08d2C8FIFHNRSn0KyI72PsfjbrmdbNrULGT-sqgsi5jF3HGRFN0Y8rYs3Sm29ID0gxdjtLtSXfvbS6cX80S9BDJ4PyBU8VtvML2wJBgji92TY4Ep7gxI11ShHz3DTTXw8cLep4CLAQvrpk2VNKzXzY3xP0TLitQw4m6CmiS7XsIzoXs4KU8WdbeIbNdE6nS4CocndwUZS4LY1dGJjkLwo_tFmipCClDzTgSUX6r_aOH-hiOt4QQu8xMdKMx_IsxCjAT8WdbN0e4pfuI6dMCut5HRSU6tyjUaDZ1g4RXvjEo5ni9Gip2_N3QLEEt9k8bnZLpaO2MQYEaVFQGoeodsGcK_WYmI2-pxS9XCA3kLeO6xf40iEbfZu6Zp4qHwcaHaIppm0XmPUhDSpE5WX7IeomU8GrmHWfi5KwBNUigZUrL398UYymd4X-Gum4nxd2U5EN70ROwpMEFLFsll8mKjP6E4cMoDAbrCmDoFN3pisg4nycPJee3w44dvbiAzAuhYy7hyeWxBksI89BppWNQokQL6Sn3Z6nAAm9xc56A_6c5zOPHagDTOWsnNl6F2iiXCXaTJCspSDVHZ5dn5fKQK4q62yZ568i2AGqQpGIFQjOVSVMY_QkgvIhjK466bo8UHCZGvW9qOKPO_Gy5YV23Vp6lhSLHT5XeM-1KQT37qREorR_I8UzP-IsKM8aL7ERihPs3gOlocyS1qu6bFUXGclrg9rBeRqejQ2wtl26nNaShseG4I89CT3abdBX7CjCoqTuRs500N2BP-Z7QXZxifcA5Y_ORIbgAy1AXWmQSJfkX3HpsKBJF-mrHSrF9S6oNZDgVmM0z2QB0rDyS1sCpAAGiqzY4GlbDwAEIHezWJbjzOWep8vK4cCclJRziPySQR2Ty0X138v5o2sZcREXHNlB-deesseowUMZaA8efkoz1AnfQtjuaupn7jkuEa21rK7YLrRuwX3HZsf-8m-CBxCry2t0NKyUknAFlJqVYs4dM83ZT1JpslmeO4dZgSo6ssvjH5se1syYQw2LWi1o6gldNBCGTOpwFnW-8T6RRH3ZeUKOpoCVruNu45kUXmJOUIYgy6TvEASELcdr1Ggji3ghGvHvp2fV3GTCiJ2EqA7icxhL3tMxZlATdqGZaU-ePfy0vt3yP2MQosgWOfA5qI49e0IJGCXCaQ_cLtrz9qeBIem1qK8iCEOG2XXNJKsUqsb8Whs6HUIHzjt0Ab4PqVeROAe75apncUkiK_sbdFKi4-ttYF1xHFXDwvlwN-MgONXMwoSN53IcdEjsrlbjntvSy51X-X78iWT-Suwa51a2VXkJn9cPQ_b_CytBiQtGiMSYWtZCNTjAh37kRIoQdERZRDD2-NeoIrTvpIlMYgbJMKydCXjoZNrApxDFhfEVj5xMxa7cPKIfauN74iP3OO_VovacSpHtznp4rXmw7OTrRoZYg6w1CGSSSkgRjXp6dhWNPY54rkjW4NsuLw878dHGX7EA7HFXb9n3yfmHUM1wvObE79XYqOa3KmyfpPhUk3raItaH8qzjASVeUImkkQLiRxHePuwEUCuyK7J2Wu0n4oHZ40rNgM7_pU8Ial9jufApyTJULLMswtejAXvZYj01U7Ub0DDQ8e4hhqrPt1puJ-_GsdEEdZvgCYSLVUgC2U0a6-nGX2KaF71epgqekAhSAGmE60b6ytclHvmxRzY6YOYsPzjJdPXDM5B19osfCHACyB8jUy4oS0hNgZ5o1wRP9vd9Rc_BlfOH_S23aQ33QLDUKUXJbgK93fCwsyLed57ilNJmdsyjk9U6SM138Y3rV6kApbrCfIYbfvMKeUOLqRX7yOUgwRPYULUdtNRNi7j54UGbfmGIaPcGQ5C2oFneEOYWOUxk9l8ZXpAH7tb8QTP80tkd2voW6JruZkzqELGxO26oTwSBG7aagN2UbpIAkOrtsiajqEcxVX9d_rq_XJN1dJJCGOdZPOmybJZ6w7aiBfaubgfgWeDxzUITt1ie7DtxS7bshvvppQGm9HYvhhsz39mgeWmH9uOg7rGC4XcfPMvBFIC0bN-Xmm1SApEDBLImxLeD-rHa117IxCw4CwEHZMvE3Ti2QWGeGhPjoIsp0gBaJ846xKsaBXIxDrjIKGMzAPEA9EIxCfDvZL3kPEBMoRM39swU04OElAWRADna8eo_guVRCrGagVUfWap5syjDKiAxM3IjtDkrj14fJq6AA6b2_LZXAg9EzITToBpOos5_WHD28WwhFGXxoY5RD1yGWnOHwaGCYf3pI58Y1ZtcdVSmIPv81Qsw9vCUVn5WfJm_niinSp8IpB15yUWRnLD5NMds7zD-qEvGJhb1m4co8-DClFIZIAD6aaJY7bAQON3a-gwlwUDY1Q1tBZKef9rf1Cz5NaPkjD-LpMYNWqHwAv_zI2t1TXs422fEYyTSSIaoWC_OAoNl2syKIhhapGi7dBvi8V7cUusYgQjwYFO9eE7ZusyBhjazMx-ic_2TL_GYhDtZ6Sf-kEhY6cnf04I90Q2G6Aqz8PBYUwwQ2Qu6WCb2ZhA2eLZATfgdWkWDg7DC7sHFeYiazwM5f2pXILY6N92CZHWI-egv0L0Nooqe99x_N5Y7Cz8thKJwIWJC5wOv2fO0m8IuvEjlHk_LNboEdLWWNP9PS6wPp1g4h_fwAzBEEvQorsFMGaBS_zYo_-zQDZMSzIvPsLUtxYZA3ZvNxITzNpvOkN_zcmRf7MqIf8p-0vZlC_f0o5cjAlooXxi86wdX6xOpkefV7Q-7hdymDjtUgmhoeXGOue-vcNsaiPzx5QX4LSVQ2LHxvAsVgFDmnmVEmHEy_7DoaXyWE9xm_cw2P_0oi2IHaoE1RTu8jUBzDq8TlLp92Ngro45vv0U8BccFQXZ_ylgdrvVlNhz_U_BpB-TuGWgPvWiJbwk_ise0uPgZrkyekrvUTFtkLkDu3d5RVc0AKwK6BZ6mOT5-j2AYFyhKD084OvJajosgdfK3k-nVYGMeTfw4g7nZFrWWduwocciR-tdrNjlJxDrBtLlxygYkmkp-OJ03V2uAPDxfqS51FL3q2a1heEPtNZNs3Zr5ld-1qBnXhkVAfHJk1XObvV2b4rbXuZwa9qdUQZ6jS7m9qYqauatUWyHSHTsejugw7WCqCWWJBQzSuObHboJWAAl6NXtnd1RPs7vektzwiyrUuJ63RCYZ7i3MwaRyAE0o69OFMwpmrkMaR7pPo1yAVCt4krT0ZJa0qtpqNOMTdk67CNE9ciTmOfENOcPX4HzPYebOFsxzsepYu6gxW5gNiPB51PEHKBFGln6rGgINrlHBTaTPz0PhkBXXTWOBX32mjsvmwnTEPkWRw1cP9_KjcpTbUoDz-VRUVFx3-SMrZHt4HwQC-z8yQ4F2LHW_nJhAu3D8ltAzqulj-VFdsP-oRITGvCzFqzxxQo9o72Zqzc6h3iuMQz4tzRQQCDkQ_6I5H-gTTyNasoyqqQ7UvsjyvI5TSPUuoPZdlz22URUtfzwhPlj9HBFhZTnQLsDiYxwaWjuBnEYJ6ejsqnNPnqotUN9-i6yT1ogfjlD_Z6NZA_jzvZvMuNAQxxFWamwoyQeSRks2i6IGHsdsW2y5mgGGo7pHwhg2mtAKhMTiKuxDe44Uv3CsHzVU2MTptRrXJIcdkjGaBrUyQyO1gNMK-Qt2IScqpwkJJ0OArw1n7H5yEiq_q_G-K6YJPaYMuAQ4NncWT0UEd8DK7sLyzEU0DD95whqD3NuxTUQfKGuzg3NODJ2359Oe7EhrQJVgJCuhWPzH8mELng_9-cKL77F8lvfhM3bJp9z-YOAoqlKwJrJn2Bpp31JfehC3AU_5msAT8ryMpacQwak_u41prLi4SjlfZzBVRBf-MmxE3tmE-lXUVNQW2Iy3qQienBPkCHzkpHuQABU7YLUxJFRHgqw0p9KbawH1kG7afY2OfDKu0Q6NX-yR5RnK0pwGoKxomGai4BkASv8wg3XZykIdobntwtqgahw6uEBUKKixf-_UwmfDgNF21VRBljlQwbRy3MH7x_8RUdq8SoW7pnUyhzjQUX199FHaZVmY06lyxWg_efVqaQsdt7vlzFtDSFBlsVR3Ny5YlVSAkWwA9ZhYlJMfh7HDNFacxdRidYPstGGxcNZ1SWVsPOitKdm9vWwjtCXiKPPjRzNYoH_8nCfgUNdOBOBsyvFIl8gPUU6V-FImSxNw-QEb-vmzuYjP8KBq8LVIFJzRZPiDwyt-gZ2wRZMx86nJtwSqVSYnxULMYL_NJqwkVmC0]--></g></svg>
|
package/plantuml.jar
DELETED
|
Binary file
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { FamixJSONExporter } from "../../famix_JSON_exporter";
|
|
2
|
-
import { SourcedEntity } from "./sourced_entity";
|
|
3
|
-
|
|
4
|
-
export class Association extends SourcedEntity {
|
|
5
|
-
|
|
6
|
-
private next: Association;
|
|
7
|
-
|
|
8
|
-
public getNext(): Association {
|
|
9
|
-
return this.next;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
public setNext(next: Association): void {
|
|
13
|
-
if (this.next === undefined) {
|
|
14
|
-
this.next = next;
|
|
15
|
-
next.setPrevious(this);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
private previous: Association;
|
|
20
|
-
|
|
21
|
-
public getPrevious(): Association {
|
|
22
|
-
return this.previous;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
public setPrevious(previous: Association): void {
|
|
26
|
-
if (this.previous === undefined) {
|
|
27
|
-
this.previous = previous;
|
|
28
|
-
previous.setNext(this);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
public getJSON(): string {
|
|
34
|
-
const json: FamixJSONExporter = new FamixJSONExporter("Association", this);
|
|
35
|
-
this.addPropertiesToExporter(json);
|
|
36
|
-
return json.getJSON();
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
public addPropertiesToExporter(exporter: FamixJSONExporter): void {
|
|
40
|
-
super.addPropertiesToExporter(exporter);
|
|
41
|
-
exporter.addProperty("next", this.getNext());
|
|
42
|
-
exporter.addProperty("previous", this.getPrevious());
|
|
43
|
-
}
|
|
44
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { FamixJSONExporter } from "../../famix_JSON_exporter";
|
|
2
|
-
import { ScopingEntity } from "./scoping_entity";
|
|
3
|
-
|
|
4
|
-
export class Namespace extends ScopingEntity {
|
|
5
|
-
|
|
6
|
-
private parentScope: ScopingEntity;
|
|
7
|
-
|
|
8
|
-
public getParentScope(): ScopingEntity {
|
|
9
|
-
return this.parentScope;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
public setParentScope(parentScope: ScopingEntity): void {
|
|
13
|
-
this.parentScope = parentScope;
|
|
14
|
-
parentScope.addNamespace(this);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
public getJSON(): string {
|
|
19
|
-
const json: FamixJSONExporter = new FamixJSONExporter("Namespace", this);
|
|
20
|
-
this.addPropertiesToExporter(json);
|
|
21
|
-
return json.getJSON();
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
public addPropertiesToExporter(exporter: FamixJSONExporter): void {
|
|
25
|
-
super.addPropertiesToExporter(exporter);
|
|
26
|
-
exporter.addProperty("parentScope", this.getParentScope());
|
|
27
|
-
}
|
|
28
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { FamixJSONExporter } from "../../famix_JSON_exporter";
|
|
2
|
-
import { Class } from "./class";
|
|
3
|
-
import { ParameterType } from "./parameter_type";
|
|
4
|
-
|
|
5
|
-
export class ParameterizableClass extends Class {
|
|
6
|
-
|
|
7
|
-
private parameterTypes: Set<ParameterType> = new Set();
|
|
8
|
-
|
|
9
|
-
public getParameterTypes(): Set<ParameterType> {
|
|
10
|
-
return this.parameterTypes;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
public addParameterType(parameterType: ParameterType): void {
|
|
14
|
-
if (!this.parameterTypes.has(parameterType)) {
|
|
15
|
-
this.parameterTypes.add(parameterType);
|
|
16
|
-
parameterType.setParentGeneric(this);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
public getJSON(): string {
|
|
22
|
-
const json: FamixJSONExporter = new FamixJSONExporter("ParameterizableClass", this);
|
|
23
|
-
this.addPropertiesToExporter(json);
|
|
24
|
-
return json.getJSON();
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
public addPropertiesToExporter(exporter: FamixJSONExporter): void {
|
|
28
|
-
super.addPropertiesToExporter(exporter);
|
|
29
|
-
exporter.addProperty("parameterTypes", this.getParameterTypes());
|
|
30
|
-
}
|
|
31
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { FamixJSONExporter } from "../../famix_JSON_exporter";
|
|
2
|
-
import { Interface } from "./interface";
|
|
3
|
-
import { ParameterType } from "./parameter_type";
|
|
4
|
-
|
|
5
|
-
export class ParameterizableInterface extends Interface {
|
|
6
|
-
|
|
7
|
-
private parameterTypes: Set<ParameterType> = new Set();
|
|
8
|
-
|
|
9
|
-
public getParameterTypes(): Set<ParameterType> {
|
|
10
|
-
return this.parameterTypes;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
public addParameterType(parameterType: ParameterType): void {
|
|
14
|
-
if (!this.parameterTypes.has(parameterType)) {
|
|
15
|
-
this.parameterTypes.add(parameterType);
|
|
16
|
-
parameterType.setParentGeneric(this);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
public getJSON(): string {
|
|
22
|
-
const json: FamixJSONExporter = new FamixJSONExporter("ParameterizableInterface", this);
|
|
23
|
-
this.addPropertiesToExporter(json);
|
|
24
|
-
return json.getJSON();
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
public addPropertiesToExporter(exporter: FamixJSONExporter): void {
|
|
28
|
-
super.addPropertiesToExporter(exporter);
|
|
29
|
-
exporter.addProperty("parameterTypes", this.getParameterTypes());
|
|
30
|
-
}
|
|
31
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { FamixJSONExporter } from "../../famix_JSON_exporter";
|
|
2
|
-
import { Type } from "./type";
|
|
3
|
-
|
|
4
|
-
export class ParameterizedType extends Type {
|
|
5
|
-
|
|
6
|
-
private baseType: Type;
|
|
7
|
-
|
|
8
|
-
public getBaseType(): Type {
|
|
9
|
-
return this.baseType;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
public setBaseType(baseType: Type): void {
|
|
13
|
-
this.baseType = baseType;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
private arguments: Set<Type> = new Set();
|
|
17
|
-
|
|
18
|
-
public getArguments(): Set<Type> {
|
|
19
|
-
return this.arguments;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
public addArgument(argument: Type): void {
|
|
23
|
-
if (!this.arguments.has(argument)) {
|
|
24
|
-
this.arguments.add(argument);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
public getJSON(): string {
|
|
30
|
-
const json: FamixJSONExporter = new FamixJSONExporter("ParameterizedType", this);
|
|
31
|
-
this.addPropertiesToExporter(json);
|
|
32
|
-
return json.getJSON();
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
public addPropertiesToExporter(exporter: FamixJSONExporter): void {
|
|
36
|
-
super.addPropertiesToExporter(exporter);
|
|
37
|
-
exporter.addProperty("baseType", this.getBaseType());
|
|
38
|
-
exporter.addProperty("arguments", this.getArguments());
|
|
39
|
-
}
|
|
40
|
-
}
|