ContentCanonicalizationCandidate.java
package net.sasasin.sreader.domain;
import java.time.OffsetDateTime;
import java.util.Objects;
import java.util.Optional;
/**
* One content header row loaded for canonicalization, with optional attached full text. Absence of
* full text is {@link Optional#empty()}, never null fields on a shared flat record.
*/
public record ContentCanonicalizationCandidate(
ContentCanonicalizationHeader header, Optional<ContentCanonicalizationFullText> fullText) {
public ContentCanonicalizationCandidate {
Objects.requireNonNull(header, "header must not be null");
Objects.requireNonNull(fullText, "fullText must not be null");
}
public String id() {
return header.id();
}
public String feedUrlId() {
return header.feedUrlId();
}
public String sourceUrl() {
return header.sourceUrl();
}
public String fetchUrl() {
return header.fetchUrl();
}
public String canonicalUrl() {
return header.canonicalUrl();
}
public String title() {
return header.title();
}
public OffsetDateTime publishedAt() {
return header.publishedAt();
}
public String feedText() {
return header.feedText();
}
public OffsetDateTime createdAt() {
return header.createdAt();
}
public OffsetDateTime updatedAt() {
return header.updatedAt();
}
}