Legacy Claims Portal Home Patterns Handbuch
Java-Quellcode · HTML-first

ClaimDecisionWorkflowOrchestrator.java

Browserlesbare Ansicht der unveränderten Java-Quelldatei. Die Originaldatei bleibt im Maven-Projekt erhalten.

Zuordnung

Workflow Orchestrator
Originalpfad03_after_refactoring_modular/claim-workflow/src/main/java/com/seb4u/demo/claims/workflow/ClaimDecisionWorkflowOrchestrator.java

Quellcode

package com.seb4u.demo.claims.workflow;


/**
 * Entwurfsmuster: Workflow Orchestrator + Outbox Pattern. Koordiniert Use Case und nachgelagerte Ereignisablage.
 */
import com.seb4u.demo.claims.application.command.ProcessClaimDecisionCommand;
import com.seb4u.demo.claims.application.handler.ProcessClaimDecisionHandler;
import com.seb4u.demo.claims.application.port.OutboxPort;

public class ClaimDecisionWorkflowOrchestrator {
    private final ProcessClaimDecisionHandler handler;
    private final OutboxPort outboxPort;

    public ClaimDecisionWorkflowOrchestrator(ProcessClaimDecisionHandler handler, OutboxPort outboxPort) {
        this.handler = handler;
        this.outboxPort = outboxPort;
    }

    public void decide(ProcessClaimDecisionCommand command) {
        var result = handler.handle(command);
        outboxPort.append(command.claimId().value(), "ClaimDecisionProcessed", "{"status":"" + result.newStatus() + ""}");
    }
}
⌂ Cockpit