001
002package com.commercetools.api.models.associate_role;
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 * AssociateRoleSetPermissionsActionBuilder
013 * <hr>
014 * Example to create an instance using the builder pattern
015 * <div class=code-example>
016 * <pre><code class='java'>
017 *     AssociateRoleSetPermissionsAction associateRoleSetPermissionsAction = AssociateRoleSetPermissionsAction.builder()
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 AssociateRoleSetPermissionsActionBuilder implements Builder<AssociateRoleSetPermissionsAction> {
024
025    @Nullable
026    private java.util.List<com.commercetools.api.models.associate_role.Permission> permissions;
027
028    /**
029     *  <p>Overrides the current list of Permissions for the AssociateRole.</p>
030     * @param permissions value to be set
031     * @return Builder
032     */
033
034    public AssociateRoleSetPermissionsActionBuilder permissions(
035            @Nullable final com.commercetools.api.models.associate_role.Permission... permissions) {
036        this.permissions = new ArrayList<>(Arrays.asList(permissions));
037        return this;
038    }
039
040    /**
041     *  <p>Overrides the current list of Permissions for the AssociateRole.</p>
042     * @param permissions value to be set
043     * @return Builder
044     */
045
046    public AssociateRoleSetPermissionsActionBuilder permissions(
047            @Nullable final java.util.List<com.commercetools.api.models.associate_role.Permission> permissions) {
048        this.permissions = permissions;
049        return this;
050    }
051
052    /**
053     *  <p>Overrides the current list of Permissions for the AssociateRole.</p>
054     * @param permissions value to be set
055     * @return Builder
056     */
057
058    public AssociateRoleSetPermissionsActionBuilder plusPermissions(
059            @Nullable final com.commercetools.api.models.associate_role.Permission... permissions) {
060        if (this.permissions == null) {
061            this.permissions = new ArrayList<>();
062        }
063        this.permissions.addAll(Arrays.asList(permissions));
064        return this;
065    }
066
067    /**
068     *  <p>Overrides the current list of Permissions for the AssociateRole.</p>
069     * @return permissions
070     */
071
072    @Nullable
073    public java.util.List<com.commercetools.api.models.associate_role.Permission> getPermissions() {
074        return this.permissions;
075    }
076
077    /**
078     * builds AssociateRoleSetPermissionsAction with checking for non-null required values
079     * @return AssociateRoleSetPermissionsAction
080     */
081    public AssociateRoleSetPermissionsAction build() {
082        return new AssociateRoleSetPermissionsActionImpl(permissions);
083    }
084
085    /**
086     * builds AssociateRoleSetPermissionsAction without checking for non-null required values
087     * @return AssociateRoleSetPermissionsAction
088     */
089    public AssociateRoleSetPermissionsAction buildUnchecked() {
090        return new AssociateRoleSetPermissionsActionImpl(permissions);
091    }
092
093    /**
094     * factory method for an instance of AssociateRoleSetPermissionsActionBuilder
095     * @return builder
096     */
097    public static AssociateRoleSetPermissionsActionBuilder of() {
098        return new AssociateRoleSetPermissionsActionBuilder();
099    }
100
101    /**
102     * create builder for AssociateRoleSetPermissionsAction instance
103     * @param template instance with prefilled values for the builder
104     * @return builder
105     */
106    public static AssociateRoleSetPermissionsActionBuilder of(final AssociateRoleSetPermissionsAction template) {
107        AssociateRoleSetPermissionsActionBuilder builder = new AssociateRoleSetPermissionsActionBuilder();
108        builder.permissions = template.getPermissions();
109        return builder;
110    }
111
112}