WorkflowHistoryTextResult.java
package org.hammer.audio.workflow.history;
import java.time.Instant;
import java.util.List;
import java.util.Objects;
import org.hammer.audio.workflow.store.CommitId;
/**
* One indexed search hit that can load the exact authoritative workflow commit.
*
* @param commitId exact authoritative Git commit identity
* @param shortMessage commit summary indexed by the shared search projection
* @param authorName commit author display name, or {@code null} when unavailable
* @param authorEmail commit author email, or {@code null} when unavailable
* @param timestamp commit author timestamp, or {@code null} when unavailable
* @param changedPaths first-parent changed paths represented by this projection
*/
public record WorkflowHistoryTextResult(
CommitId commitId,
String shortMessage,
String authorName,
String authorEmail,
Instant timestamp,
List<String> changedPaths) {
public WorkflowHistoryTextResult {
Objects.requireNonNull(commitId, "commitId");
shortMessage = shortMessage == null ? "" : shortMessage;
changedPaths = List.copyOf(Objects.requireNonNull(changedPaths, "changedPaths"));
}
}