CompiledAutoPagerizeRule.java
package net.sasasin.sreader.service.autopagerize;
import java.util.Objects;
import java.util.regex.Pattern;
/** Runtime-ready AutoPagerize rule with a compiled URL {@link Pattern}. */
public record CompiledAutoPagerizeRule(
long datasetId,
int ordinal,
int matchOrder,
String name,
Pattern urlPattern,
String urlPatternSource,
String nextLinkXpath,
String pageElementXpath,
String insertBeforeXpath,
String exampleUrl) {
public CompiledAutoPagerizeRule {
Objects.requireNonNull(urlPattern, "urlPattern must not be null");
Objects.requireNonNull(urlPatternSource, "urlPatternSource must not be null");
Objects.requireNonNull(nextLinkXpath, "nextLinkXpath must not be null");
Objects.requireNonNull(pageElementXpath, "pageElementXpath must not be null");
if (ordinal < 0) {
throw new IllegalArgumentException("ordinal must be >= 0");
}
if (matchOrder < 0) {
throw new IllegalArgumentException("matchOrder must be >= 0");
}
if (urlPatternSource.isBlank()) {
throw new IllegalArgumentException("urlPatternSource must not be blank");
}
if (nextLinkXpath.isBlank()) {
throw new IllegalArgumentException("nextLinkXpath must not be blank");
}
if (pageElementXpath.isBlank()) {
throw new IllegalArgumentException("pageElementXpath must not be blank");
}
}
}