001
002package com.commercetools.api.models.associate_role;
003
004import java.util.*;
005
006import io.vrap.rmf.base.client.Builder;
007import io.vrap.rmf.base.client.utils.Generated;
008
009/**
010 * AssociateRoleRemovePermissionActionBuilder
011 * <hr>
012 * Example to create an instance using the builder pattern
013 * <div class=code-example>
014 * <pre><code class='java'>
015 *     AssociateRoleRemovePermissionAction associateRoleRemovePermissionAction = AssociateRoleRemovePermissionAction.builder()
016 *             .permission(Permission.ADD_CHILD_UNITS)
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 AssociateRoleRemovePermissionActionBuilder implements Builder<AssociateRoleRemovePermissionAction> {
023
024    private com.commercetools.api.models.associate_role.Permission permission;
025
026    /**
027     *  <p>Permission to be removed from the AssociateRole.</p>
028     * @param permission value to be set
029     * @return Builder
030     */
031
032    public AssociateRoleRemovePermissionActionBuilder permission(
033            final com.commercetools.api.models.associate_role.Permission permission) {
034        this.permission = permission;
035        return this;
036    }
037
038    /**
039     *  <p>Permission to be removed from the AssociateRole.</p>
040     * @return permission
041     */
042
043    public com.commercetools.api.models.associate_role.Permission getPermission() {
044        return this.permission;
045    }
046
047    /**
048     * builds AssociateRoleRemovePermissionAction with checking for non-null required values
049     * @return AssociateRoleRemovePermissionAction
050     */
051    public AssociateRoleRemovePermissionAction build() {
052        Objects.requireNonNull(permission, AssociateRoleRemovePermissionAction.class + ": permission is missing");
053        return new AssociateRoleRemovePermissionActionImpl(permission);
054    }
055
056    /**
057     * builds AssociateRoleRemovePermissionAction without checking for non-null required values
058     * @return AssociateRoleRemovePermissionAction
059     */
060    public AssociateRoleRemovePermissionAction buildUnchecked() {
061        return new AssociateRoleRemovePermissionActionImpl(permission);
062    }
063
064    /**
065     * factory method for an instance of AssociateRoleRemovePermissionActionBuilder
066     * @return builder
067     */
068    public static AssociateRoleRemovePermissionActionBuilder of() {
069        return new AssociateRoleRemovePermissionActionBuilder();
070    }
071
072    /**
073     * create builder for AssociateRoleRemovePermissionAction instance
074     * @param template instance with prefilled values for the builder
075     * @return builder
076     */
077    public static AssociateRoleRemovePermissionActionBuilder of(final AssociateRoleRemovePermissionAction template) {
078        AssociateRoleRemovePermissionActionBuilder builder = new AssociateRoleRemovePermissionActionBuilder();
079        builder.permission = template.getPermission();
080        return builder;
081    }
082
083}