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

odata.msgraph.client.complex.PrinterDefaults Maven / Gradle / Ivy

package odata.msgraph.client.complex;

import com.fasterxml.jackson.annotation.JacksonInject;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.github.davidmoten.odata.client.CollectionPage;
import com.github.davidmoten.odata.client.ContextPath;
import com.github.davidmoten.odata.client.HttpRequestOptions;
import com.github.davidmoten.odata.client.ODataType;
import com.github.davidmoten.odata.client.UnmappedFields;
import com.github.davidmoten.odata.client.Util;
import com.github.davidmoten.odata.client.annotation.Property;
import com.github.davidmoten.odata.client.internal.ChangedFields;
import com.github.davidmoten.odata.client.internal.UnmappedFieldsImpl;

import java.lang.Boolean;
import java.lang.Integer;
import java.lang.Object;
import java.lang.Override;
import java.lang.String;
import java.lang.StringBuilder;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Optional;

import odata.msgraph.client.enums.PrintColorMode;
import odata.msgraph.client.enums.PrintDuplexMode;
import odata.msgraph.client.enums.PrintFinishing;
import odata.msgraph.client.enums.PrintMultipageLayout;
import odata.msgraph.client.enums.PrintOrientation;
import odata.msgraph.client.enums.PrintQuality;
import odata.msgraph.client.enums.PrintScaling;

@JsonPropertyOrder({
    "@odata.type", 
    "colorMode", 
    "contentType", 
    "copiesPerJob", 
    "dpi", 
    "duplexMode", 
    "finishings", 
    "fitPdfToPage", 
    "inputBin", 
    "mediaColor", 
    "mediaSize", 
    "mediaType", 
    "multipageLayout", 
    "orientation", 
    "outputBin", 
    "pagesPerSheet", 
    "quality", 
    "scaling"})
@JsonInclude(Include.NON_NULL)
public class PrinterDefaults implements ODataType {

    @JacksonInject
    @JsonIgnore
    protected ContextPath contextPath;

    @JacksonInject
    @JsonIgnore
    protected UnmappedFieldsImpl unmappedFields;

    @JsonProperty("@odata.type")
    protected String odataType;

    @JsonProperty("colorMode")
    protected PrintColorMode colorMode;

    @JsonProperty("contentType")
    protected String contentType;

    @JsonProperty("copiesPerJob")
    protected Integer copiesPerJob;

    @JsonProperty("dpi")
    protected Integer dpi;

    @JsonProperty("duplexMode")
    protected PrintDuplexMode duplexMode;

    @JsonProperty("finishings")
    protected List finishings;

    @JsonProperty("finishings@nextLink")
    protected String finishingsNextLink;

    @JsonProperty("fitPdfToPage")
    protected Boolean fitPdfToPage;

    @JsonProperty("inputBin")
    protected String inputBin;

    @JsonProperty("mediaColor")
    protected String mediaColor;

    @JsonProperty("mediaSize")
    protected String mediaSize;

    @JsonProperty("mediaType")
    protected String mediaType;

    @JsonProperty("multipageLayout")
    protected PrintMultipageLayout multipageLayout;

    @JsonProperty("orientation")
    protected PrintOrientation orientation;

    @JsonProperty("outputBin")
    protected String outputBin;

    @JsonProperty("pagesPerSheet")
    protected Integer pagesPerSheet;

    @JsonProperty("quality")
    protected PrintQuality quality;

    @JsonProperty("scaling")
    protected PrintScaling scaling;

    protected PrinterDefaults() {
    }

    @Override
    public String odataTypeName() {
        return "microsoft.graph.printerDefaults";
    }

    @Property(name="colorMode")
    @JsonIgnore
    public Optional getColorMode() {
        return Optional.ofNullable(colorMode);
    }

    public PrinterDefaults withColorMode(PrintColorMode colorMode) {
        PrinterDefaults _x = _copy();
        _x.odataType = Util.nvl(odataType, "microsoft.graph.printerDefaults");
        _x.colorMode = colorMode;
        return _x;
    }

    @Property(name="contentType")
    @JsonIgnore
    public Optional getContentType() {
        return Optional.ofNullable(contentType);
    }

    public PrinterDefaults withContentType(String contentType) {
        PrinterDefaults _x = _copy();
        _x.odataType = Util.nvl(odataType, "microsoft.graph.printerDefaults");
        _x.contentType = contentType;
        return _x;
    }

    @Property(name="copiesPerJob")
    @JsonIgnore
    public Optional getCopiesPerJob() {
        return Optional.ofNullable(copiesPerJob);
    }

    public PrinterDefaults withCopiesPerJob(Integer copiesPerJob) {
        PrinterDefaults _x = _copy();
        _x.odataType = Util.nvl(odataType, "microsoft.graph.printerDefaults");
        _x.copiesPerJob = copiesPerJob;
        return _x;
    }

    @Property(name="dpi")
    @JsonIgnore
    public Optional getDpi() {
        return Optional.ofNullable(dpi);
    }

    public PrinterDefaults withDpi(Integer dpi) {
        PrinterDefaults _x = _copy();
        _x.odataType = Util.nvl(odataType, "microsoft.graph.printerDefaults");
        _x.dpi = dpi;
        return _x;
    }

    @Property(name="duplexMode")
    @JsonIgnore
    public Optional getDuplexMode() {
        return Optional.ofNullable(duplexMode);
    }

    public PrinterDefaults withDuplexMode(PrintDuplexMode duplexMode) {
        PrinterDefaults _x = _copy();
        _x.odataType = Util.nvl(odataType, "microsoft.graph.printerDefaults");
        _x.duplexMode = duplexMode;
        return _x;
    }

    @Property(name="finishings")
    @JsonIgnore
    public CollectionPage getFinishings() {
        return new CollectionPage(contextPath, PrintFinishing.class, this.finishings, Optional.ofNullable(finishingsNextLink), Collections.emptyList(), HttpRequestOptions.EMPTY);
    }

    @Property(name="finishings")
    @JsonIgnore
    public CollectionPage getFinishings(HttpRequestOptions options) {
        return new CollectionPage(contextPath, PrintFinishing.class, this.finishings, Optional.ofNullable(finishingsNextLink), Collections.emptyList(), options);
    }

    @Property(name="fitPdfToPage")
    @JsonIgnore
    public Optional getFitPdfToPage() {
        return Optional.ofNullable(fitPdfToPage);
    }

    public PrinterDefaults withFitPdfToPage(Boolean fitPdfToPage) {
        PrinterDefaults _x = _copy();
        _x.odataType = Util.nvl(odataType, "microsoft.graph.printerDefaults");
        _x.fitPdfToPage = fitPdfToPage;
        return _x;
    }

    @Property(name="inputBin")
    @JsonIgnore
    public Optional getInputBin() {
        return Optional.ofNullable(inputBin);
    }

    public PrinterDefaults withInputBin(String inputBin) {
        PrinterDefaults _x = _copy();
        _x.odataType = Util.nvl(odataType, "microsoft.graph.printerDefaults");
        _x.inputBin = inputBin;
        return _x;
    }

    @Property(name="mediaColor")
    @JsonIgnore
    public Optional getMediaColor() {
        return Optional.ofNullable(mediaColor);
    }

    public PrinterDefaults withMediaColor(String mediaColor) {
        PrinterDefaults _x = _copy();
        _x.odataType = Util.nvl(odataType, "microsoft.graph.printerDefaults");
        _x.mediaColor = mediaColor;
        return _x;
    }

    @Property(name="mediaSize")
    @JsonIgnore
    public Optional getMediaSize() {
        return Optional.ofNullable(mediaSize);
    }

