XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEServerManager

【Java】我的世界XFE服务器管理器

公开
关注 0 Fork 0 Star 0
UTF-8
package com.xfestudio.xfeservermanager.core.trigger;

import java.time.Instant;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.UUID;

/** Persistent execution summary and optional detailed trace. */
public record TriggerExecutionRecord(
        UUID executionId,
        UUID triggerId,
        long triggerRevision,
        String eventType,
        String status,
        long seed,
        Map<String, Object> summary,
        String error,
        Instant startedAt,
        Instant updatedAt,
        Instant completedAt,
        List<Step> steps) {
    public TriggerExecutionRecord {
        Objects.requireNonNull(executionId, "executionId");
        eventType = eventType == null ? "" : eventType;
        status = Objects.requireNonNull(status, "status");
        summary = Map.copyOf(summary == null ? Map.of() : summary);
        error = error == null ? "" : error;
        Objects.requireNonNull(startedAt, "startedAt");
        Objects.requireNonNull(updatedAt, "updatedAt");
        steps = List.copyOf(steps == null ? List.of() : steps);
    }

    public record Step(
            long sequence,
            UUID nodeId,
            String kind,
            Object result,
            Map<String, Object> writes,
            int instructions,
            Instant createdAt) {
        public Step {
            kind = Objects.requireNonNull(kind, "kind");
            writes = Map.copyOf(writes == null ? Map.of() : writes);
            Objects.requireNonNull(createdAt, "createdAt");
        }
    }
}