001 002package com.commercetools.api.models.attribute_group; 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 * AttributeGroupSetAttributesActionBuilder 012 * <hr> 013 * Example to create an instance using the builder pattern 014 * <div class=code-example> 015 * <pre><code class='java'> 016 * AttributeGroupSetAttributesAction attributeGroupSetAttributesAction = AttributeGroupSetAttributesAction.builder() 017 * .plusAttributes(attributesBuilder -> attributesBuilder) 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 AttributeGroupSetAttributesActionBuilder implements Builder<AttributeGroupSetAttributesAction> { 024 025 private java.util.List<com.commercetools.api.models.attribute_group.AttributeReference> attributes; 026 027 /** 028 * <p>New unique values to set.</p> 029 * @param attributes value to be set 030 * @return Builder 031 */ 032 033 public AttributeGroupSetAttributesActionBuilder attributes( 034 final com.commercetools.api.models.attribute_group.AttributeReference... attributes) { 035 this.attributes = new ArrayList<>(Arrays.asList(attributes)); 036 return this; 037 } 038 039 /** 040 * <p>New unique values to set.</p> 041 * @param attributes value to be set 042 * @return Builder 043 */ 044 045 public AttributeGroupSetAttributesActionBuilder attributes( 046 final java.util.List<com.commercetools.api.models.attribute_group.AttributeReference> attributes) { 047 this.attributes = attributes; 048 return this; 049 } 050 051 /** 052 * <p>New unique values to set.</p> 053 * @param attributes value to be set 054 * @return Builder 055 */ 056 057 public AttributeGroupSetAttributesActionBuilder plusAttributes( 058 final com.commercetools.api.models.attribute_group.AttributeReference... attributes) { 059 if (this.attributes == null) { 060 this.attributes = new ArrayList<>(); 061 } 062 this.attributes.addAll(Arrays.asList(attributes)); 063 return this; 064 } 065 066 /** 067 * <p>New unique values to set.</p> 068 * @param builder function to build the attributes value 069 * @return Builder 070 */ 071 072 public AttributeGroupSetAttributesActionBuilder plusAttributes( 073 Function<com.commercetools.api.models.attribute_group.AttributeReferenceBuilder, com.commercetools.api.models.attribute_group.AttributeReferenceBuilder> builder) { 074 if (this.attributes == null) { 075 this.attributes = new ArrayList<>(); 076 } 077 this.attributes.add( 078 builder.apply(com.commercetools.api.models.attribute_group.AttributeReferenceBuilder.of()).build()); 079 return this; 080 } 081 082 /** 083 * <p>New unique values to set.</p> 084 * @param builder function to build the attributes value 085 * @return Builder 086 */ 087 088 public AttributeGroupSetAttributesActionBuilder withAttributes( 089 Function<com.commercetools.api.models.attribute_group.AttributeReferenceBuilder, com.commercetools.api.models.attribute_group.AttributeReferenceBuilder> builder) { 090 this.attributes = new ArrayList<>(); 091 this.attributes.add( 092 builder.apply(com.commercetools.api.models.attribute_group.AttributeReferenceBuilder.of()).build()); 093 return this; 094 } 095 096 /** 097 * <p>New unique values to set.</p> 098 * @param builder function to build the attributes value 099 * @return Builder 100 */ 101 102 public AttributeGroupSetAttributesActionBuilder addAttributes( 103 Function<com.commercetools.api.models.attribute_group.AttributeReferenceBuilder, com.commercetools.api.models.attribute_group.AttributeReference> builder) { 104 return plusAttributes( 105 builder.apply(com.commercetools.api.models.attribute_group.AttributeReferenceBuilder.of())); 106 } 107 108 /** 109 * <p>New unique values to set.</p> 110 * @param builder function to build the attributes value 111 * @return Builder 112 */ 113 114 public AttributeGroupSetAttributesActionBuilder setAttributes( 115 Function<com.commercetools.api.models.attribute_group.AttributeReferenceBuilder, com.commercetools.api.models.attribute_group.AttributeReference> builder) { 116 return attributes(builder.apply(com.commercetools.api.models.attribute_group.AttributeReferenceBuilder.of())); 117 } 118 119 /** 120 * <p>New unique values to set.</p> 121 * @return attributes 122 */ 123 124 public java.util.List<com.commercetools.api.models.attribute_group.AttributeReference> getAttributes() { 125 return this.attributes; 126 } 127 128 /** 129 * builds AttributeGroupSetAttributesAction with checking for non-null required values 130 * @return AttributeGroupSetAttributesAction 131 */ 132 public AttributeGroupSetAttributesAction build() { 133 Objects.requireNonNull(attributes, AttributeGroupSetAttributesAction.class + ": attributes is missing"); 134 return new AttributeGroupSetAttributesActionImpl(attributes); 135 } 136 137 /** 138 * builds AttributeGroupSetAttributesAction without checking for non-null required values 139 * @return AttributeGroupSetAttributesAction 140 */ 141 public AttributeGroupSetAttributesAction buildUnchecked() { 142 return new AttributeGroupSetAttributesActionImpl(attributes); 143 } 144 145 /** 146 * factory method for an instance of AttributeGroupSetAttributesActionBuilder 147 * @return builder 148 */ 149 public static AttributeGroupSetAttributesActionBuilder of() { 150 return new AttributeGroupSetAttributesActionBuilder(); 151 } 152 153 /** 154 * create builder for AttributeGroupSetAttributesAction instance 155 * @param template instance with prefilled values for the builder 156 * @return builder 157 */ 158 public static AttributeGroupSetAttributesActionBuilder of(final AttributeGroupSetAttributesAction template) { 159 AttributeGroupSetAttributesActionBuilder builder = new AttributeGroupSetAttributesActionBuilder(); 160 builder.attributes = template.getAttributes(); 161 return builder; 162 } 163 164}