All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.squidex.api.resources.assets.requests.BulkUpdateAssetsDto Maven / Gradle / Ivy

package com.squidex.api.resources.assets.requests;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonSetter;
import com.fasterxml.jackson.annotation.Nulls;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.squidex.api.types.BulkUpdateAssetsJobDto;
import java.util.List;
import java.util.Objects;
import java.util.Optional;

@JsonInclude(JsonInclude.Include.NON_EMPTY)
@JsonDeserialize(builder = BulkUpdateAssetsDto.Builder.class)
public final class BulkUpdateAssetsDto {
    private final Optional> jobs;

    private final Optional checkReferrers;

    private final Optional optimizeValidation;

    private final Optional doNotScript;

    private BulkUpdateAssetsDto(
            Optional> jobs,
            Optional checkReferrers,
            Optional optimizeValidation,
            Optional doNotScript) {
        this.jobs = jobs;
        this.checkReferrers = checkReferrers;
        this.optimizeValidation = optimizeValidation;
        this.doNotScript = doNotScript;
    }

    /**
     * @return The contents to update or insert.
     */
    @JsonProperty("jobs")
    public Optional> getJobs() {
        return jobs;
    }

    /**
     * @return True to check referrers of deleted assets.
     */
    @JsonProperty("checkReferrers")
    public Optional getCheckReferrers() {
        return checkReferrers;
    }

    /**
     * @return True to turn off costly validation: Folder checks. Default: true.
     */
    @JsonProperty("optimizeValidation")
    public Optional getOptimizeValidation() {
        return optimizeValidation;
    }

    /**
     * @return True to turn off scripting for faster inserts. Default: true.
     */
    @JsonProperty("doNotScript")
    public Optional getDoNotScript() {
        return doNotScript;
    }

    @Override
    public boolean equals(Object other) {
        if (this == other) return true;
        return other instanceof BulkUpdateAssetsDto && equalTo((BulkUpdateAssetsDto) other);
    }

    private boolean equalTo(BulkUpdateAssetsDto other) {
        return jobs.equals(other.jobs)
                && checkReferrers.equals(other.checkReferrers)
                && optimizeValidation.equals(other.optimizeValidation)
                && doNotScript.equals(other.doNotScript);
    }

    @Override
    public int hashCode() {
        return Objects.hash(this.jobs, this.checkReferrers, this.optimizeValidation, this.doNotScript);
    }

    @Override
    public String toString() {
        return "BulkUpdateAssetsDto{" + "jobs: " + jobs + ", checkReferrers: " + checkReferrers
                + ", optimizeValidation: " + optimizeValidation + ", doNotScript: " + doNotScript + "}";
    }

    public static Builder builder() {
        return new Builder();
    }

    @JsonIgnoreProperties(ignoreUnknown = true)
    public static final class Builder {
        private Optional> jobs = Optional.empty();

        private Optional checkReferrers = Optional.empty();

        private Optional optimizeValidation = Optional.empty();

        private Optional doNotScript = Optional.empty();

        private Builder() {}

        public Builder from(BulkUpdateAssetsDto other) {
            jobs(other.getJobs());
            checkReferrers(other.getCheckReferrers());
            optimizeValidation(other.getOptimizeValidation());
            doNotScript(other.getDoNotScript());
            return this;
        }

        @JsonSetter(value = "jobs", nulls = Nulls.SKIP)
        public Builder jobs(Optional> jobs) {
            this.jobs = jobs;
            return this;
        }

        public Builder jobs(List jobs) {
            this.jobs = Optional.of(jobs);
            return this;
        }

        @JsonSetter(value = "checkReferrers", nulls = Nulls.SKIP)
        public Builder checkReferrers(Optional checkReferrers) {
            this.checkReferrers = checkReferrers;
            return this;
        }

        public Builder checkReferrers(Boolean checkReferrers) {
            this.checkReferrers = Optional.of(checkReferrers);
            return this;
        }

        @JsonSetter(value = "optimizeValidation", nulls = Nulls.SKIP)
        public Builder optimizeValidation(Optional optimizeValidation) {
            this.optimizeValidation = optimizeValidation;
            return this;
        }

        public Builder optimizeValidation(Boolean optimizeValidation) {
            this.optimizeValidation = Optional.of(optimizeValidation);
            return this;
        }

        @JsonSetter(value = "doNotScript", nulls = Nulls.SKIP)
        public Builder doNotScript(Optional doNotScript) {
            this.doNotScript = doNotScript;
            return this;
        }

        public Builder doNotScript(Boolean doNotScript) {
            this.doNotScript = Optional.of(doNotScript);
            return this;
        }

        public BulkUpdateAssetsDto build() {
            return new BulkUpdateAssetsDto(jobs, checkReferrers, optimizeValidation, doNotScript);
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy