EvidenceReportEntry.java

// SPDX-License-Identifier: Apache-2.0
// Copyright 2026 Egothor
// Copyright 2026 Accenture
package org.egothor.methodatlas.evidencereport;

import java.util.List;

/**
 * A single security-relevant test method captured in an evidence report.
 *
 * <p>
 * Package-private because only {@link EvidenceReportCollector} produces instances
 * and only {@link EvidenceReportWriter} consumes them.
 * </p>
 *
 * @param fqcn               fully qualified class name
 * @param method             test method name
 * @param beginLine          first line of the method in its source file
 * @param loc                lines of code in the method
 * @param contentHash        SHA-256 hash of the enclosing class source, or {@code null}
 * @param sourceTags         {@code @Tag} values declared in source, never {@code null}
 * @param displayName        {@code @DisplayName} annotation value, or {@code null}
 * @param aiDisplayName      AI-suggested display name, or {@code null}
 * @param aiSecurityRelevant AI security-relevance flag
 * @param aiTags             AI taxonomy tags, or {@code null}
 * @param aiReason           AI rationale, or {@code null}
 * @param aiConfidence       AI confidence score, or {@code null}
 * @param aiInteractionScore AI interaction score, or {@code null}
 * @param aiCwe              CWE identifiers derived from AI tags, never {@code null}
 */
/* default */ record EvidenceReportEntry(
        String fqcn,
        String method,
        int beginLine,
        int loc,
        String contentHash,
        List<String> sourceTags,
        String displayName,
        String aiDisplayName,
        Boolean aiSecurityRelevant,
        List<String> aiTags,
        String aiReason,
        Double aiConfidence,
        Double aiInteractionScore,
        List<String> aiCwe) {
}