From 31adae0a4b96d3a6ccf370add4919f6a64a605ea Mon Sep 17 00:00:00 2001 From: Kamil Patryk Kozakowski Date: Mon, 6 Jul 2026 21:57:54 +0200 Subject: [PATCH] fix! from ai multi project --- .../analysis/service/AbstractCallGraphEngine.java | 11 ++++++++++- .../ExtendedStateMachineConfig.json | 4 ++-- .../ExtendedStateMachineConfig.json | 4 ++-- .../MavenOrderStateMachine.json | 2 +- .../OrderStateMachineConfig.json | 2 +- 5 files changed, 16 insertions(+), 7 deletions(-) diff --git a/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/service/AbstractCallGraphEngine.java b/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/service/AbstractCallGraphEngine.java index 87b6bda..7f22480 100644 --- a/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/service/AbstractCallGraphEngine.java +++ b/state_machine_exporter/src/main/java/click/kamil/springstatemachineexporter/analysis/service/AbstractCallGraphEngine.java @@ -471,12 +471,21 @@ public abstract class AbstractCallGraphEngine implements CallGraphEngine { declaredType = polymorphicEvents.isEmpty() ? null : polymorphicEvents.get(0); } else if (exprNode instanceof SimpleName sn) { varName = sn.getIdentifier(); - if (varName.equals(varName.toUpperCase()) && varName.contains("_")) { + if (varName.equals(varName.toUpperCase())) { polymorphicEvents.add(varName); methodName = null; } else { methodName = "VariableReference"; } + } else if (exprNode instanceof QualifiedName qn) { + polymorphicEvents.add(qn.getFullyQualifiedName()); + methodName = null; + } else if (exprNode instanceof FieldAccess fa) { + polymorphicEvents.add(fa.toString()); + methodName = null; + } else if (exprNode instanceof StringLiteral sl) { + polymorphicEvents.add(sl.getLiteralValue()); + methodName = null; } else if (exprNode instanceof ParenthesizedExpression pe && pe.getExpression() instanceof CastExpression ce && ce.getExpression() instanceof ClassInstanceCreation cic) { diff --git a/state_machine_exporter/src/test/resources/golden/ExtendedStateMachineConfig/ExtendedStateMachineConfig.json b/state_machine_exporter/src/test/resources/golden/ExtendedStateMachineConfig/ExtendedStateMachineConfig.json index 835e6c0..b448c4c 100644 --- a/state_machine_exporter/src/test/resources/golden/ExtendedStateMachineConfig/ExtendedStateMachineConfig.json +++ b/state_machine_exporter/src/test/resources/golden/ExtendedStateMachineConfig/ExtendedStateMachineConfig.json @@ -830,7 +830,7 @@ "stateMachineId" : null, "sourceState" : null, "lineNumber" : 22, - "polymorphicEvents" : null, + "polymorphicEvents" : [ "AUTHORIZE" ], "external" : false, "constraint" : null, "ambiguous" : false @@ -864,7 +864,7 @@ "stateMachineId" : null, "sourceState" : null, "lineNumber" : 35, - "polymorphicEvents" : null, + "polymorphicEvents" : [ "CAPTURE" ], "external" : false, "constraint" : null, "ambiguous" : false diff --git a/state_machine_exporter/src/test/resources/golden/ExtendedStateMachineConfig_PROD/ExtendedStateMachineConfig.json b/state_machine_exporter/src/test/resources/golden/ExtendedStateMachineConfig_PROD/ExtendedStateMachineConfig.json index b31f6cb..9bc40bb 100644 --- a/state_machine_exporter/src/test/resources/golden/ExtendedStateMachineConfig_PROD/ExtendedStateMachineConfig.json +++ b/state_machine_exporter/src/test/resources/golden/ExtendedStateMachineConfig_PROD/ExtendedStateMachineConfig.json @@ -830,7 +830,7 @@ "stateMachineId" : null, "sourceState" : null, "lineNumber" : 22, - "polymorphicEvents" : null, + "polymorphicEvents" : [ "AUTHORIZE" ], "external" : false, "constraint" : null, "ambiguous" : false @@ -864,7 +864,7 @@ "stateMachineId" : null, "sourceState" : null, "lineNumber" : 35, - "polymorphicEvents" : null, + "polymorphicEvents" : [ "CAPTURE" ], "external" : false, "constraint" : null, "ambiguous" : false diff --git a/state_machine_exporter/src/test/resources/golden/MavenOrderStateMachine/MavenOrderStateMachine.json b/state_machine_exporter/src/test/resources/golden/MavenOrderStateMachine/MavenOrderStateMachine.json index d55ae45..4b8aa12 100644 --- a/state_machine_exporter/src/test/resources/golden/MavenOrderStateMachine/MavenOrderStateMachine.json +++ b/state_machine_exporter/src/test/resources/golden/MavenOrderStateMachine/MavenOrderStateMachine.json @@ -150,7 +150,7 @@ "stateMachineId" : null, "sourceState" : null, "lineNumber" : 40, - "polymorphicEvents" : null, + "polymorphicEvents" : [ "SUBMIT" ], "external" : false, "constraint" : null, "ambiguous" : false diff --git a/state_machine_exporter/src/test/resources/golden/OrderStateMachineConfig/OrderStateMachineConfig.json b/state_machine_exporter/src/test/resources/golden/OrderStateMachineConfig/OrderStateMachineConfig.json index 3cec865..ad9787c 100644 --- a/state_machine_exporter/src/test/resources/golden/OrderStateMachineConfig/OrderStateMachineConfig.json +++ b/state_machine_exporter/src/test/resources/golden/OrderStateMachineConfig/OrderStateMachineConfig.json @@ -110,7 +110,7 @@ "stateMachineId" : null, "sourceState" : null, "lineNumber" : 18, - "polymorphicEvents" : null, + "polymorphicEvents" : [ "SUBMIT" ], "external" : false, "constraint" : null, "ambiguous" : false