Skip to content

Commit

Permalink
fix(stack): drop usae of stack
Browse files Browse the repository at this point in the history
Signed-off-by: muhammed-abdulkadir <[email protected]>
  • Loading branch information
muhammed-abdulkadir committed Oct 31, 2024
1 parent 558cf41 commit 5547294
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 82 deletions.
10 changes: 3 additions & 7 deletions lib/common/graph.js
Original file line number Diff line number Diff line change
Expand Up @@ -178,20 +178,16 @@ class ConcertoGraphVisitor extends DiagramVisitor {
* @protected
*/
visitClassDeclaration(classDeclaration, parameters) {
parameters.stack ??= [];
parameters.stack.push(classDeclaration.getFullyQualifiedName());
parameters.graph.addVertex(classDeclaration.getFullyQualifiedName());

if (classDeclaration.getSuperType()){
parameters.graph.addEdge(classDeclaration.getFullyQualifiedName(), classDeclaration.getSuperType());
// this "if" block adds the types that extend the Super type
if(!parameters.createDependencyGraph && classDeclaration.getSuperType() !== '[email protected]') {
parameters.graph.addVertex(classDeclaration.getSuperType());
parameters.graph.addEdge(classDeclaration.getSuperType(), classDeclaration.getFullyQualifiedName());
}
}
super.visitClassDeclaration(classDeclaration, parameters);
parameters.stack.pop();
}

/**
Expand Down Expand Up @@ -276,7 +272,7 @@ class ConcertoGraphVisitor extends DiagramVisitor {
*/
visitScalarField(scalar, parameters) {
super.visitScalarField(scalar, parameters);
parameters.graph.addEdge(parameters.stack.slice(-1), scalar.getFullyQualifiedTypeName());
parameters.graph.addEdge(scalar.getParent().getFullyQualifiedName(), scalar.getFullyQualifiedTypeName());
}

/**
Expand All @@ -288,7 +284,7 @@ class ConcertoGraphVisitor extends DiagramVisitor {
visitField(field, parameters) {
super.visitField(field, parameters);
if (!ModelUtil.isPrimitiveType(field.getFullyQualifiedTypeName())) {
parameters.graph.addEdge(parameters.stack.slice(-1), field.getFullyQualifiedTypeName());
parameters.graph.addEdge(field.getParent().getFullyQualifiedName(), field.getFullyQualifiedTypeName());
}
}

Expand All @@ -300,7 +296,7 @@ class ConcertoGraphVisitor extends DiagramVisitor {
*/
visitRelationship(relationship, parameters) {
super.visitRelationship(relationship, parameters);
parameters.graph.addEdge(parameters.stack.slice(-1), relationship.getFullyQualifiedTypeName());
parameters.graph.addEdge(relationship.getParent().getFullyQualifiedName(), relationship.getFullyQualifiedTypeName());
}

/**
Expand Down
81 changes: 13 additions & 68 deletions test/common/__snapshots__/graph.js.snap
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ exports[`graph #visitor should visit a model manager 1`] = `
\`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` <--> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
Expand All @@ -21,9 +21,9 @@ exports[`graph #visitor should visit a model manager 1`] = `
\`[email protected]\`
\`[email protected]\`
\`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` <--> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
Expand Down Expand Up @@ -63,44 +63,44 @@ exports[`graph #visitor should visit a model manager 1`] = `
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` <--> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` <--> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` <--> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` <--> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` <--> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` <--> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` <--> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` <--> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` <--> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
Expand Down Expand Up @@ -218,82 +218,27 @@ exports[`graph #visitor should visit find a connected subgraph 1`] = `
\`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` <--> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\`
\`[email protected]\` --> \`String\`
\`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`String\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`String\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\`
\`[email protected]\` <--> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` <--> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` <--> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` <--> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` <--> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` <--> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` <--> \`[email protected]\`
\`[email protected]\`
\`[email protected]\` --> \`[email protected]\`
\`[email protected]\`
Expand Down
15 changes: 8 additions & 7 deletions test/common/graph.js
Original file line number Diff line number Diff line change
Expand Up @@ -82,12 +82,6 @@ describe('graph', function() {
'[email protected]'
)
);
expect(
connectedGraph.hasEdge(
'[email protected]',
'[email protected]'
)
);

const filteredModelManager = modelManager.filter((declaration) =>
connectedGraph.hasVertex(declaration.getFullyQualifiedName())
Expand All @@ -96,7 +90,7 @@ describe('graph', function() {
expect(filteredModelManager.getModelFiles()).toHaveLength(2);
expect(
filteredModelManager.getModelFiles()[0].getAllDeclarations()
).toHaveLength(8);
).toHaveLength(5);

writer.openFile('graph.mmd');
connectedGraph.print(writer);
Expand All @@ -115,6 +109,13 @@ describe('graph', function() {
createDependencyGraph: true
});

expect(
graph.hasEdge(
'[email protected]',
'[email protected]'
)
);

writer.openFile('graph.mmd');
graph.print(writer);
writer.closeFile();
Expand Down

0 comments on commit 5547294

Please sign in to comment.