001
002package com.commercetools.importapi.models.importcontainers;
003
004import java.util.*;
005
006import javax.annotation.Nullable;
007
008import io.vrap.rmf.base.client.Builder;
009import io.vrap.rmf.base.client.utils.Generated;
010
011/**
012 * ImportContainerDraftBuilder
013 * <hr>
014 * Example to create an instance using the builder pattern
015 * <div class=code-example>
016 * <pre><code class='java'>
017 *     ImportContainerDraft importContainerDraft = ImportContainerDraft.builder()
018 *             .key("{key}")
019 *             .build()
020 * </code></pre>
021 * </div>
022 */
023@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
024public class ImportContainerDraftBuilder implements Builder<ImportContainerDraft> {
025
026    private String key;
027
028    @Nullable
029    private com.commercetools.importapi.models.common.ImportResourceType resourceType;
030
031    /**
032     *  <p>User-defined unique identifier of the ImportContainer. Keys can only contain alphanumeric characters (a-Z, 0-9), underscores and hyphens (_, -).</p>
033     * @param key value to be set
034     * @return Builder
035     */
036
037    public ImportContainerDraftBuilder key(final String key) {
038        this.key = key;
039        return this;
040    }
041
042    /**
043     *  <p>The resource type to be imported. If not given, the ImportContainer is able to import all of the supported ImportResourceTypes.</p>
044     * @param resourceType value to be set
045     * @return Builder
046     */
047
048    public ImportContainerDraftBuilder resourceType(
049            @Nullable final com.commercetools.importapi.models.common.ImportResourceType resourceType) {
050        this.resourceType = resourceType;
051        return this;
052    }
053
054    /**
055     *  <p>User-defined unique identifier of the ImportContainer. Keys can only contain alphanumeric characters (a-Z, 0-9), underscores and hyphens (_, -).</p>
056     * @return key
057     */
058
059    public String getKey() {
060        return this.key;
061    }
062
063    /**
064     *  <p>The resource type to be imported. If not given, the ImportContainer is able to import all of the supported ImportResourceTypes.</p>
065     * @return resourceType
066     */
067
068    @Nullable
069    public com.commercetools.importapi.models.common.ImportResourceType getResourceType() {
070        return this.resourceType;
071    }
072
073    /**
074     * builds ImportContainerDraft with checking for non-null required values
075     * @return ImportContainerDraft
076     */
077    public ImportContainerDraft build() {
078        Objects.requireNonNull(key, ImportContainerDraft.class + ": key is missing");
079        return new ImportContainerDraftImpl(key, resourceType);
080    }
081
082    /**
083     * builds ImportContainerDraft without checking for non-null required values
084     * @return ImportContainerDraft
085     */
086    public ImportContainerDraft buildUnchecked() {
087        return new ImportContainerDraftImpl(key, resourceType);
088    }
089
090    /**
091     * factory method for an instance of ImportContainerDraftBuilder
092     * @return builder
093     */
094    public static ImportContainerDraftBuilder of() {
095        return new ImportContainerDraftBuilder();
096    }
097
098    /**
099     * create builder for ImportContainerDraft instance
100     * @param template instance with prefilled values for the builder
101     * @return builder
102     */
103    public static ImportContainerDraftBuilder of(final ImportContainerDraft template) {
104        ImportContainerDraftBuilder builder = new ImportContainerDraftBuilder();
105        builder.key = template.getKey();
106        builder.resourceType = template.getResourceType();
107        return builder;
108    }
109
110}