Class TransitionHistorySection
java.lang.Object
com.scivicslab.actoriac.report.sections.basic.TransitionHistorySection
- All Implemented Interfaces:
SectionBuilder
POJO section builder that outputs workflow transition history.
Pure business logic - no CallableByActionName.
Use TransitionHistorySectionIIAR to expose as an actor.
Retrieves transition logs from the database and displays them in a human-readable format with success/failure status.
Output example:
[Transition History: nodeGroup] o [2026-01-30 10:15:23] 0 -> 1 [Initialize] o [2026-01-30 10:15:24] 1 -> 2 [Collect data] x [2026-01-30 10:15:25] 2 -> 3 [Process] Connection refused Summary: 3 transitions, 2 succeeded, 1 failed
- Since:
- 2.16.0
- Author:
- devteam@scivicslab.com
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static classInternal class to hold transition entry data. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Connectionprivate booleanprivate static final Loggerprivate longprivate Stringprivate static final DateTimeFormatter -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate StringBuilds aggregated output for nodeGroup and all children.private StringBuilds output for a single actor.private String[]extractTransitionAndNote(String message) Extracts transition and note from message.generate()Generates the section content.getTitle()Returns the section title.Queries distinct actor sources that have transition logs.queryTransitions(String source) Queries transition logs for a specific actor.voidsetConnection(Connection connection) Sets the database connection for log queries.voidsetIncludeChildren(boolean includeChildren) Sets whether to include child nodes in the output.voidsetSessionId(long sessionId) Sets the session ID to query logs from.voidsetTargetActorName(String targetActorName) Sets the target actor name to display transitions for.
-
Field Details
-
logger
-
TIME_FORMAT
-
connection
-
sessionId
-
targetActorName
-
includeChildren
-
-
Constructor Details
-
TransitionHistorySection
public TransitionHistorySection()
-
-
Method Details
-
setConnection
Sets the database connection for log queries.- Parameters:
connection- the JDBC connection to the H2 log database
-
setSessionId
Sets the session ID to query logs from.- Parameters:
sessionId- the session ID
-
setTargetActorName
Sets the target actor name to display transitions for.- Parameters:
targetActorName- the target actor name (e.g., "nodeGroup", "node-server1")
-
setIncludeChildren
Sets whether to include child nodes in the output.When true and target is "nodeGroup", transitions from all child nodes are also included in the output.
- Parameters:
includeChildren- true to include children
-
generate
Description copied from interface:SectionBuilderGenerates the section content.- Specified by:
generatein interfaceSectionBuilder- Returns:
- the section content as a string
-
buildSingleActorOutput
Builds output for a single actor.- Throws:
Exception
-
buildAggregatedOutput
Builds aggregated output for nodeGroup and all children.- Throws:
Exception
-
queryTransitions
private List<TransitionHistorySection.TransitionEntry> queryTransitions(String source) throws Exception Queries transition logs for a specific actor.- Throws:
Exception
-
queryDistinctSources
Queries distinct actor sources that have transition logs.- Throws:
Exception
-
extractTransitionAndNote
Extracts transition and note from message.- Returns:
- String[2] where [0]=transition, [1]=note
-
getTitle
Description copied from interface:SectionBuilderReturns the section title.If null or empty, the section content is output without a title line.
- Specified by:
getTitlein interfaceSectionBuilder- Returns:
- the section title, or null for no title
-