Harden export pipeline identifier consistency and HTML link parity tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-12 11:47:20 +02:00
parent cc2cf1845b
commit dd0363cf64
3 changed files with 556 additions and 24 deletions

View File

@@ -7,7 +7,6 @@ import click.kamil.springstatemachineexporter.analysis.model.CallChain;
import click.kamil.springstatemachineexporter.analysis.model.CodebaseMetadata;
import click.kamil.springstatemachineexporter.analysis.model.MatchedTransition;
import click.kamil.springstatemachineexporter.analysis.model.TriggerPoint;
import click.kamil.springstatemachineexporter.analysis.resolver.MachineEnumCanonicalizer;
import click.kamil.springstatemachineexporter.analysis.resolver.StateMachineTypeResolver;
import click.kamil.springstatemachineexporter.model.Transition;
import lombok.Builder;
@@ -127,29 +126,9 @@ public class AnalysisResult {
if (stateTypeFqn == null && eventTypeFqn == null) {
return;
}
StateMachineTypeResolver.MachineTypes machineTypes =
new StateMachineTypeResolver.MachineTypes(stateTypeFqn, eventTypeFqn);
MachineEnumCanonicalizer.canonicalizeTransitions(transitions, machineTypes);
if (states != null) {
this.states = MachineEnumCanonicalizer.canonicalizeStates(states, stateTypeFqn);
}
if (startStates != null) {
startStates = MachineEnumCanonicalizer.canonicalizeStateLabels(startStates, stateTypeFqn);
}
if (endStates != null) {
endStates = MachineEnumCanonicalizer.canonicalizeStateLabels(endStates, stateTypeFqn);
}
if (metadata != null && metadata.getTriggers() != null) {
List<TriggerPoint> canonicalTriggers = metadata.getTriggers().stream()
.map(trigger -> MachineEnumCanonicalizer.canonicalizeTriggerPoint(trigger, machineTypes))
.collect(java.util.stream.Collectors.toList());
metadata = CodebaseMetadata.builder()
.triggers(canonicalTriggers)
.entryPoints(metadata.getEntryPoints())
.callChains(metadata.getCallChains())
.properties(metadata.getProperties())
.build();
}
click.kamil.springstatemachineexporter.analysis.service.AnalysisResultFinalizer.applyCanonicalization(
this,
new StateMachineTypeResolver.MachineTypes(stateTypeFqn, eventTypeFqn));
}
private static TriggerPoint resolveTrigger(