    public PrinterDefaults withMediaSize(String mediaSize) {
        PrinterDefaults _x = _copy();
        _x.odataType = Util.nvl(odataType, "microsoft.graph.printerDefaults");
        _x.mediaSize = mediaSize;
        return _x;
    }

    @Property(name="mediaType")
    @JsonIgnore
    public Optional getMediaType() {
        return Optional.ofNullable(mediaType);
    }

    public PrinterDefaults withMediaType(String mediaType) {
        PrinterDefaults _x = _copy();
        _x.odataType = Util.nvl(odataType, "microsoft.graph.printerDefaults");
        _x.mediaType = mediaType;
        return _x;
    }

    @Property(name="multipageLayout")
    @JsonIgnore
    public Optional getMultipageLayout() {
        return Optional.ofNullable(multipageLayout);
    }

    public PrinterDefaults withMultipageLayout(PrintMultipageLayout multipageLayout) {
        PrinterDefaults _x = _copy();
        _x.odataType = Util.nvl(odataType, "microsoft.graph.printerDefaults");
        _x.multipageLayout = multipageLayout;
        return _x;
    }

    @Property(name="orientation")
    @JsonIgnore
    public Optional getOrientation() {
        return Optional.ofNullable(orientation);
    }

    public PrinterDefaults withOrientation(PrintOrientation orientation) {
        PrinterDefaults _x = _copy();
        _x.odataType = Util.nvl(odataType, "microsoft.graph.printerDefaults");
        _x.orientation = orientation;
        return _x;
    }

    @Property(name="outputBin")
    @JsonIgnore
    public Optional getOutputBin() {
        return Optional.ofNullable(outputBin);
    }

    public PrinterDefaults withOutputBin(String outputBin) {
        PrinterDefaults _x = _copy();
        _x.odataType = Util.nvl(odataType, "microsoft.graph.printerDefaults");
        _x.outputBin = outputBin;
        return _x;
    }

    @Property(name="pagesPerSheet")
    @JsonIgnore
    public Optional getPagesPerSheet() {
        return Optional.ofNullable(pagesPerSheet);
    }

    public PrinterDefaults withPagesPerSheet(Integer pagesPerSheet) {
        PrinterDefaults _x = _copy();
        _x.odataType = Util.nvl(odataType, "microsoft.graph.printerDefaults");
        _x.pagesPerSheet = pagesPerSheet;
        return _x;
    }

    @Property(name="quality")
    @JsonIgnore
    public Optional getQuality() {
        return Optional.ofNullable(quality);
    }

    public PrinterDefaults withQuality(PrintQuality quality) {
        PrinterDefaults _x = _copy();
        _x.odataType = Util.nvl(odataType, "microsoft.graph.printerDefaults");
        _x.quality = quality;
        return _x;
    }

    @Property(name="scaling")
    @JsonIgnore
    public Optional getScaling() {
        return Optional.ofNullable(scaling);
    }

    public PrinterDefaults withScaling(PrintScaling scaling) {
        PrinterDefaults _x = _copy();
        _x.odataType = Util.nvl(odataType, "microsoft.graph.printerDefaults");
        _x.scaling = scaling;
        return _x;
    }

    public PrinterDefaults withUnmappedField(String name, String value) {
        PrinterDefaults _x = _copy();
        _x.setUnmappedField(name, value);
        return _x;
    }

    @JsonAnySetter
    private void setUnmappedField(String name, Object value) {
        if (unmappedFields == null) {
            unmappedFields = new UnmappedFieldsImpl();
        }
        unmappedFields.put(name, value);
    }

    @JsonAnyGetter
    private UnmappedFieldsImpl unmappedFields() {
        return unmappedFields == null ? UnmappedFieldsImpl.EMPTY : unmappedFields;
    }

    @Override
    public UnmappedFields getUnmappedFields() {
        return unmappedFields();
    }

    @Override
    public void postInject(boolean addKeysToContextPath) {
        // do nothing;
    }

