001
002package com.commercetools.history.models.common;
003
004import java.util.*;
005import java.util.function.Function;
006
007import io.vrap.rmf.base.client.Builder;
008import io.vrap.rmf.base.client.utils.Generated;
009
010/**
011 * ImageBuilder
012 * <hr>
013 * Example to create an instance using the builder pattern
014 * <div class=code-example>
015 * <pre><code class='java'>
016 *     Image image = Image.builder()
017 *             .url("{url}")
018 *             .dimensions(dimensionsBuilder -> dimensionsBuilder)
019 *             .label("{label}")
020 *             .build()
021 * </code></pre>
022 * </div>
023 */
024@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
025public class ImageBuilder implements Builder<Image> {
026
027    private String url;
028
029    private com.commercetools.history.models.common.ImageDimensions dimensions;
030
031    private String label;
032
033    /**
034     * set the value to the url
035     * @param url value to be set
036     * @return Builder
037     */
038
039    public ImageBuilder url(final String url) {
040        this.url = url;
041        return this;
042    }
043
044    /**
045     * set the value to the dimensions using the builder function
046     * @param builder function to build the dimensions value
047     * @return Builder
048     */
049
050    public ImageBuilder dimensions(
051            Function<com.commercetools.history.models.common.ImageDimensionsBuilder, com.commercetools.history.models.common.ImageDimensionsBuilder> builder) {
052        this.dimensions = builder.apply(com.commercetools.history.models.common.ImageDimensionsBuilder.of()).build();
053        return this;
054    }
055
056    /**
057     * set the value to the dimensions using the builder function
058     * @param builder function to build the dimensions value
059     * @return Builder
060     */
061
062    public ImageBuilder withDimensions(
063            Function<com.commercetools.history.models.common.ImageDimensionsBuilder, com.commercetools.history.models.common.ImageDimensions> builder) {
064        this.dimensions = builder.apply(com.commercetools.history.models.common.ImageDimensionsBuilder.of());
065        return this;
066    }
067
068    /**
069     * set the value to the dimensions
070     * @param dimensions value to be set
071     * @return Builder
072     */
073
074    public ImageBuilder dimensions(final com.commercetools.history.models.common.ImageDimensions dimensions) {
075        this.dimensions = dimensions;
076        return this;
077    }
078
079    /**
080     * set the value to the label
081     * @param label value to be set
082     * @return Builder
083     */
084
085    public ImageBuilder label(final String label) {
086        this.label = label;
087        return this;
088    }
089
090    /**
091     * value of url}
092     * @return url
093     */
094
095    public String getUrl() {
096        return this.url;
097    }
098
099    /**
100     * value of dimensions}
101     * @return dimensions
102     */
103
104    public com.commercetools.history.models.common.ImageDimensions getDimensions() {
105        return this.dimensions;
106    }
107
108    /**
109     * value of label}
110     * @return label
111     */
112
113    public String getLabel() {
114        return this.label;
115    }
116
117    /**
118     * builds Image with checking for non-null required values
119     * @return Image
120     */
121    public Image build() {
122        Objects.requireNonNull(url, Image.class + ": url is missing");
123        Objects.requireNonNull(dimensions, Image.class + ": dimensions is missing");
124        Objects.requireNonNull(label, Image.class + ": label is missing");
125        return new ImageImpl(url, dimensions, label);
126    }
127
128    /**
129     * builds Image without checking for non-null required values
130     * @return Image
131     */
132    public Image buildUnchecked() {
133        return new ImageImpl(url, dimensions, label);
134    }
135
136    /**
137     * factory method for an instance of ImageBuilder
138     * @return builder
139     */
140    public static ImageBuilder of() {
141        return new ImageBuilder();
142    }
143
144    /**
145     * create builder for Image instance
146     * @param template instance with prefilled values for the builder
147     * @return builder
148     */
149    public static ImageBuilder of(final Image template) {
150        ImageBuilder builder = new ImageBuilder();
151        builder.url = template.getUrl();
152        builder.dimensions = template.getDimensions();
153        builder.label = template.getLabel();
154        return builder;
155    }
156
157}