FeedEntryImportOutcome.java
package net.sasasin.sreader.service.feed.ingestion;
import java.util.Objects;
import java.util.Optional;
import net.sasasin.sreader.service.extraction.ContentFullTextWriteOutcome;
import net.sasasin.sreader.service.http.RedirectResolution;
import net.sasasin.sreader.service.outcome.OperationFailure;
/** Outcome of importing a single feed entry. */
public sealed interface FeedEntryImportOutcome
permits FeedEntryImportOutcome.Inserted,
FeedEntryImportOutcome.AlreadyPresent,
FeedEntryImportOutcome.MissingLink,
FeedEntryImportOutcome.Failed {
record Inserted(RedirectResolution redirect, Optional<ContentFullTextWriteOutcome> feedTextWrite)
implements FeedEntryImportOutcome {
public Inserted {
Objects.requireNonNull(redirect, "redirect must not be null");
feedTextWrite = Objects.requireNonNull(feedTextWrite, "feedTextWrite must not be null");
}
}
record AlreadyPresent(RedirectResolution redirect) implements FeedEntryImportOutcome {
public AlreadyPresent {
Objects.requireNonNull(redirect, "redirect must not be null");
}
}
record MissingLink() implements FeedEntryImportOutcome {}
record Failed(OperationFailure failure) implements FeedEntryImportOutcome {
public Failed {
Objects.requireNonNull(failure, "failure must not be null");
}
}
}