fix: resolve properties before direct HTML generation
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -0,0 +1,374 @@
|
||||
{
|
||||
"metadata" : {
|
||||
"triggers" : [ {
|
||||
"event" : "FINISH",
|
||||
"className" : "click.kamil.examples.statemachine.extended.web.OrderController",
|
||||
"methodName" : "finishOrder",
|
||||
"sourceModule" : null,
|
||||
"stateMachineId" : null,
|
||||
"lineNumber" : 34
|
||||
}, {
|
||||
"event" : "AUDIT_EVENT",
|
||||
"className" : "click.kamil.examples.statemachine.extended.web.AuditInterceptor",
|
||||
"methodName" : "preHandle",
|
||||
"sourceModule" : null,
|
||||
"stateMachineId" : null,
|
||||
"lineNumber" : 16
|
||||
}, {
|
||||
"event" : "EXTERNAL_TRIGGER",
|
||||
"className" : "click.kamil.examples.statemachine.extended.service.OrderService",
|
||||
"methodName" : "processSubmit",
|
||||
"sourceModule" : null,
|
||||
"stateMachineId" : null,
|
||||
"lineNumber" : 19
|
||||
}, {
|
||||
"event" : "SUBMIT_EVENT",
|
||||
"className" : "click.kamil.examples.statemachine.extended.service.OrderService",
|
||||
"methodName" : "processSubmit",
|
||||
"sourceModule" : null,
|
||||
"stateMachineId" : null,
|
||||
"lineNumber" : 20
|
||||
}, {
|
||||
"event" : "CANCEL_EVENT",
|
||||
"className" : "click.kamil.examples.statemachine.extended.service.OrderService",
|
||||
"methodName" : "processCancel",
|
||||
"sourceModule" : null,
|
||||
"stateMachineId" : null,
|
||||
"lineNumber" : 25
|
||||
}, {
|
||||
"event" : "[LIFECYCLE:RESTORE]",
|
||||
"className" : "click.kamil.examples.statemachine.extended.service.OrderService",
|
||||
"methodName" : "resumeOrder",
|
||||
"sourceModule" : null,
|
||||
"stateMachineId" : null,
|
||||
"lineNumber" : 29
|
||||
}, {
|
||||
"event" : "REACTIVE_EVENT",
|
||||
"className" : "click.kamil.examples.statemachine.extended.service.ReactiveOrderService",
|
||||
"methodName" : "processReactive",
|
||||
"sourceModule" : null,
|
||||
"stateMachineId" : null,
|
||||
"lineNumber" : 18
|
||||
} ],
|
||||
"entryPoints" : [ {
|
||||
"type" : "REST",
|
||||
"name" : "POST /api/orders/submit",
|
||||
"className" : "click.kamil.examples.statemachine.extended.web.OrderController",
|
||||
"methodName" : "submitOrder",
|
||||
"metadata" : {
|
||||
"path" : "/api/orders/submit",
|
||||
"verb" : "POST"
|
||||
},
|
||||
"parameters" : [ ]
|
||||
}, {
|
||||
"type" : "REST",
|
||||
"name" : "POST /api/orders/cancel",
|
||||
"className" : "click.kamil.examples.statemachine.extended.web.OrderController",
|
||||
"methodName" : "cancelOrder",
|
||||
"metadata" : {
|
||||
"path" : "/api/orders/cancel",
|
||||
"verb" : "POST"
|
||||
},
|
||||
"parameters" : [ ]
|
||||
}, {
|
||||
"type" : "REST",
|
||||
"name" : "POST /api/orders/finish",
|
||||
"className" : "click.kamil.examples.statemachine.extended.web.OrderController",
|
||||
"methodName" : "finishOrder",
|
||||
"metadata" : {
|
||||
"path" : "/api/orders/finish",
|
||||
"verb" : "POST"
|
||||
},
|
||||
"parameters" : [ ]
|
||||
}, {
|
||||
"type" : "REST",
|
||||
"name" : "POST /api/orders/resume",
|
||||
"className" : "click.kamil.examples.statemachine.extended.web.OrderController",
|
||||
"methodName" : "resumeOrder",
|
||||
"metadata" : {
|
||||
"path" : "/api/orders/resume",
|
||||
"verb" : "POST"
|
||||
},
|
||||
"parameters" : [ {
|
||||
"name" : "orderId",
|
||||
"type" : "String",
|
||||
"annotations" : [ ]
|
||||
} ]
|
||||
}, {
|
||||
"type" : "REST",
|
||||
"name" : "POST /api/orders/reactive",
|
||||
"className" : "click.kamil.examples.statemachine.extended.web.OrderController",
|
||||
"methodName" : "reactiveOrder",
|
||||
"metadata" : {
|
||||
"path" : "/api/orders/reactive",
|
||||
"verb" : "POST"
|
||||
},
|
||||
"parameters" : [ {
|
||||
"name" : "orderId",
|
||||
"type" : "String",
|
||||
"annotations" : [ ]
|
||||
} ]
|
||||
}, {
|
||||
"type" : "CUSTOM",
|
||||
"name" : "INTERCEPTOR: AuditInterceptor.preHandle",
|
||||
"className" : "click.kamil.examples.statemachine.extended.web.AuditInterceptor",
|
||||
"methodName" : "preHandle",
|
||||
"metadata" : {
|
||||
"interceptorType" : "Spring MVC Interceptor"
|
||||
},
|
||||
"parameters" : [ ]
|
||||
} ],
|
||||
"callChains" : [ {
|
||||
"entryPoint" : {
|
||||
"type" : "REST",
|
||||
"name" : "POST /api/orders/submit",
|
||||
"className" : "click.kamil.examples.statemachine.extended.web.OrderController",
|
||||
"methodName" : "submitOrder",
|
||||
"metadata" : {
|
||||
"path" : "/api/orders/submit",
|
||||
"verb" : "POST"
|
||||
},
|
||||
"parameters" : [ ]
|
||||
},
|
||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.OrderController.submitOrder", "click.kamil.examples.statemachine.extended.service.OrderService.processSubmit" ],
|
||||
"triggerPoint" : {
|
||||
"event" : "EXTERNAL_TRIGGER",
|
||||
"className" : "click.kamil.examples.statemachine.extended.service.OrderService",
|
||||
"methodName" : "processSubmit",
|
||||
"sourceModule" : null,
|
||||
"stateMachineId" : null,
|
||||
"lineNumber" : 19
|
||||
}
|
||||
}, {
|
||||
"entryPoint" : {
|
||||
"type" : "REST",
|
||||
"name" : "POST /api/orders/submit",
|
||||
"className" : "click.kamil.examples.statemachine.extended.web.OrderController",
|
||||
"methodName" : "submitOrder",
|
||||
"metadata" : {
|
||||
"path" : "/api/orders/submit",
|
||||
"verb" : "POST"
|
||||
},
|
||||
"parameters" : [ ]
|
||||
},
|
||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.OrderController.submitOrder", "click.kamil.examples.statemachine.extended.service.OrderService.processSubmit" ],
|
||||
"triggerPoint" : {
|
||||
"event" : "SUBMIT_EVENT",
|
||||
"className" : "click.kamil.examples.statemachine.extended.service.OrderService",
|
||||
"methodName" : "processSubmit",
|
||||
"sourceModule" : null,
|
||||
"stateMachineId" : null,
|
||||
"lineNumber" : 20
|
||||
}
|
||||
}, {
|
||||
"entryPoint" : {
|
||||
"type" : "REST",
|
||||
"name" : "POST /api/orders/cancel",
|
||||
"className" : "click.kamil.examples.statemachine.extended.web.OrderController",
|
||||
"methodName" : "cancelOrder",
|
||||
"metadata" : {
|
||||
"path" : "/api/orders/cancel",
|
||||
"verb" : "POST"
|
||||
},
|
||||
"parameters" : [ ]
|
||||
},
|
||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.OrderController.cancelOrder", "click.kamil.examples.statemachine.extended.service.OrderService.processCancel" ],
|
||||
"triggerPoint" : {
|
||||
"event" : "CANCEL_EVENT",
|
||||
"className" : "click.kamil.examples.statemachine.extended.service.OrderService",
|
||||
"methodName" : "processCancel",
|
||||
"sourceModule" : null,
|
||||
"stateMachineId" : null,
|
||||
"lineNumber" : 25
|
||||
}
|
||||
}, {
|
||||
"entryPoint" : {
|
||||
"type" : "REST",
|
||||
"name" : "POST /api/orders/finish",
|
||||
"className" : "click.kamil.examples.statemachine.extended.web.OrderController",
|
||||
"methodName" : "finishOrder",
|
||||
"metadata" : {
|
||||
"path" : "/api/orders/finish",
|
||||
"verb" : "POST"
|
||||
},
|
||||
"parameters" : [ ]
|
||||
},
|
||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.OrderController.finishOrder" ],
|
||||
"triggerPoint" : {
|
||||
"event" : "FINISH",
|
||||
"className" : "click.kamil.examples.statemachine.extended.web.OrderController",
|
||||
"methodName" : "finishOrder",
|
||||
"sourceModule" : null,
|
||||
"stateMachineId" : null,
|
||||
"lineNumber" : 34
|
||||
}
|
||||
}, {
|
||||
"entryPoint" : {
|
||||
"type" : "REST",
|
||||
"name" : "POST /api/orders/resume",
|
||||
"className" : "click.kamil.examples.statemachine.extended.web.OrderController",
|
||||
"methodName" : "resumeOrder",
|
||||
"metadata" : {
|
||||
"path" : "/api/orders/resume",
|
||||
"verb" : "POST"
|
||||
},
|
||||
"parameters" : [ {
|
||||
"name" : "orderId",
|
||||
"type" : "String",
|
||||
"annotations" : [ ]
|
||||
} ]
|
||||
},
|
||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.OrderController.resumeOrder", "click.kamil.examples.statemachine.extended.service.OrderService.resumeOrder" ],
|
||||
"triggerPoint" : {
|
||||
"event" : "[LIFECYCLE:RESTORE]",
|
||||
"className" : "click.kamil.examples.statemachine.extended.service.OrderService",
|
||||
"methodName" : "resumeOrder",
|
||||
"sourceModule" : null,
|
||||
"stateMachineId" : null,
|
||||
"lineNumber" : 29
|
||||
}
|
||||
}, {
|
||||
"entryPoint" : {
|
||||
"type" : "REST",
|
||||
"name" : "POST /api/orders/reactive",
|
||||
"className" : "click.kamil.examples.statemachine.extended.web.OrderController",
|
||||
"methodName" : "reactiveOrder",
|
||||
"metadata" : {
|
||||
"path" : "/api/orders/reactive",
|
||||
"verb" : "POST"
|
||||
},
|
||||
"parameters" : [ {
|
||||
"name" : "orderId",
|
||||
"type" : "String",
|
||||
"annotations" : [ ]
|
||||
} ]
|
||||
},
|
||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.OrderController.reactiveOrder", "click.kamil.examples.statemachine.extended.service.ReactiveOrderService.processReactive" ],
|
||||
"triggerPoint" : {
|
||||
"event" : "REACTIVE_EVENT",
|
||||
"className" : "click.kamil.examples.statemachine.extended.service.ReactiveOrderService",
|
||||
"methodName" : "processReactive",
|
||||
"sourceModule" : null,
|
||||
"stateMachineId" : null,
|
||||
"lineNumber" : 18
|
||||
}
|
||||
}, {
|
||||
"entryPoint" : {
|
||||
"type" : "CUSTOM",
|
||||
"name" : "INTERCEPTOR: AuditInterceptor.preHandle",
|
||||
"className" : "click.kamil.examples.statemachine.extended.web.AuditInterceptor",
|
||||
"methodName" : "preHandle",
|
||||
"metadata" : {
|
||||
"interceptorType" : "Spring MVC Interceptor"
|
||||
},
|
||||
"parameters" : [ ]
|
||||
},
|
||||
"methodChain" : [ "click.kamil.examples.statemachine.extended.web.AuditInterceptor.preHandle" ],
|
||||
"triggerPoint" : {
|
||||
"event" : "AUDIT_EVENT",
|
||||
"className" : "click.kamil.examples.statemachine.extended.web.AuditInterceptor",
|
||||
"methodName" : "preHandle",
|
||||
"sourceModule" : null,
|
||||
"stateMachineId" : null,
|
||||
"lineNumber" : 16
|
||||
}
|
||||
} ],
|
||||
"properties" : {
|
||||
"default" : {
|
||||
"app.states.initial" : "INIT_STATE"
|
||||
},
|
||||
"prod" : {
|
||||
"app.states.initial" : "PROD_INITIAL"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name" : "click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig",
|
||||
"renderChoicesAsDiamonds" : true,
|
||||
"startStates" : [ "${app.states.initial:START}" ],
|
||||
"transitions" : [ {
|
||||
"type" : "EXTERNAL",
|
||||
"sourceStates" : [ {
|
||||
"rawName" : "\"START\"",
|
||||
"fullIdentifier" : "START"
|
||||
} ],
|
||||
"targetStates" : [ {
|
||||
"rawName" : "\"PROCESSING\"",
|
||||
"fullIdentifier" : "PROCESSING"
|
||||
} ],
|
||||
"event" : "SUBMIT_EVENT",
|
||||
"guard" : null,
|
||||
"actions" : [ ],
|
||||
"order" : null
|
||||
}, {
|
||||
"type" : "EXTERNAL",
|
||||
"sourceStates" : [ {
|
||||
"rawName" : "\"PROCESSING\"",
|
||||
"fullIdentifier" : "PROCESSING"
|
||||
} ],
|
||||
"targetStates" : [ {
|
||||
"rawName" : "\"COMPLETED\"",
|
||||
"fullIdentifier" : "COMPLETED"
|
||||
} ],
|
||||
"event" : "FINISH",
|
||||
"guard" : null,
|
||||
"actions" : [ ],
|
||||
"order" : null
|
||||
}, {
|
||||
"type" : "EXTERNAL",
|
||||
"sourceStates" : [ {
|
||||
"rawName" : "\"PROCESSING\"",
|
||||
"fullIdentifier" : "PROCESSING"
|
||||
} ],
|
||||
"targetStates" : [ {
|
||||
"rawName" : "\"CANCELLED\"",
|
||||
"fullIdentifier" : "CANCELLED"
|
||||
} ],
|
||||
"event" : "CANCEL_EVENT",
|
||||
"guard" : null,
|
||||
"actions" : [ ],
|
||||
"order" : null
|
||||
}, {
|
||||
"type" : "EXTERNAL",
|
||||
"sourceStates" : [ {
|
||||
"rawName" : "\"START\"",
|
||||
"fullIdentifier" : "START"
|
||||
} ],
|
||||
"targetStates" : [ {
|
||||
"rawName" : "\"PROCESSING\"",
|
||||
"fullIdentifier" : "PROCESSING"
|
||||
} ],
|
||||
"event" : "REACTIVE_EVENT",
|
||||
"guard" : null,
|
||||
"actions" : [ ],
|
||||
"order" : null
|
||||
}, {
|
||||
"type" : "EXTERNAL",
|
||||
"sourceStates" : [ {
|
||||
"rawName" : "\"START\"",
|
||||
"fullIdentifier" : "START"
|
||||
} ],
|
||||
"targetStates" : [ {
|
||||
"rawName" : "\"START\"",
|
||||
"fullIdentifier" : "START"
|
||||
} ],
|
||||
"event" : "AUDIT_EVENT",
|
||||
"guard" : null,
|
||||
"actions" : [ ],
|
||||
"order" : null
|
||||
}, {
|
||||
"type" : "EXTERNAL",
|
||||
"sourceStates" : [ {
|
||||
"rawName" : "\"START\"",
|
||||
"fullIdentifier" : "START"
|
||||
} ],
|
||||
"targetStates" : [ {
|
||||
"rawName" : "\"PROCESSING\"",
|
||||
"fullIdentifier" : "PROCESSING"
|
||||
} ],
|
||||
"event" : "EXTERNAL_TRIGGER",
|
||||
"guard" : null,
|
||||
"actions" : [ ],
|
||||
"order" : null
|
||||
} ],
|
||||
"endStates" : [ "CANCELLED", "COMPLETED" ]
|
||||
}
|
||||
@@ -17,7 +17,9 @@ import org.eclipse.jdt.core.dom.LambdaExpression;
|
||||
import org.eclipse.jdt.core.dom.MethodDeclaration;
|
||||
import org.eclipse.jdt.core.dom.MethodInvocation;
|
||||
import org.eclipse.jdt.core.dom.SimpleName;
|
||||
|
||||
import org.eclipse.jdt.core.dom.ITypeBinding;
|
||||
import org.eclipse.jdt.core.dom.MethodReference;
|
||||
import org.eclipse.jdt.core.dom.TypeDeclaration;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
@@ -177,15 +179,15 @@ public class AstTransitionParser {
|
||||
Expression secondArg = resolveArg((Expression) args.get(1), argsMap);
|
||||
if ("last".equals(methodName)) {
|
||||
// For 'last', the second argument is an action, not a guard
|
||||
parseAction(secondArg, t, cu);
|
||||
parseAction(secondArg, t, cu, context);
|
||||
} else {
|
||||
// For 'first' and 'then', the second argument is a guard
|
||||
parseGuard(secondArg, t, cu);
|
||||
parseGuard(secondArg, t, cu, context);
|
||||
}
|
||||
}
|
||||
if (args.size() > 2) {
|
||||
Expression thirdArg = resolveArg((Expression) args.get(2), argsMap);
|
||||
parseAction(thirdArg, t, cu);
|
||||
parseAction(thirdArg, t, cu, context);
|
||||
}
|
||||
t.setOrder(orderCounter++);
|
||||
transitions.add(t);
|
||||
@@ -228,43 +230,96 @@ public class AstTransitionParser {
|
||||
}
|
||||
case "guard" -> {
|
||||
Expression resolved = resolveArg((Expression) args.get(0), argsMap);
|
||||
parseGuard(resolved, t, cu);
|
||||
parseGuard(resolved, t, cu, context);
|
||||
}
|
||||
case "action" -> {
|
||||
Expression resolved = resolveArg((Expression) args.get(0), argsMap);
|
||||
parseAction(resolved, t, cu);
|
||||
parseAction(resolved, t, cu, context);
|
||||
}
|
||||
}
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
private static String extractInternalLogic(Expression expr, CompilationUnit cu) {
|
||||
private static String extractInternalLogic(Expression expr, CompilationUnit cu, CodebaseContext context) {
|
||||
if (expr == null) return null;
|
||||
|
||||
// 1. Lambda Expressions
|
||||
if (expr instanceof LambdaExpression le) {
|
||||
return le.toString();
|
||||
}
|
||||
|
||||
// 2. Anonymous Classes
|
||||
if (expr instanceof ClassInstanceCreation cic && cic.getAnonymousClassDeclaration() != null) {
|
||||
return cic.toString();
|
||||
}
|
||||
|
||||
// 3. Method Invocations
|
||||
if (expr instanceof MethodInvocation mi) {
|
||||
IMethodBinding binding = mi.resolveMethodBinding();
|
||||
if (binding != null) {
|
||||
// Try same file
|
||||
ASTNode declNode = cu.findDeclaringNode(binding.getKey());
|
||||
if (declNode instanceof MethodDeclaration md) {
|
||||
return md.toString();
|
||||
}
|
||||
|
||||
// Try other files via CodebaseContext
|
||||
ITypeBinding declaringClass = binding.getDeclaringClass();
|
||||
if (declaringClass != null) {
|
||||
String fqn = declaringClass.getQualifiedName();
|
||||
TypeDeclaration td = context.getTypeDeclaration(fqn);
|
||||
if (td != null) {
|
||||
for (MethodDeclaration md : td.getMethods()) {
|
||||
if (md.getName().getIdentifier().equals(binding.getName()) &&
|
||||
md.parameters().size() == binding.getParameterTypes().length) {
|
||||
return md.toString();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 4. Method References
|
||||
if (expr instanceof MethodReference mr) {
|
||||
IMethodBinding binding = mr.resolveMethodBinding();
|
||||
if (binding != null) {
|
||||
ITypeBinding declaringClass = binding.getDeclaringClass();
|
||||
if (declaringClass != null) {
|
||||
String fqn = declaringClass.getQualifiedName();
|
||||
TypeDeclaration td = context.getTypeDeclaration(fqn);
|
||||
if (td != null) {
|
||||
for (MethodDeclaration md : td.getMethods()) {
|
||||
if (md.getName().getIdentifier().equals(binding.getName()) &&
|
||||
md.parameters().size() == binding.getParameterTypes().length) {
|
||||
return md.toString();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return mr.toString();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private static void parseGuard(Object arg, Transition t, CompilationUnit cu) {
|
||||
private static void parseGuard(Object arg, Transition t, CompilationUnit cu, CodebaseContext context) {
|
||||
QuotedExpression quotedExpr = QuotedExpression.of(arg);
|
||||
if (quotedExpr != null) {
|
||||
String internalLogic = extractInternalLogic(quotedExpr.getExpression(), cu);
|
||||
t.setGuard(Guard.of(quotedExpr.toStringWithoutQuotes(), isLambdaOrAnonymous(quotedExpr.getExpression()), internalLogic));
|
||||
String internalLogic = extractInternalLogic(quotedExpr.getExpression(), cu, context);
|
||||
int lineNumber = cu.getLineNumber(quotedExpr.getExpression().getStartPosition());
|
||||
t.setGuard(Guard.of(quotedExpr.toStringWithoutQuotes(), isLambdaOrAnonymous(quotedExpr.getExpression()), internalLogic, lineNumber));
|
||||
}
|
||||
}
|
||||
|
||||
private static void parseAction(Object arg, Transition t, CompilationUnit cu) {
|
||||
private static void parseAction(Object arg, Transition t, CompilationUnit cu, CodebaseContext context) {
|
||||
QuotedExpression quotedExpr = QuotedExpression.of(arg);
|
||||
if (quotedExpr != null) {
|
||||
String internalLogic = extractInternalLogic(quotedExpr.getExpression(), cu);
|
||||
t.getActions().add(Action.of(quotedExpr.toStringWithoutQuotes(), isLambdaOrAnonymous(quotedExpr.getExpression()), internalLogic));
|
||||
String internalLogic = extractInternalLogic(quotedExpr.getExpression(), cu, context);
|
||||
int lineNumber = cu.getLineNumber(quotedExpr.getExpression().getStartPosition());
|
||||
t.getActions().add(Action.of(quotedExpr.toStringWithoutQuotes(), isLambdaOrAnonymous(quotedExpr.getExpression()), internalLogic, lineNumber));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package click.kamil.springstatemachineexporter.model;
|
||||
|
||||
public record Action(String expression, boolean isLambda, String internalLogic) {
|
||||
public static Action of(String expression, boolean isLambda, String internalLogic) {
|
||||
return expression != null ? new Action(expression, isLambda, internalLogic) : null;
|
||||
public record Action(String expression, boolean isLambda, String internalLogic, Integer lineNumber) {
|
||||
public static Action of(String expression, boolean isLambda, String internalLogic, Integer lineNumber) {
|
||||
return expression != null ? new Action(expression, isLambda, internalLogic, lineNumber) : null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package click.kamil.springstatemachineexporter.model;
|
||||
|
||||
public record Guard(String expression, boolean isLambda, String internalLogic) {
|
||||
public static Guard of(String expression, boolean isLambda, String internalLogic) {
|
||||
return expression != null ? new Guard(expression, isLambda, internalLogic) : null;
|
||||
public record Guard(String expression, boolean isLambda, String internalLogic, Integer lineNumber) {
|
||||
public static Guard of(String expression, boolean isLambda, String internalLogic, Integer lineNumber) {
|
||||
return expression != null ? new Guard(expression, isLambda, internalLogic, lineNumber) : null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,7 +93,7 @@ public class ExportService {
|
||||
context.scan(inputDir);
|
||||
|
||||
CodebaseIntelligenceProvider intelligence = new JdtIntelligenceProvider(context, inputDir);
|
||||
exportAll(context, intelligence, outputDir, selectedFormats, renderChoicesAsDiamonds, flows, machineFilter);
|
||||
exportAll(context, intelligence, outputDir, selectedFormats, renderChoicesAsDiamonds, flows, machineFilter, activeProfiles != null ? activeProfiles : Collections.emptyList());
|
||||
}
|
||||
|
||||
public void runJsonExporter(Path jsonFile, Path outputDir, List<String> selectedFormats) throws IOException {
|
||||
@@ -131,7 +131,7 @@ public class ExportService {
|
||||
result.applyResolution(merged);
|
||||
}
|
||||
|
||||
private void exportAll(CodebaseContext context, CodebaseIntelligenceProvider intelligence, Path outputDir, List<String> selectedFormats, boolean renderChoicesAsDiamonds, List<BusinessFlow> flows, String machineFilter) throws IOException {
|
||||
private void exportAll(CodebaseContext context, CodebaseIntelligenceProvider intelligence, Path outputDir, List<String> selectedFormats, boolean renderChoicesAsDiamonds, List<BusinessFlow> flows, String machineFilter, List<String> activeProfiles) throws IOException {
|
||||
Set<String> processedLocations = new HashSet<>();
|
||||
|
||||
// 1. Find entry point classes (annotated or extending adapter)
|
||||
@@ -140,7 +140,7 @@ public class ExportService {
|
||||
String fqn = context.getFqn(td);
|
||||
if (machineFilter != null && !fqn.contains(machineFilter)) continue;
|
||||
if (processedLocations.add(fqn)) {
|
||||
processEntryPoint(td, outputDir, context, intelligence, selectedFormats, renderChoicesAsDiamonds, flows);
|
||||
processEntryPoint(td, outputDir, context, intelligence, selectedFormats, renderChoicesAsDiamonds, flows, activeProfiles);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -154,12 +154,12 @@ public class ExportService {
|
||||
|
||||
if (machineFilter != null && !uniqueId.contains(machineFilter)) continue;
|
||||
if (processedLocations.add(uniqueId)) {
|
||||
processBeanMethod(m, outputDir, context, intelligence, selectedFormats, renderChoicesAsDiamonds, flows);
|
||||
processBeanMethod(m, outputDir, context, intelligence, selectedFormats, renderChoicesAsDiamonds, flows, activeProfiles);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void processEntryPoint(TypeDeclaration td, Path outputDir, CodebaseContext context, CodebaseIntelligenceProvider intelligence, List<String> selectedFormats, boolean renderChoicesAsDiamonds, List<BusinessFlow> flows) throws IOException {
|
||||
private void processEntryPoint(TypeDeclaration td, Path outputDir, CodebaseContext context, CodebaseIntelligenceProvider intelligence, List<String> selectedFormats, boolean renderChoicesAsDiamonds, List<BusinessFlow> flows, List<String> activeProfiles) throws IOException {
|
||||
String className = context.getFqn(td);
|
||||
log.info("Processing state machine config: {}", className);
|
||||
|
||||
@@ -189,10 +189,12 @@ public class ExportService {
|
||||
|
||||
enrichmentService.enrich(result, context, intelligence);
|
||||
|
||||
resolveProperties(result, activeProfiles);
|
||||
|
||||
generateOutputs(outputDir, result, selectedFormats);
|
||||
}
|
||||
|
||||
private void processBeanMethod(MethodDeclaration m, Path outputDir, CodebaseContext context, CodebaseIntelligenceProvider intelligence, List<String> selectedFormats, boolean renderChoicesAsDiamonds, List<BusinessFlow> flows) throws IOException {
|
||||
private void processBeanMethod(MethodDeclaration m, Path outputDir, CodebaseContext context, CodebaseIntelligenceProvider intelligence, List<String> selectedFormats, boolean renderChoicesAsDiamonds, List<BusinessFlow> flows, List<String> activeProfiles) throws IOException {
|
||||
TypeDeclaration parentClass = (TypeDeclaration) m.getParent();
|
||||
String parentFqn = context.getFqn(parentClass);
|
||||
String methodName = m.getName().getIdentifier();
|
||||
@@ -218,6 +220,8 @@ public class ExportService {
|
||||
|
||||
enrichmentService.enrich(result, context, intelligence);
|
||||
|
||||
resolveProperties(result, activeProfiles);
|
||||
|
||||
generateOutputs(outputDir, result, selectedFormats);
|
||||
}
|
||||
|
||||
|
||||
@@ -215,6 +215,54 @@ class AstTransitionParserTest {
|
||||
assertThat(transitions.get(1).getEvent()).isEqualTo("E2");
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldExtractInternalLogicForLambda() {
|
||||
String source = """
|
||||
public class TestClass {
|
||||
public void configure(StateMachineTransitionConfigurer<String, String> transitions) throws Exception {
|
||||
transitions.withExternal()
|
||||
.source("S1")
|
||||
.target("S2")
|
||||
.guard(context -> context.getMessage() != null);
|
||||
}
|
||||
}
|
||||
""";
|
||||
MethodDeclaration method = createMethodDeclaration(source);
|
||||
|
||||
List<Transition> transitions = AstTransitionParser.parseTransitions(method, context);
|
||||
|
||||
assertThat(transitions).hasSize(1);
|
||||
assertThat(transitions.getFirst().getGuard().internalLogic())
|
||||
.contains("context.getMessage() != null");
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldExtractInternalLogicForAnonymousClass() {
|
||||
String source = """
|
||||
public class TestClass {
|
||||
public void configure(StateMachineTransitionConfigurer<String, String> transitions) throws Exception {
|
||||
transitions
|
||||
.withExternal()
|
||||
.source("S1")
|
||||
.target("S2")
|
||||
.action(new Action<String, String>() {
|
||||
@Override
|
||||
public void execute(StateContext<String, String> context) {
|
||||
System.out.println("Hello");
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
""";
|
||||
MethodDeclaration method = createMethodDeclaration(source);
|
||||
|
||||
List<Transition> transitions = AstTransitionParser.parseTransitions(method, context);
|
||||
|
||||
assertThat(transitions).hasSize(1);
|
||||
assertThat(transitions.getFirst().getActions().get(0).internalLogic())
|
||||
.contains("System.out.println(\"Hello\")");
|
||||
}
|
||||
|
||||
private MethodDeclaration createMethodDeclaration(String source) {
|
||||
ASTParser parser = ASTParser.newParser(AST.getJLSLatest());
|
||||
parser.setKind(ASTParser.K_COMPILATION_UNIT);
|
||||
|
||||
@@ -4,8 +4,10 @@
|
||||
"entryPoints" : [ ],
|
||||
"callChains" : [ ],
|
||||
"properties" : {
|
||||
"default" : {
|
||||
"spring.application.name" : "statemachinedemo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name" : "click.kamil.examples.statemachine.complex.ComplexStateMachineConfig",
|
||||
"renderChoicesAsDiamonds" : true,
|
||||
@@ -234,7 +236,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value1\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 86
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -252,7 +255,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value2\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 87
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -284,7 +288,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardEventHeaderEquals(\"header1\",\"foo\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 92
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -316,7 +321,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value3\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 97
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -348,7 +354,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"reset\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 102
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -380,7 +387,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardEventHeaderEquals(\"header2\",\"bar\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 107
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -412,7 +420,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"goTo13\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 112
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -430,7 +439,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"goTo14\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 113
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -462,7 +472,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"goBack10\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 118
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -494,7 +505,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"loop12\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 123
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -526,7 +538,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"stepBack\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 128
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -544,7 +557,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"stepBackMore\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 129
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -576,7 +590,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"forward9\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 134
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
|
||||
@@ -261,7 +261,9 @@
|
||||
"lineNumber" : 17
|
||||
}
|
||||
} ],
|
||||
"properties" : { }
|
||||
"properties" : {
|
||||
"default" : { }
|
||||
}
|
||||
},
|
||||
"name" : "click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig",
|
||||
"renderChoicesAsDiamonds" : true,
|
||||
@@ -294,7 +296,8 @@
|
||||
"guard" : {
|
||||
"expression" : "(c) -> true",
|
||||
"isLambda" : true,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : "(c) -> true",
|
||||
"lineNumber" : 41
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
|
||||
@@ -274,7 +274,12 @@
|
||||
}
|
||||
} ],
|
||||
"properties" : {
|
||||
"default" : {
|
||||
"app.states.initial" : "INIT_STATE"
|
||||
},
|
||||
"prod" : {
|
||||
"app.states.initial" : "PROD_INITIAL"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name" : "click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig",
|
||||
|
||||
@@ -274,8 +274,13 @@
|
||||
}
|
||||
} ],
|
||||
"properties" : {
|
||||
"default" : {
|
||||
"app.states.initial" : "INIT_STATE"
|
||||
},
|
||||
"prod" : {
|
||||
"app.states.initial" : "PROD_INITIAL"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name" : "click.kamil.examples.statemachine.extended.config.ExtendedStateMachineConfig",
|
||||
"renderChoicesAsDiamonds" : true,
|
||||
|
||||
@@ -4,8 +4,10 @@
|
||||
"entryPoints" : [ ],
|
||||
"callChains" : [ ],
|
||||
"properties" : {
|
||||
"default" : {
|
||||
"spring.application.name" : "statemachinedemo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name" : "click.kamil.examples.statemachine.inheritanceextrafunctionsstate3.F1StateMachineConfiguration",
|
||||
"renderChoicesAsDiamonds" : true,
|
||||
@@ -318,7 +320,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value1\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 120
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -350,7 +353,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value1\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 126
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -368,7 +372,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value2\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 127
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -400,7 +405,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardEventHeaderEquals(\"header1\",\"foo\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 132
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -432,7 +438,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value3\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 137
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -464,7 +471,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"reset\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 142
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -496,7 +504,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardEventHeaderEquals(\"header2\",\"bar\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 147
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -528,7 +537,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"goTo13\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 152
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -546,7 +556,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"goTo14\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 153
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -578,7 +589,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"goBack10\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 158
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -610,7 +622,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"loop12\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 163
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -642,7 +655,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"stepBack\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 168
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -660,7 +674,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"stepBackMore\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 169
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -692,7 +707,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"forward9\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 174
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -738,7 +754,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardEventHeaderEquals(\"header1\",\"foo\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 31
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
|
||||
@@ -4,8 +4,10 @@
|
||||
"entryPoints" : [ ],
|
||||
"callChains" : [ ],
|
||||
"properties" : {
|
||||
"default" : {
|
||||
"spring.application.name" : "statemachinedemo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name" : "click.kamil.examples.statemachine.inheritanceextrafunctionsstate3.F2StateMachineConfiguration",
|
||||
"renderChoicesAsDiamonds" : true,
|
||||
@@ -318,7 +320,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value1\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 120
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -350,7 +353,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value1\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 126
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -368,7 +372,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value2\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 127
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -400,7 +405,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardEventHeaderEquals(\"header1\",\"foo\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 132
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -432,7 +438,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value3\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 137
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -464,7 +471,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"reset\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 142
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -496,7 +504,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardEventHeaderEquals(\"header2\",\"bar\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 147
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -528,7 +537,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"goTo13\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 152
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -546,7 +556,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"goTo14\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 153
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -578,7 +589,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"goBack10\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 158
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -610,7 +622,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"loop12\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 163
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -642,7 +655,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"stepBack\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 168
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -660,7 +674,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"stepBackMore\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 169
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -692,7 +707,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"forward9\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 174
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -738,7 +754,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardEventHeaderEquals(\"header1\",\"foo\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 33
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
|
||||
@@ -4,8 +4,10 @@
|
||||
"entryPoints" : [ ],
|
||||
"callChains" : [ ],
|
||||
"properties" : {
|
||||
"default" : {
|
||||
"spring.application.name" : "statemachinedemo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name" : "click.kamil.examples.statemachine.forkjoin.ForkJoinStateMachineConfig",
|
||||
"renderChoicesAsDiamonds" : true,
|
||||
|
||||
@@ -4,8 +4,10 @@
|
||||
"entryPoints" : [ ],
|
||||
"callChains" : [ ],
|
||||
"properties" : {
|
||||
"default" : {
|
||||
"spring.application.name" : "statemachinedemo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name" : "click.kamil.examples.statemachine.inheritanceextrafunctionsstate3.G1StateMachineConfiguration",
|
||||
"renderChoicesAsDiamonds" : true,
|
||||
@@ -234,7 +236,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value1\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 98
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -266,7 +269,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"stepBack\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 104
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -284,7 +288,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"stepBackMore\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 105
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -316,7 +321,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"forward9\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 110
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
|
||||
@@ -4,8 +4,10 @@
|
||||
"entryPoints" : [ ],
|
||||
"callChains" : [ ],
|
||||
"properties" : {
|
||||
"default" : {
|
||||
"spring.application.name" : "statemachinedemo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name" : "click.kamil.examples.statemachine.inheritanceextrafunctionsstate3.G2StateMachineConfiguration",
|
||||
"renderChoicesAsDiamonds" : true,
|
||||
@@ -234,7 +236,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value1\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 98
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -266,7 +269,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"stepBack\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 104
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -284,7 +288,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"stepBackMore\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 105
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -316,7 +321,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"forward9\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 110
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
|
||||
@@ -41,7 +41,9 @@
|
||||
"lineNumber" : 15
|
||||
}
|
||||
} ],
|
||||
"properties" : { }
|
||||
"properties" : {
|
||||
"default" : { }
|
||||
}
|
||||
},
|
||||
"name" : "click.kamil.examples.statemachine.inheritance.config.InheritanceStateMachineConfig",
|
||||
"renderChoicesAsDiamonds" : true,
|
||||
|
||||
@@ -4,8 +4,10 @@
|
||||
"entryPoints" : [ ],
|
||||
"callChains" : [ ],
|
||||
"properties" : {
|
||||
"default" : {
|
||||
"spring.application.name" : "statemachinedemo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name" : "click.kamil.examples.statemachine.enumstate.KamilEnumStateMachineConfiguration",
|
||||
"renderChoicesAsDiamonds" : true,
|
||||
@@ -52,7 +54,8 @@
|
||||
"guard" : {
|
||||
"expression" : "new Guard<OrderStates,OrderEvents>(){\n @Override public boolean evaluate( StateContext<OrderStates,OrderEvents> context){\n return false;\n }\n}\n",
|
||||
"isLambda" : true,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : "new Guard<OrderStates,OrderEvents>(){\n @Override public boolean evaluate( StateContext<OrderStates,OrderEvents> context){\n return false;\n }\n}\n",
|
||||
"lineNumber" : 29
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : null
|
||||
@@ -109,7 +112,8 @@
|
||||
"guard" : {
|
||||
"expression" : "new Guard<OrderStates,OrderEvents>(){\n @Override public boolean evaluate( StateContext<OrderStates,OrderEvents> context){\n return true;\n }\n}\n",
|
||||
"isLambda" : true,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : "new Guard<OrderStates,OrderEvents>(){\n @Override public boolean evaluate( StateContext<OrderStates,OrderEvents> context){\n return true;\n }\n}\n",
|
||||
"lineNumber" : 46
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -127,7 +131,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guard1",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 52
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -145,7 +150,8 @@
|
||||
"guard" : {
|
||||
"expression" : "new Guard<OrderStates,OrderEvents>(){\n @Override public boolean evaluate( StateContext<OrderStates,OrderEvents> context){\n return false;\n }\n}\n",
|
||||
"isLambda" : true,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : "new Guard<OrderStates,OrderEvents>(){\n @Override public boolean evaluate( StateContext<OrderStates,OrderEvents> context){\n return false;\n }\n}\n",
|
||||
"lineNumber" : 53
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 2
|
||||
@@ -203,11 +209,13 @@
|
||||
"actions" : [ {
|
||||
"expression" : "new Action<OrderStates,OrderEvents>(){\n @Override public void execute( StateContext<OrderStates,OrderEvents> context){\n }\n}\n",
|
||||
"isLambda" : true,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : "new Action<OrderStates,OrderEvents>(){\n @Override public void execute( StateContext<OrderStates,OrderEvents> context){\n }\n}\n",
|
||||
"lineNumber" : 63
|
||||
}, {
|
||||
"expression" : "action2",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 67
|
||||
} ],
|
||||
"order" : null
|
||||
} ],
|
||||
|
||||
@@ -4,8 +4,10 @@
|
||||
"entryPoints" : [ ],
|
||||
"callChains" : [ ],
|
||||
"properties" : {
|
||||
"default" : {
|
||||
"spring.application.name" : "statemachinedemo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name" : "click.kamil.examples.statemachine.inheritancestate.OneStateMachineConfiguration",
|
||||
"renderChoicesAsDiamonds" : true,
|
||||
@@ -248,7 +250,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value1\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 91
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -280,7 +283,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value1\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 97
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -298,7 +302,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value2\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 98
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -330,7 +335,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardEventHeaderEquals(\"header1\",\"foo\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 103
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -362,7 +368,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value3\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 108
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -394,7 +401,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"reset\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 113
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -426,7 +434,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardEventHeaderEquals(\"header2\",\"bar\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 118
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -458,7 +467,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"goTo13\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 123
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -476,7 +486,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"goTo14\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 124
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -508,7 +519,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"goBack10\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 129
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -540,7 +552,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"loop12\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 134
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -572,7 +585,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"stepBack\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 139
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -590,7 +604,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"stepBackMore\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 140
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -622,7 +637,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"forward9\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 145
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
|
||||
@@ -4,8 +4,10 @@
|
||||
"entryPoints" : [ ],
|
||||
"callChains" : [ ],
|
||||
"properties" : {
|
||||
"default" : {
|
||||
"spring.application.name" : "statemachinedemo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name" : "click.kamil.examples.statemachine.simple.SimpleEnumStateMachineConfiguration",
|
||||
"renderChoicesAsDiamonds" : true,
|
||||
@@ -52,7 +54,8 @@
|
||||
"guard" : {
|
||||
"expression" : "new Guard<OrderStates,OrderEvents>(){\n @Override public boolean evaluate( StateContext<OrderStates,OrderEvents> context){\n return false;\n }\n}\n",
|
||||
"isLambda" : true,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : "new Guard<OrderStates,OrderEvents>(){\n @Override public boolean evaluate( StateContext<OrderStates,OrderEvents> context){\n return false;\n }\n}\n",
|
||||
"lineNumber" : 29
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : null
|
||||
@@ -95,7 +98,8 @@
|
||||
"guard" : {
|
||||
"expression" : "new Guard<OrderStates,OrderEvents>(){\n @Override public boolean evaluate( StateContext<OrderStates,OrderEvents> context){\n return false;\n }\n}\n",
|
||||
"isLambda" : true,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : "new Guard<OrderStates,OrderEvents>(){\n @Override public boolean evaluate( StateContext<OrderStates,OrderEvents> context){\n return false;\n }\n}\n",
|
||||
"lineNumber" : 46
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -127,7 +131,8 @@
|
||||
"guard" : {
|
||||
"expression" : "new Guard<OrderStates,OrderEvents>(){\n @Override public boolean evaluate( StateContext<OrderStates,OrderEvents> context){\n return true;\n }\n}\n",
|
||||
"isLambda" : true,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : "new Guard<OrderStates,OrderEvents>(){\n @Override public boolean evaluate( StateContext<OrderStates,OrderEvents> context){\n return true;\n }\n}\n",
|
||||
"lineNumber" : 55
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -145,7 +150,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guard1",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 61
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -163,7 +169,8 @@
|
||||
"guard" : {
|
||||
"expression" : "new Guard<OrderStates,OrderEvents>(){\n @Override public boolean evaluate( StateContext<OrderStates,OrderEvents> context){\n return false;\n }\n}\n",
|
||||
"isLambda" : true,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : "new Guard<OrderStates,OrderEvents>(){\n @Override public boolean evaluate( StateContext<OrderStates,OrderEvents> context){\n return false;\n }\n}\n",
|
||||
"lineNumber" : 62
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 2
|
||||
@@ -221,11 +228,13 @@
|
||||
"actions" : [ {
|
||||
"expression" : "new Action<OrderStates,OrderEvents>(){\n @Override public void execute( StateContext<OrderStates,OrderEvents> context){\n ;\n }\n}\n",
|
||||
"isLambda" : true,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : "new Action<OrderStates,OrderEvents>(){\n @Override public void execute( StateContext<OrderStates,OrderEvents> context){\n ;\n }\n}\n",
|
||||
"lineNumber" : 72
|
||||
}, {
|
||||
"expression" : "action2",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 77
|
||||
} ],
|
||||
"order" : null
|
||||
} ],
|
||||
|
||||
@@ -4,8 +4,10 @@
|
||||
"entryPoints" : [ ],
|
||||
"callChains" : [ ],
|
||||
"properties" : {
|
||||
"default" : {
|
||||
"spring.application.name" : "statemachinedemo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name" : "click.kamil.examples.statemachine.inheritanceextrafunctionsstate2.ThreeStateMachineConfiguration",
|
||||
"renderChoicesAsDiamonds" : true,
|
||||
@@ -318,7 +320,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value1\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 120
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -350,7 +353,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value1\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 126
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -368,7 +372,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value2\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 127
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -400,7 +405,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardEventHeaderEquals(\"header1\",\"foo\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 132
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -432,7 +438,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value3\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 137
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -464,7 +471,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"reset\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 142
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -496,7 +504,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardEventHeaderEquals(\"header2\",\"bar\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 147
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -528,7 +537,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"goTo13\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 152
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -546,7 +556,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"goTo14\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 153
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -578,7 +589,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"goBack10\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 158
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -610,7 +622,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"loop12\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 163
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -642,7 +655,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"stepBack\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 168
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -660,7 +674,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"stepBackMore\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 169
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -692,7 +707,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"forward9\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 174
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -738,7 +754,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardEventHeaderEquals(\"header1\",\"foo\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 31
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
|
||||
@@ -4,8 +4,10 @@
|
||||
"entryPoints" : [ ],
|
||||
"callChains" : [ ],
|
||||
"properties" : {
|
||||
"default" : {
|
||||
"spring.application.name" : "statemachinedemo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name" : "click.kamil.examples.statemachine.inheritanceextrafunctionsstate.TwoStateMachineConfiguration",
|
||||
"renderChoicesAsDiamonds" : true,
|
||||
@@ -318,7 +320,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value1\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 120
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -350,7 +353,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value1\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 126
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -368,7 +372,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value2\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 127
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -400,7 +405,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardEventHeaderEquals(\"header1\",\"foo\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 132
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -432,7 +438,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value3\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 137
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -464,7 +471,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"reset\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 142
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -496,7 +504,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardEventHeaderEquals(\"header2\",\"bar\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 147
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -528,7 +537,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"goTo13\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 152
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -546,7 +556,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"goTo14\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 153
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -578,7 +589,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"goBack10\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 158
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -610,7 +622,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"loop12\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 163
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -642,7 +655,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"stepBack\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 168
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -660,7 +674,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"stepBackMore\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 169
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -692,7 +707,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"forward9\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 174
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
|
||||
@@ -580,7 +580,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value1\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 86
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -598,7 +599,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value2\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 87
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -630,7 +632,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardEventHeaderEquals(\"header1\",\"foo\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 92
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -662,7 +665,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value3\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 97
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -694,7 +698,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"reset\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 102
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -726,7 +731,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardEventHeaderEquals(\"header2\",\"bar\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 107
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -758,7 +764,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"goTo13\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 112
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -776,7 +783,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"goTo14\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 113
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -808,7 +816,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"goBack10\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 118
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -840,7 +849,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"loop12\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 123
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -872,7 +882,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"stepBack\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 128
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -890,7 +901,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"stepBackMore\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 129
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -922,7 +934,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"forward9\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 134
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -950,9 +963,11 @@
|
||||
"entryPoints" : [ ],
|
||||
"callChains" : [ ],
|
||||
"properties" : {
|
||||
"default" : {
|
||||
"spring.application.name" : "statemachinedemo"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -1205,7 +1220,8 @@
|
||||
</div>`;
|
||||
|
||||
if (trans && trans.guard) {
|
||||
html += `<div style="font-size:0.7rem; font-weight:800; color:#94a3b8; text-transform:uppercase; margin-bottom:4px">Guard</div>
|
||||
const lineInfo = trans.guard.lineNumber ? ` <span style="color:#94a3b8; font-weight:400; font-size:0.6rem;">(Line: ${trans.guard.lineNumber})</span>` : '';
|
||||
html += `<div style="font-size:0.7rem; font-weight:800; color:#94a3b8; text-transform:uppercase; margin-bottom:4px">Guard${lineInfo}</div>
|
||||
<div style="background:#f1f5f9; padding:6px; border-radius:4px; font-family:monospace; font-size:0.8rem; margin-bottom:12px; border:1px solid #e2e8f0;">${trans.guard.expression}</div>`;
|
||||
if (trans.guard.internalLogic) {
|
||||
html += `<div style="font-size:0.65rem; font-weight:800; color:#cbd5e1; text-transform:uppercase; margin-bottom:4px">Internal Logic</div>
|
||||
@@ -1216,7 +1232,9 @@
|
||||
if (trans && trans.actions && trans.actions.length > 0) {
|
||||
html += `<div style="font-size:0.7rem; font-weight:800; color:#94a3b8; text-transform:uppercase; margin-bottom:4px">Actions</div>`;
|
||||
trans.actions.forEach(action => {
|
||||
html += `<div style="background:#f1f5f9; padding:6px; border-radius:4px; font-family:monospace; font-size:0.8rem; margin-bottom:12px; border:1px solid #e2e8f0;">${action.expression}</div>`;
|
||||
const lineInfo = action.lineNumber ? ` <span style="color:#94a3b8; font-weight:400; font-size:0.6rem;">(Line: ${action.lineNumber})</span>` : '';
|
||||
html += `<div style="font-size:0.7rem; font-weight:800; color:#94a3b8; text-transform:uppercase; margin-bottom:4px">Action${lineInfo}</div>
|
||||
<div style="background:#f1f5f9; padding:6px; border-radius:4px; font-family:monospace; font-size:0.8rem; margin-bottom:12px; border:1px solid #e2e8f0;">${action.expression}</div>`;
|
||||
if (action.internalLogic) {
|
||||
html += `<div style="font-size:0.65rem; font-weight:800; color:#cbd5e1; text-transform:uppercase; margin-bottom:4px">Internal Logic</div>
|
||||
<pre style="background:#1e293b; color:#f8fafc; padding:8px; border-radius:4px; font-family:'JetBrains Mono', monospace; font-size:0.7rem; overflow-x:auto; margin-bottom:12px;"><code>${action.internalLogic.replace(/</g, '<').replace(/>/g, '>')}</code></pre>`;
|
||||
|
||||
@@ -4,8 +4,10 @@
|
||||
"entryPoints" : [ ],
|
||||
"callChains" : [ ],
|
||||
"properties" : {
|
||||
"default" : {
|
||||
"spring.application.name" : "statemachinedemo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name" : "click.kamil.examples.statemachine.complex.ComplexStateMachineConfig",
|
||||
"renderChoicesAsDiamonds" : true,
|
||||
@@ -234,7 +236,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value1\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 86
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -252,7 +255,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value2\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 87
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -284,7 +288,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardEventHeaderEquals(\"header1\",\"foo\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 92
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -316,7 +321,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"value3\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 97
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -348,7 +354,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"reset\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 102
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -380,7 +387,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardEventHeaderEquals(\"header2\",\"bar\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 107
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -412,7 +420,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"goTo13\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 112
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -430,7 +439,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"goTo14\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 113
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -462,7 +472,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"goBack10\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 118
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -494,7 +505,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"loop12\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 123
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -526,7 +538,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"stepBack\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 128
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -544,7 +557,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"stepBackMore\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 129
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 1
|
||||
@@ -576,7 +590,8 @@
|
||||
"guard" : {
|
||||
"expression" : "guardVarEquals(\"forward9\")",
|
||||
"isLambda" : false,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : null,
|
||||
"lineNumber" : 134
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
|
||||
@@ -304,9 +304,6 @@
|
||||
}, {
|
||||
"rawName" : "\"CHECK_AVAILABILITY\"",
|
||||
"fullIdentifier" : "CHECK_AVAILABILITY"
|
||||
}, {
|
||||
"rawName" : "NEW",
|
||||
"fullIdentifier" : "NEW"
|
||||
}, {
|
||||
"rawName" : "RETURNED",
|
||||
"fullIdentifier" : "RETURNED"
|
||||
@@ -316,6 +313,9 @@
|
||||
}, {
|
||||
"rawName" : "CANCELLED",
|
||||
"fullIdentifier" : "CANCELLED"
|
||||
}, {
|
||||
"rawName" : "${order.initial.state:NEW}",
|
||||
"fullIdentifier" : "NEW"
|
||||
}, {
|
||||
"rawName" : "\"PENDING_PAYMENT\"",
|
||||
"fullIdentifier" : "PENDING_PAYMENT"
|
||||
@@ -360,7 +360,8 @@
|
||||
"guard" : {
|
||||
"expression" : "(c) -> true",
|
||||
"isLambda" : true,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : "(c) -> true",
|
||||
"lineNumber" : 41
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
@@ -727,7 +728,9 @@
|
||||
"lineNumber" : 17
|
||||
}
|
||||
} ],
|
||||
"properties" : { }
|
||||
"properties" : {
|
||||
"default" : { }
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -931,13 +934,9 @@
|
||||
|
||||
let metaTrans = null;
|
||||
if (isAnon) {
|
||||
const parts = linkId.split('_'); // link_anon_SRC_TGT
|
||||
const src = parts[2];
|
||||
const tgt = parts[3];
|
||||
metaTrans = transitions.find(t =>
|
||||
!t.event &&
|
||||
normalize(t.sourceStates[0].fullIdentifier) === src &&
|
||||
normalize(t.targetStates[0].fullIdentifier) === tgt
|
||||
"anon_" + normalize(t.sourceStates[0].fullIdentifier) + "_" + normalize(t.targetStates[0].fullIdentifier) === linkId
|
||||
);
|
||||
} else {
|
||||
metaTrans = transitions.find(t => normalize(t.event) === linkId);
|
||||
@@ -981,7 +980,8 @@
|
||||
</div>`;
|
||||
|
||||
if (trans && trans.guard) {
|
||||
html += `<div style="font-size:0.7rem; font-weight:800; color:#94a3b8; text-transform:uppercase; margin-bottom:4px">Guard</div>
|
||||
const lineInfo = trans.guard.lineNumber ? ` <span style="color:#94a3b8; font-weight:400; font-size:0.6rem;">(Line: ${trans.guard.lineNumber})</span>` : '';
|
||||
html += `<div style="font-size:0.7rem; font-weight:800; color:#94a3b8; text-transform:uppercase; margin-bottom:4px">Guard${lineInfo}</div>
|
||||
<div style="background:#f1f5f9; padding:6px; border-radius:4px; font-family:monospace; font-size:0.8rem; margin-bottom:12px; border:1px solid #e2e8f0;">${trans.guard.expression}</div>`;
|
||||
if (trans.guard.internalLogic) {
|
||||
html += `<div style="font-size:0.65rem; font-weight:800; color:#cbd5e1; text-transform:uppercase; margin-bottom:4px">Internal Logic</div>
|
||||
@@ -992,7 +992,9 @@
|
||||
if (trans && trans.actions && trans.actions.length > 0) {
|
||||
html += `<div style="font-size:0.7rem; font-weight:800; color:#94a3b8; text-transform:uppercase; margin-bottom:4px">Actions</div>`;
|
||||
trans.actions.forEach(action => {
|
||||
html += `<div style="background:#f1f5f9; padding:6px; border-radius:4px; font-family:monospace; font-size:0.8rem; margin-bottom:12px; border:1px solid #e2e8f0;">${action.expression}</div>`;
|
||||
const lineInfo = action.lineNumber ? ` <span style="color:#94a3b8; font-weight:400; font-size:0.6rem;">(Line: ${action.lineNumber})</span>` : '';
|
||||
html += `<div style="font-size:0.7rem; font-weight:800; color:#94a3b8; text-transform:uppercase; margin-bottom:4px">Action${lineInfo}</div>
|
||||
<div style="background:#f1f5f9; padding:6px; border-radius:4px; font-family:monospace; font-size:0.8rem; margin-bottom:12px; border:1px solid #e2e8f0;">${action.expression}</div>`;
|
||||
if (action.internalLogic) {
|
||||
html += `<div style="font-size:0.65rem; font-weight:800; color:#cbd5e1; text-transform:uppercase; margin-bottom:4px">Internal Logic</div>
|
||||
<pre style="background:#1e293b; color:#f8fafc; padding:8px; border-radius:4px; font-family:'JetBrains Mono', monospace; font-size:0.7rem; overflow-x:auto; margin-bottom:12px;"><code>${action.internalLogic.replace(/</g, '<').replace(/>/g, '>')}</code></pre>`;
|
||||
|
||||
@@ -261,7 +261,9 @@
|
||||
"lineNumber" : 17
|
||||
}
|
||||
} ],
|
||||
"properties" : { }
|
||||
"properties" : {
|
||||
"default" : { }
|
||||
}
|
||||
},
|
||||
"name" : "click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig",
|
||||
"renderChoicesAsDiamonds" : true,
|
||||
@@ -294,7 +296,8 @@
|
||||
"guard" : {
|
||||
"expression" : "(c) -> true",
|
||||
"isLambda" : true,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : "(c) -> true",
|
||||
"lineNumber" : 41
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -261,11 +261,13 @@
|
||||
"lineNumber" : 17
|
||||
}
|
||||
} ],
|
||||
"properties" : { }
|
||||
"properties" : {
|
||||
"default" : { }
|
||||
}
|
||||
},
|
||||
"name" : "click.kamil.examples.enterprise.config.EnterpriseStateMachineConfig",
|
||||
"renderChoicesAsDiamonds" : false,
|
||||
"startStates" : [ "NEW" ],
|
||||
"startStates" : [ "${order.initial.state:NEW}" ],
|
||||
"transitions" : [ {
|
||||
"type" : "EXTERNAL",
|
||||
"sourceStates" : [ {
|
||||
@@ -294,7 +296,8 @@
|
||||
"guard" : {
|
||||
"expression" : "(c) -> true",
|
||||
"isLambda" : true,
|
||||
"internalLogic" : null
|
||||
"internalLogic" : "(c) -> true",
|
||||
"lineNumber" : 41
|
||||
},
|
||||
"actions" : [ ],
|
||||
"order" : 0
|
||||
|
||||
@@ -495,13 +495,9 @@
|
||||
|
||||
let metaTrans = null;
|
||||
if (isAnon) {
|
||||
const parts = linkId.split('_'); // link_anon_SRC_TGT
|
||||
const src = parts[2];
|
||||
const tgt = parts[3];
|
||||
metaTrans = transitions.find(t =>
|
||||
!t.event &&
|
||||
normalize(t.sourceStates[0].fullIdentifier) === src &&
|
||||
normalize(t.targetStates[0].fullIdentifier) === tgt
|
||||
"anon_" + normalize(t.sourceStates[0].fullIdentifier) + "_" + normalize(t.targetStates[0].fullIdentifier) === linkId
|
||||
);
|
||||
} else {
|
||||
metaTrans = transitions.find(t => normalize(t.event) === linkId);
|
||||
@@ -545,7 +541,8 @@
|
||||
</div>`;
|
||||
|
||||
if (trans && trans.guard) {
|
||||
html += `<div style="font-size:0.7rem; font-weight:800; color:#94a3b8; text-transform:uppercase; margin-bottom:4px">Guard</div>
|
||||
const lineInfo = trans.guard.lineNumber ? ` <span style="color:#94a3b8; font-weight:400; font-size:0.6rem;">(Line: ${trans.guard.lineNumber})</span>` : '';
|
||||
html += `<div style="font-size:0.7rem; font-weight:800; color:#94a3b8; text-transform:uppercase; margin-bottom:4px">Guard${lineInfo}</div>
|
||||
<div style="background:#f1f5f9; padding:6px; border-radius:4px; font-family:monospace; font-size:0.8rem; margin-bottom:12px; border:1px solid #e2e8f0;">${trans.guard.expression}</div>`;
|
||||
if (trans.guard.internalLogic) {
|
||||
html += `<div style="font-size:0.65rem; font-weight:800; color:#cbd5e1; text-transform:uppercase; margin-bottom:4px">Internal Logic</div>
|
||||
@@ -556,7 +553,9 @@
|
||||
if (trans && trans.actions && trans.actions.length > 0) {
|
||||
html += `<div style="font-size:0.7rem; font-weight:800; color:#94a3b8; text-transform:uppercase; margin-bottom:4px">Actions</div>`;
|
||||
trans.actions.forEach(action => {
|
||||
html += `<div style="background:#f1f5f9; padding:6px; border-radius:4px; font-family:monospace; font-size:0.8rem; margin-bottom:12px; border:1px solid #e2e8f0;">${action.expression}</div>`;
|
||||
const lineInfo = action.lineNumber ? ` <span style="color:#94a3b8; font-weight:400; font-size:0.6rem;">(Line: ${action.lineNumber})</span>` : '';
|
||||
html += `<div style="font-size:0.7rem; font-weight:800; color:#94a3b8; text-transform:uppercase; margin-bottom:4px">Action${lineInfo}</div>
|
||||
<div style="background:#f1f5f9; padding:6px; border-radius:4px; font-family:monospace; font-size:0.8rem; margin-bottom:12px; border:1px solid #e2e8f0;">${action.expression}</div>`;
|
||||
if (action.internalLogic) {
|
||||
html += `<div style="font-size:0.65rem; font-weight:800; color:#cbd5e1; text-transform:uppercase; margin-bottom:4px">Internal Logic</div>
|
||||
<pre style="background:#1e293b; color:#f8fafc; padding:8px; border-radius:4px; font-family:'JetBrains Mono', monospace; font-size:0.7rem; overflow-x:auto; margin-bottom:12px;"><code>${action.internalLogic.replace(/</g, '<').replace(/>/g, '>')}</code></pre>`;
|
||||
|
||||
Reference in New Issue
Block a user