ImageDiff.java
package io.github.giulong.spectrum.utils.visual_regression;
import static com.fasterxml.jackson.annotation.JsonTypeInfo.As.WRAPPER_OBJECT;
import static com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME;
import java.nio.file.Path;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.Getter;
@Getter
@JsonTypeInfo(use = NAME, include = WRAPPER_OBJECT)
@JsonSubTypes({
@JsonSubTypes.Type(value = NoOpDiff.class, name = "noOp"),
@JsonSubTypes.Type(value = HighlightDiff.class, name = "highlight"),
@JsonSubTypes.Type(value = OutlineDiff.class, name = "outline"),
})
public abstract class ImageDiff {
public abstract Result buildBetween(Path reference, Path regression, Path destination, String diffName);
@Getter
@Builder
@EqualsAndHashCode
public static class Result {
private Path path;
@Builder.Default
private boolean shown = true;
@Builder.Default
private boolean regressionConfirmed = true;
}
}