001 002package com.commercetools.api.models.error; 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 * DuplicateAttributeValuesErrorBuilder 012 * <hr> 013 * Example to create an instance using the builder pattern 014 * <div class=code-example> 015 * <pre><code class='java'> 016 * DuplicateAttributeValuesError duplicateAttributeValuesError = DuplicateAttributeValuesError.builder() 017 * .message("{message}") 018 * .plusAttributes(attributesBuilder -> attributesBuilder) 019 * .build() 020 * </code></pre> 021 * </div> 022 */ 023@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 024public class DuplicateAttributeValuesErrorBuilder implements Builder<DuplicateAttributeValuesError> { 025 026 private String message; 027 028 private Map<String, java.lang.Object> values = new HashMap<>(); 029 030 private java.util.List<com.commercetools.api.models.product.Attribute> attributes; 031 032 /** 033 * <p><code>"The set of attributes must be unique across all variants."</code></p> 034 * @param message value to be set 035 * @return Builder 036 */ 037 038 public DuplicateAttributeValuesErrorBuilder message(final String message) { 039 this.message = message; 040 return this; 041 } 042 043 /** 044 * <p>Error-specific additional fields.</p> 045 * @param values properties to be set 046 * @return Builder 047 */ 048 049 public DuplicateAttributeValuesErrorBuilder values(final Map<String, java.lang.Object> values) { 050 this.values = values; 051 return this; 052 } 053 054 /** 055 * <p>Error-specific additional fields.</p> 056 * @param key property name 057 * @param value property value 058 * @return Builder 059 */ 060 061 public DuplicateAttributeValuesErrorBuilder addValue(final String key, final java.lang.Object value) { 062 if (this.values == null) { 063 values = new HashMap<>(); 064 } 065 values.put(key, value); 066 return this; 067 } 068 069 /** 070 * <p>Conflicting Attributes.</p> 071 * @param attributes value to be set 072 * @return Builder 073 */ 074 075 public DuplicateAttributeValuesErrorBuilder attributes( 076 final com.commercetools.api.models.product.Attribute... attributes) { 077 this.attributes = new ArrayList<>(Arrays.asList(attributes)); 078 return this; 079 } 080 081 /** 082 * <p>Conflicting Attributes.</p> 083 * @param attributes value to be set 084 * @return Builder 085 */ 086 087 public DuplicateAttributeValuesErrorBuilder attributes( 088 final java.util.List<com.commercetools.api.models.product.Attribute> attributes) { 089 this.attributes = attributes; 090 return this; 091 } 092 093 /** 094 * <p>Conflicting Attributes.</p> 095 * @param attributes value to be set 096 * @return Builder 097 */ 098 099 public DuplicateAttributeValuesErrorBuilder plusAttributes( 100 final com.commercetools.api.models.product.Attribute... attributes) { 101 if (this.attributes == null) { 102 this.attributes = new ArrayList<>(); 103 } 104 this.attributes.addAll(Arrays.asList(attributes)); 105 return this; 106 } 107 108 /** 109 * <p>Conflicting Attributes.</p> 110 * @param builder function to build the attributes value 111 * @return Builder 112 */ 113 114 public DuplicateAttributeValuesErrorBuilder plusAttributes( 115 Function<com.commercetools.api.models.product.AttributeBuilder, com.commercetools.api.models.product.AttributeBuilder> builder) { 116 if (this.attributes == null) { 117 this.attributes = new ArrayList<>(); 118 } 119 this.attributes.add(builder.apply(com.commercetools.api.models.product.AttributeBuilder.of()).build()); 120 return this; 121 } 122 123 /** 124 * <p>Conflicting Attributes.</p> 125 * @param builder function to build the attributes value 126 * @return Builder 127 */ 128 129 public DuplicateAttributeValuesErrorBuilder withAttributes( 130 Function<com.commercetools.api.models.product.AttributeBuilder, com.commercetools.api.models.product.AttributeBuilder> builder) { 131 this.attributes = new ArrayList<>(); 132 this.attributes.add(builder.apply(com.commercetools.api.models.product.AttributeBuilder.of()).build()); 133 return this; 134 } 135 136 /** 137 * <p>Conflicting Attributes.</p> 138 * @param builder function to build the attributes value 139 * @return Builder 140 */ 141 142 public DuplicateAttributeValuesErrorBuilder addAttributes( 143 Function<com.commercetools.api.models.product.AttributeBuilder, com.commercetools.api.models.product.Attribute> builder) { 144 return plusAttributes(builder.apply(com.commercetools.api.models.product.AttributeBuilder.of())); 145 } 146 147 /** 148 * <p>Conflicting Attributes.</p> 149 * @param builder function to build the attributes value 150 * @return Builder 151 */ 152 153 public DuplicateAttributeValuesErrorBuilder setAttributes( 154 Function<com.commercetools.api.models.product.AttributeBuilder, com.commercetools.api.models.product.Attribute> builder) { 155 return attributes(builder.apply(com.commercetools.api.models.product.AttributeBuilder.of())); 156 } 157 158 /** 159 * <p><code>"The set of attributes must be unique across all variants."</code></p> 160 * @return message 161 */ 162 163 public String getMessage() { 164 return this.message; 165 } 166 167 /** 168 * <p>Error-specific additional fields.</p> 169 * @return pattern properties 170 */ 171 172 public Map<String, java.lang.Object> getValues() { 173 return this.values; 174 } 175 176 /** 177 * <p>Conflicting Attributes.</p> 178 * @return attributes 179 */ 180 181 public java.util.List<com.commercetools.api.models.product.Attribute> getAttributes() { 182 return this.attributes; 183 } 184 185 /** 186 * builds DuplicateAttributeValuesError with checking for non-null required values 187 * @return DuplicateAttributeValuesError 188 */ 189 public DuplicateAttributeValuesError build() { 190 Objects.requireNonNull(message, DuplicateAttributeValuesError.class + ": message is missing"); 191 Objects.requireNonNull(attributes, DuplicateAttributeValuesError.class + ": attributes is missing"); 192 return new DuplicateAttributeValuesErrorImpl(message, values, attributes); 193 } 194 195 /** 196 * builds DuplicateAttributeValuesError without checking for non-null required values 197 * @return DuplicateAttributeValuesError 198 */ 199 public DuplicateAttributeValuesError buildUnchecked() { 200 return new DuplicateAttributeValuesErrorImpl(message, values, attributes); 201 } 202 203 /** 204 * factory method for an instance of DuplicateAttributeValuesErrorBuilder 205 * @return builder 206 */ 207 public static DuplicateAttributeValuesErrorBuilder of() { 208 return new DuplicateAttributeValuesErrorBuilder(); 209 } 210 211 /** 212 * create builder for DuplicateAttributeValuesError instance 213 * @param template instance with prefilled values for the builder 214 * @return builder 215 */ 216 public static DuplicateAttributeValuesErrorBuilder of(final DuplicateAttributeValuesError template) { 217 DuplicateAttributeValuesErrorBuilder builder = new DuplicateAttributeValuesErrorBuilder(); 218 builder.message = template.getMessage(); 219 builder.values = template.values(); 220 builder.attributes = template.getAttributes(); 221 return builder; 222 } 223 224}