WorkflowMergeCommitResult.java
package org.hammer.audio.workflow.history;
import java.util.Objects;
import org.hammer.audio.workflow.Workflow;
import org.hammer.audio.workflow.store.CommitId;
/**
* Evidence for one validated semantic merge checkpoint.
*
* @param targetBranch branch advanced by the merge
* @param baseCommit exact common-base commit
* @param localCommit exact previous local HEAD
* @param remoteCommit exact remote source commit
* @param mergedCommit newly created checkpoint commit
* @param workflow validated deterministic merged workflow
* @param auditMessage complete deterministic commit message including merge-resolution metadata
*/
public record WorkflowMergeCommitResult(
String targetBranch,
CommitId baseCommit,
CommitId localCommit,
CommitId remoteCommit,
CommitId mergedCommit,
Workflow workflow,
String auditMessage) {
public WorkflowMergeCommitResult {
if (targetBranch == null || targetBranch.isBlank()) {
throw new IllegalArgumentException("targetBranch must not be blank");
}
Objects.requireNonNull(baseCommit, "baseCommit");
Objects.requireNonNull(localCommit, "localCommit");
Objects.requireNonNull(remoteCommit, "remoteCommit");
Objects.requireNonNull(mergedCommit, "mergedCommit");
Objects.requireNonNull(workflow, "workflow");
if (auditMessage == null || auditMessage.isBlank()) {
throw new IllegalArgumentException("auditMessage must not be blank");
}
}
}