001
002package com.commercetools.api.models.me;
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 * MyBusinessUnitChangeParentUnitActionBuilder
012 * <hr>
013 * Example to create an instance using the builder pattern
014 * <div class=code-example>
015 * <pre><code class='java'>
016 *     MyBusinessUnitChangeParentUnitAction myBusinessUnitChangeParentUnitAction = MyBusinessUnitChangeParentUnitAction.builder()
017 *             .parentUnit(parentUnitBuilder -> parentUnitBuilder)
018 *             .build()
019 * </code></pre>
020 * </div>
021 */
022@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
023public class MyBusinessUnitChangeParentUnitActionBuilder implements Builder<MyBusinessUnitChangeParentUnitAction> {
024
025    private com.commercetools.api.models.business_unit.BusinessUnitResourceIdentifier parentUnit;
026
027    /**
028     *  <p>New parent unit of the Business Unit. The new parent unit must have the same top-level unit as the old parent unit.</p>
029     * @param builder function to build the parentUnit value
030     * @return Builder
031     */
032
033    public MyBusinessUnitChangeParentUnitActionBuilder parentUnit(
034            Function<com.commercetools.api.models.business_unit.BusinessUnitResourceIdentifierBuilder, com.commercetools.api.models.business_unit.BusinessUnitResourceIdentifierBuilder> builder) {
035        this.parentUnit = builder
036                .apply(com.commercetools.api.models.business_unit.BusinessUnitResourceIdentifierBuilder.of())
037                .build();
038        return this;
039    }
040
041    /**
042     *  <p>New parent unit of the Business Unit. The new parent unit must have the same top-level unit as the old parent unit.</p>
043     * @param builder function to build the parentUnit value
044     * @return Builder
045     */
046
047    public MyBusinessUnitChangeParentUnitActionBuilder withParentUnit(
048            Function<com.commercetools.api.models.business_unit.BusinessUnitResourceIdentifierBuilder, com.commercetools.api.models.business_unit.BusinessUnitResourceIdentifier> builder) {
049        this.parentUnit = builder
050                .apply(com.commercetools.api.models.business_unit.BusinessUnitResourceIdentifierBuilder.of());
051        return this;
052    }
053
054    /**
055     *  <p>New parent unit of the Business Unit. The new parent unit must have the same top-level unit as the old parent unit.</p>
056     * @param parentUnit value to be set
057     * @return Builder
058     */
059
060    public MyBusinessUnitChangeParentUnitActionBuilder parentUnit(
061            final com.commercetools.api.models.business_unit.BusinessUnitResourceIdentifier parentUnit) {
062        this.parentUnit = parentUnit;
063        return this;
064    }
065
066    /**
067     *  <p>New parent unit of the Business Unit. The new parent unit must have the same top-level unit as the old parent unit.</p>
068     * @return parentUnit
069     */
070
071    public com.commercetools.api.models.business_unit.BusinessUnitResourceIdentifier getParentUnit() {
072        return this.parentUnit;
073    }
074
075    /**
076     * builds MyBusinessUnitChangeParentUnitAction with checking for non-null required values
077     * @return MyBusinessUnitChangeParentUnitAction
078     */
079    public MyBusinessUnitChangeParentUnitAction build() {
080        Objects.requireNonNull(parentUnit, MyBusinessUnitChangeParentUnitAction.class + ": parentUnit is missing");
081        return new MyBusinessUnitChangeParentUnitActionImpl(parentUnit);
082    }
083
084    /**
085     * builds MyBusinessUnitChangeParentUnitAction without checking for non-null required values
086     * @return MyBusinessUnitChangeParentUnitAction
087     */
088    public MyBusinessUnitChangeParentUnitAction buildUnchecked() {
089        return new MyBusinessUnitChangeParentUnitActionImpl(parentUnit);
090    }
091
092    /**
093     * factory method for an instance of MyBusinessUnitChangeParentUnitActionBuilder
094     * @return builder
095     */
096    public static MyBusinessUnitChangeParentUnitActionBuilder of() {
097        return new MyBusinessUnitChangeParentUnitActionBuilder();
098    }
099
100    /**
101     * create builder for MyBusinessUnitChangeParentUnitAction instance
102     * @param template instance with prefilled values for the builder
103     * @return builder
104     */
105    public static MyBusinessUnitChangeParentUnitActionBuilder of(final MyBusinessUnitChangeParentUnitAction template) {
106        MyBusinessUnitChangeParentUnitActionBuilder builder = new MyBusinessUnitChangeParentUnitActionBuilder();
107        builder.parentUnit = template.getParentUnit();
108        return builder;
109    }
110
111}