RedirectResolution.java
package net.sasasin.sreader.service.http;
import java.net.URI;
import java.util.Objects;
import net.sasasin.sreader.service.outcome.OperationFailure;
/** Outcome of resolving redirects for an article or entry URL. */
public sealed interface RedirectResolution
permits RedirectResolution.Resolved, RedirectResolution.Fallback {
URI requestedUri();
URI effectiveUri();
record Resolved(URI requestedUri, URI effectiveUri) implements RedirectResolution {
public Resolved {
Objects.requireNonNull(requestedUri, "requestedUri must not be null");
Objects.requireNonNull(effectiveUri, "effectiveUri must not be null");
}
}
record Fallback(URI requestedUri, OperationFailure failure) implements RedirectResolution {
public Fallback {
Objects.requireNonNull(requestedUri, "requestedUri must not be null");
Objects.requireNonNull(failure, "failure must not be null");
}
@Override
public URI effectiveUri() {
return requestedUri;
}
}
}