FeedImportResult.java
package net.sasasin.sreader.service.feed.ingestion;
import java.util.Objects;
import net.sasasin.sreader.service.outcome.OperationFailure;
/** Result of importing all entries from one feed. */
public sealed interface FeedImportResult
permits FeedImportResult.Completed, FeedImportResult.Failed {
FeedImportSummary summary();
record Completed(FeedImportSummary summary) implements FeedImportResult {
public Completed {
Objects.requireNonNull(summary, "summary must not be null");
}
}
record Failed(FeedImportSummary partialSummary, OperationFailure failure)
implements FeedImportResult {
public Failed {
Objects.requireNonNull(partialSummary, "partialSummary must not be null");
Objects.requireNonNull(failure, "failure must not be null");
}
@Override
public FeedImportSummary summary() {
return partialSummary;
}
}
}