public static boolean visualReferenceNeedsUpdate()

in aws-synthetics-canary/src/main/java/com/amazon/synthetics/canary/ModelHelper.java [258:292]


    public static boolean visualReferenceNeedsUpdate(VisualReferenceOutput existingVisualReference, VisualReference newVisualReference) {
        if (newVisualReference == null) {
            return false;
        }

        if (existingVisualReference == null
                || newVisualReference.getBaseScreenshots() == null
                || existingVisualReference.baseScreenshots() != null && existingVisualReference.baseScreenshots().size() != newVisualReference.getBaseScreenshots().size()
                || newVisualReference.getBaseCanaryRunId() != existingVisualReference.baseCanaryRunId()) {
            return true;
        }

        for(int item = 0; item < newVisualReference.getBaseScreenshots().size(); item++) {
            // Screenshots
            if (newVisualReference.getBaseScreenshots().get(item).getScreenshotName() != existingVisualReference.baseScreenshots().get(item).screenshotName()){
                return true;
            }

            // Ignore boundaries
            if (existingVisualReference.baseScreenshots().get(item).ignoreCoordinates() == null) {
                continue;
            }
            if (existingVisualReference.baseScreenshots().get(item).ignoreCoordinates() != null
                    && existingVisualReference.baseScreenshots().get(item).ignoreCoordinates().size() != newVisualReference.getBaseScreenshots().get(item).getIgnoreCoordinates().size()){
                return true;
            }

            for(int ignoreItem = 0; ignoreItem < existingVisualReference.baseScreenshots().get(item).ignoreCoordinates().size(); ignoreItem++) {
                if (existingVisualReference.baseScreenshots().get(item).ignoreCoordinates().get(ignoreItem) != newVisualReference.getBaseScreenshots().get(item).getIgnoreCoordinates().get(ignoreItem)) {
                    return true;
                }
            }
        }
        return false;
    }