001
002package com.commercetools.api.models.message;
003
004import java.util.*;
005
006import io.vrap.rmf.base.client.Builder;
007import io.vrap.rmf.base.client.utils.Generated;
008
009/**
010 * AssociateRolePermissionsSetMessagePayloadBuilder
011 * <hr>
012 * Example to create an instance using the builder pattern
013 * <div class=code-example>
014 * <pre><code class='java'>
015 *     AssociateRolePermissionsSetMessagePayload associateRolePermissionsSetMessagePayload = AssociateRolePermissionsSetMessagePayload.builder()
016 *             .plusPermissions(permissionsBuilder -> permissionsBuilder)
017 *             .build()
018 * </code></pre>
019 * </div>
020 */
021@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
022public class AssociateRolePermissionsSetMessagePayloadBuilder
023        implements Builder<AssociateRolePermissionsSetMessagePayload> {
024
025    private java.util.List<com.commercetools.api.models.associate_role.Permission> permissions;
026
027    /**
028     *  <p>Permission assigned to the AssociateRole.</p>
029     * @param permissions value to be set
030     * @return Builder
031     */
032
033    public AssociateRolePermissionsSetMessagePayloadBuilder permissions(
034            final com.commercetools.api.models.associate_role.Permission... permissions) {
035        this.permissions = new ArrayList<>(Arrays.asList(permissions));
036        return this;
037    }
038
039    /**
040     *  <p>Permission assigned to the AssociateRole.</p>
041     * @param permissions value to be set
042     * @return Builder
043     */
044
045    public AssociateRolePermissionsSetMessagePayloadBuilder permissions(
046            final java.util.List<com.commercetools.api.models.associate_role.Permission> permissions) {
047        this.permissions = permissions;
048        return this;
049    }
050
051    /**
052     *  <p>Permission assigned to the AssociateRole.</p>
053     * @param permissions value to be set
054     * @return Builder
055     */
056
057    public AssociateRolePermissionsSetMessagePayloadBuilder plusPermissions(
058            final com.commercetools.api.models.associate_role.Permission... permissions) {
059        if (this.permissions == null) {
060            this.permissions = new ArrayList<>();
061        }
062        this.permissions.addAll(Arrays.asList(permissions));
063        return this;
064    }
065
066    /**
067     *  <p>Permission assigned to the AssociateRole.</p>
068     * @return permissions
069     */
070
071    public java.util.List<com.commercetools.api.models.associate_role.Permission> getPermissions() {
072        return this.permissions;
073    }
074
075    /**
076     * builds AssociateRolePermissionsSetMessagePayload with checking for non-null required values
077     * @return AssociateRolePermissionsSetMessagePayload
078     */
079    public AssociateRolePermissionsSetMessagePayload build() {
080        Objects.requireNonNull(permissions,
081            AssociateRolePermissionsSetMessagePayload.class + ": permissions is missing");
082        return new AssociateRolePermissionsSetMessagePayloadImpl(permissions);
083    }
084
085    /**
086     * builds AssociateRolePermissionsSetMessagePayload without checking for non-null required values
087     * @return AssociateRolePermissionsSetMessagePayload
088     */
089    public AssociateRolePermissionsSetMessagePayload buildUnchecked() {
090        return new AssociateRolePermissionsSetMessagePayloadImpl(permissions);
091    }
092
093    /**
094     * factory method for an instance of AssociateRolePermissionsSetMessagePayloadBuilder
095     * @return builder
096     */
097    public static AssociateRolePermissionsSetMessagePayloadBuilder of() {
098        return new AssociateRolePermissionsSetMessagePayloadBuilder();
099    }
100
101    /**
102     * create builder for AssociateRolePermissionsSetMessagePayload instance
103     * @param template instance with prefilled values for the builder
104     * @return builder
105     */
106    public static AssociateRolePermissionsSetMessagePayloadBuilder of(
107            final AssociateRolePermissionsSetMessagePayload template) {
108        AssociateRolePermissionsSetMessagePayloadBuilder builder = new AssociateRolePermissionsSetMessagePayloadBuilder();
109        builder.permissions = template.getPermissions();
110        return builder;
111    }
112
113}