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 * DuplicateAttributeValueErrorBuilder 012 * <hr> 013 * Example to create an instance using the builder pattern 014 * <div class=code-example> 015 * <pre><code class='java'> 016 * DuplicateAttributeValueError duplicateAttributeValueError = DuplicateAttributeValueError.builder() 017 * .message("{message}") 018 * .attribute(attributeBuilder -> attributeBuilder) 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 DuplicateAttributeValueErrorBuilder implements Builder<DuplicateAttributeValueError> { 025 026 private String message; 027 028 private Map<String, java.lang.Object> values = new HashMap<>(); 029 030 private com.commercetools.api.models.product.Attribute attribute; 031 032 /** 033 * <p><code>"Attribute can't have the same value in a different variant."</code></p> 034 * @param message value to be set 035 * @return Builder 036 */ 037 038 public DuplicateAttributeValueErrorBuilder 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 DuplicateAttributeValueErrorBuilder 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 DuplicateAttributeValueErrorBuilder 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 builder function to build the attribute value 072 * @return Builder 073 */ 074 075 public DuplicateAttributeValueErrorBuilder attribute( 076 Function<com.commercetools.api.models.product.AttributeBuilder, com.commercetools.api.models.product.AttributeBuilder> builder) { 077 this.attribute = builder.apply(com.commercetools.api.models.product.AttributeBuilder.of()).build(); 078 return this; 079 } 080 081 /** 082 * <p>Conflicting Attributes.</p> 083 * @param builder function to build the attribute value 084 * @return Builder 085 */ 086 087 public DuplicateAttributeValueErrorBuilder withAttribute( 088 Function<com.commercetools.api.models.product.AttributeBuilder, com.commercetools.api.models.product.Attribute> builder) { 089 this.attribute = builder.apply(com.commercetools.api.models.product.AttributeBuilder.of()); 090 return this; 091 } 092 093 /** 094 * <p>Conflicting Attributes.</p> 095 * @param attribute value to be set 096 * @return Builder 097 */ 098 099 public DuplicateAttributeValueErrorBuilder attribute( 100 final com.commercetools.api.models.product.Attribute attribute) { 101 this.attribute = attribute; 102 return this; 103 } 104 105 /** 106 * <p><code>"Attribute can't have the same value in a different variant."</code></p> 107 * @return message 108 */ 109 110 public String getMessage() { 111 return this.message; 112 } 113 114 /** 115 * <p>Error-specific additional fields.</p> 116 * @return pattern properties 117 */ 118 119 public Map<String, java.lang.Object> getValues() { 120 return this.values; 121 } 122 123 /** 124 * <p>Conflicting Attributes.</p> 125 * @return attribute 126 */ 127 128 public com.commercetools.api.models.product.Attribute getAttribute() { 129 return this.attribute; 130 } 131 132 /** 133 * builds DuplicateAttributeValueError with checking for non-null required values 134 * @return DuplicateAttributeValueError 135 */ 136 public DuplicateAttributeValueError build() { 137 Objects.requireNonNull(message, DuplicateAttributeValueError.class + ": message is missing"); 138 Objects.requireNonNull(attribute, DuplicateAttributeValueError.class + ": attribute is missing"); 139 return new DuplicateAttributeValueErrorImpl(message, values, attribute); 140 } 141 142 /** 143 * builds DuplicateAttributeValueError without checking for non-null required values 144 * @return DuplicateAttributeValueError 145 */ 146 public DuplicateAttributeValueError buildUnchecked() { 147 return new DuplicateAttributeValueErrorImpl(message, values, attribute); 148 } 149 150 /** 151 * factory method for an instance of DuplicateAttributeValueErrorBuilder 152 * @return builder 153 */ 154 public static DuplicateAttributeValueErrorBuilder of() { 155 return new DuplicateAttributeValueErrorBuilder(); 156 } 157 158 /** 159 * create builder for DuplicateAttributeValueError instance 160 * @param template instance with prefilled values for the builder 161 * @return builder 162 */ 163 public static DuplicateAttributeValueErrorBuilder of(final DuplicateAttributeValueError template) { 164 DuplicateAttributeValueErrorBuilder builder = new DuplicateAttributeValueErrorBuilder(); 165 builder.message = template.getMessage(); 166 builder.values = template.values(); 167 builder.attribute = template.getAttribute(); 168 return builder; 169 } 170 171}