<commit_before>package hudson.scm;

import edu.umd.cs.findbugs.annotations.CheckForNull;
import edu.umd.cs.findbugs.annotations.NonNull;
import hudson.FilePath;
import hudson.Launcher;
import hudson.model.AbstractProject;
import hudson.model.TaskListener;
import java.io.Serializable;

/**
 * Immutable object that represents the result of {@linkplain SCM#poll(AbstractProject, Launcher, FilePath, TaskListener, SCMRevisionState) SCM polling}.
 *
 * <p>
 * This object is marked serializable just to be remoting friendly &mdash; Jenkins by itself
 * doesn't persist this object.
 *
 * @author <NAME>
 * @since 1.345
 */
public final class PollingResult implements Serializable {
    /**
     * Baseline of the comparison.
     * (This comes from either the workspace, or from the remote repository as of the last polling.
     * Can be null.
     */
    public final @CheckForNull SCMRevisionState baseline;

    /**
     * Current state of the remote repository. To be passed to the next invocation of the polling method.
     * Can be null.
     */
    public final @CheckForNull SCMRevisionState remote;

    /**
     * Degree of the change between baseline and remote. Never null.
     * <p>
     * The fact that this field is independent from {@link #baseline} and {@link #remote} are
     * used to (1) allow the {@linkplain Change#INCOMPARABLE incomparable} state which forces
     * the immediate rebuild, and (2) allow SCM to ignore some changes in the repository to implement
     * exclusion feature.
     */
    public final @NonNull Change change;

    /**<commit_msg>Mark `PollingResult` as `SerializableOnlyOverRemoting` (#6134)<commit_after>package hudson.scm;

import edu.umd.cs.findbugs.annotations.CheckForNull;
import edu.umd.cs.findbugs.annotations.NonNull;
import hudson.FilePath;
import hudson.Launcher;
import hudson.model.AbstractProject;
import hudson.model.TaskListener;
import org.jenkinsci.remoting.SerializableOnlyOverRemoting;

/**
 * Immutable object that represents the result of {@linkplain SCM#poll(AbstractProject, Launcher, FilePath, TaskListener, SCMRevisionState) SCM polling}.
 *
 * <p>
 * This object is marked serializable just to be remoting friendly &mdash; Jenkins by itself
 * doesn't persist this object.
 *
 * @author <NAME>
 * @since 1.345
 */
public final class PollingResult implements SerializableOnlyOverRemoting {
    /**
     * Baseline of the comparison.
     * (This comes from either the workspace, or from the remote repository as of the last polling.
     * Can be null.
     */
    public final @CheckForNull SCMRevisionState baseline;

    /**
     * Current state of the remote repository. To be passed to the next invocation of the polling method.
     * Can be null.
     */
    public final @CheckForNull SCMRevisionState remote;

    /**
     * Degree of the change between baseline and remote. Never null.
     * <p>
     * The fact that this field is independent from {@link #baseline} and {@link #remote} are
     * used to (1) allow the {@linkplain Change#INCOMPARABLE incomparable} state which forces
     * the immediate rebuild, and (2) allow SCM to ignore some changes in the repository to implement
     * exclusion feature.
     */
    public final @NonNull Change change;

    /**
{'fraction_non_alphanumeric': 0.08287292817679558, 'fraction_numerical': 0.004910988336402701, 'mean_word_length': 3.5901408450704224, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4619546', 'n_tokens_mistral': 947, 'n_tokens_neox': 886, 'n_words': 348}