    /**
     * Returns a builder which is used to create a new
     * instance of this class (given that this class is immutable).
     *
     * @return a new Builder for this class
     */
    // Suffix used on builder factory method to differentiate the method
    // from static builder methods on superclasses
    public static Builder builder() {
        return new Builder();
    }

    public static final class Builder {
        private PrintColorMode colorMode;
        private String contentType;
        private Integer copiesPerJob;
        private Integer dpi;
        private PrintDuplexMode duplexMode;
        private List finishings;
        private String finishingsNextLink;
        private Boolean fitPdfToPage;
        private String inputBin;
        private String mediaColor;
        private String mediaSize;
        private String mediaType;
        private PrintMultipageLayout multipageLayout;
        private PrintOrientation orientation;
        private String outputBin;
        private Integer pagesPerSheet;
        private PrintQuality quality;
        private PrintScaling scaling;
        private ChangedFields changedFields = ChangedFields.EMPTY;

        Builder() {
            // prevent instantiation
        }

        public Builder colorMode(PrintColorMode colorMode) {
            this.colorMode = colorMode;
            this.changedFields = changedFields.add("colorMode");
            return this;
        }

        public Builder contentType(String contentType) {
            this.contentType = contentType;
            this.changedFields = changedFields.add("contentType");
            return this;
        }

        public Builder copiesPerJob(Integer copiesPerJob) {
            this.copiesPerJob = copiesPerJob;
            this.changedFields = changedFields.add("copiesPerJob");
            return this;
        }

        public Builder dpi(Integer dpi) {
            this.dpi = dpi;
            this.changedFields = changedFields.add("dpi");
            return this;
        }

        public Builder duplexMode(PrintDuplexMode duplexMode) {
            this.duplexMode = duplexMode;
            this.changedFields = changedFields.add("duplexMode");
            return this;
        }

        public Builder finishings(List finishings) {
            this.finishings = finishings;
            this.changedFields = changedFields.add("finishings");
            return this;
        }

        public Builder finishings(PrintFinishing... finishings) {
            return finishings(Arrays.asList(finishings));
        }

        public Builder finishingsNextLink(String finishingsNextLink) {
            this.finishingsNextLink = finishingsNextLink;
            this.changedFields = changedFields.add("finishings");
            return this;
        }

        public Builder fitPdfToPage(Boolean fitPdfToPage) {
            this.fitPdfToPage = fitPdfToPage;
            this.changedFields = changedFields.add("fitPdfToPage");
            return this;
        }

        public Builder inputBin(String inputBin) {
            this.inputBin = inputBin;
            this.changedFields = changedFields.add("inputBin");
            return this;
        }

        public Builder mediaColor(String mediaColor) {
            this.mediaColor = mediaColor;
            this.changedFields = changedFields.add("mediaColor");
            return this;
        }

        public Builder mediaSize(String mediaSize) {
            this.mediaSize = mediaSize;
            this.changedFields = changedFields.add("mediaSize");
            return this;
        }

        public Builder mediaType(String mediaType) {
            this.mediaType = mediaType;
            this.changedFields = changedFields.add("mediaType");
            return this;
        }

        public Builder multipageLayout(PrintMultipageLayout multipageLayout) {
            this.multipageLayout = multipageLayout;
            this.changedFields = changedFields.add("multipageLayout");
            return this;
        }

        public Builder orientation(PrintOrientation orientation) {
            this.orientation = orientation;
            this.changedFields = changedFields.add("orientation");
            return this;
        }

        public Builder outputBin(String outputBin) {
            this.outputBin = outputBin;
            this.changedFields = changedFields.add("outputBin");
            return this;
        }

        public Builder pagesPerSheet(Integer pagesPerSheet) {
            this.pagesPerSheet = pagesPerSheet;
            this.changedFields = changedFields.add("pagesPerSheet");
            return this;
        }

        public Builder quality(PrintQuality quality) {
            this.quality = quality;
            this.changedFields = changedFields.add("quality");
            return this;
        }

        public Builder scaling(PrintScaling scaling) {
            this.scaling = scaling;
            this.changedFields = changedFields.add("scaling");
            return this;
        }

        public PrinterDefaults build() {
            PrinterDefaults _x = new PrinterDefaults();
            _x.contextPath = null;
            _x.unmappedFields = new UnmappedFieldsImpl();
            _x.odataType = "microsoft.graph.printerDefaults";
            _x.colorMode = colorMode;
            _x.contentType = contentType;
            _x.copiesPerJob = copiesPerJob;
            _x.dpi = dpi;
            _x.duplexMode = duplexMode;
            _x.finishings = finishings;
            _x.finishingsNextLink = finishingsNextLink;
            _x.fitPdfToPage = fitPdfToPage;
            _x.inputBin = inputBin;
            _x.mediaColor = mediaColor;
            _x.mediaSize = mediaSize;
            _x.mediaType = mediaType;
            _x.multipageLayout = multipageLayout;
            _x.orientation = orientation;
            _x.outputBin = outputBin;
            _x.pagesPerSheet = pagesPerSheet;
            _x.quality = quality;
            _x.scaling = scaling;
            return _x;
        }
    }

    private PrinterDefaults _copy() {
        PrinterDefaults _x = new PrinterDefaults();
        _x.contextPath = contextPath;
        _x.unmappedFields = unmappedFields.copy();
        _x.odataType = odataType;
        _x.colorMode = colorMode;
        _x.contentType = contentType;
        _x.copiesPerJob = copiesPerJob;
        _x.dpi = dpi;
        _x.duplexMode = duplexMode;
        _x.finishings = finishings;
        _x.fitPdfToPage = fitPdfToPage;
        _x.inputBin = inputBin;
        _x.mediaColor = mediaColor;
        _x.mediaSize = mediaSize;
        _x.mediaType = mediaType;
        _x.multipageLayout = multipageLayout;
        _x.orientation = orientation;
        _x.outputBin = outputBin;
        _x.pagesPerSheet = pagesPerSheet;
        _x.quality = quality;
        _x.scaling = scaling;
        return _x;
    }

    @Override
    public String toString() {
        StringBuilder b = new StringBuilder();
        b.append("PrinterDefaults[");
        b.append("colorMode=");
        b.append(this.colorMode);
        b.append(", ");
        b.append("contentType=");
        b.append(this.contentType);
        b.append(", ");
        b.append("copiesPerJob=");
        b.append(this.copiesPerJob);
        b.append(", ");
        b.append("dpi=");
        b.append(this.dpi);
        b.append(", ");
        b.append("duplexMode=");
        b.append(this.duplexMode);
        b.append(", ");
        b.append("finishings=");
        b.append(this.finishings);
        b.append(", ");
        b.append("fitPdfToPage=");
        b.append(this.fitPdfToPage);
        b.append(", ");
        b.append("inputBin=");
        b.append(this.inputBin);
        b.append(", ");
        b.append("mediaColor=");
        b.append(this.mediaColor);
        b.append(", ");
        b.append("mediaSize=");
        b.append(this.mediaSize);
        b.append(", ");
        b.append("mediaType=");
        b.append(this.mediaType);
        b.append(", ");
        b.append("multipageLayout=");
        b.append(this.multipageLayout);
        b.append(", ");
        b.append("orientation=");
        b.append(this.orientation);
        b.append(", ");
        b.append("outputBin=");
        b.append(this.outputBin);
        b.append(", ");
        b.append("pagesPerSheet=");
        b.append(this.pagesPerSheet);
        b.append(", ");
        b.append("quality=");
        b.append(this.quality);
        b.append(", ");
        b.append("scaling=");
        b.append(this.scaling);
        b.append("]");
        b.append(",unmappedFields=");
        b.append(unmappedFields);
        b.append(",odataType=");
        b.append(odataType);
        return b.toString();
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy