001 002package com.commercetools.history.models.change; 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 * SetVariantAvailabilityChangeBuilder 012 * <hr> 013 * Example to create an instance using the builder pattern 014 * <div class=code-example> 015 * <pre><code class='java'> 016 * SetVariantAvailabilityChange setVariantAvailabilityChange = SetVariantAvailabilityChange.builder() 017 * .change("{change}") 018 * .previousValue(previousValueBuilder -> previousValueBuilder) 019 * .nextValue(nextValueBuilder -> nextValueBuilder) 020 * .catalogData("{catalogData}") 021 * .variant("{variant}") 022 * .build() 023 * </code></pre> 024 * </div> 025 */ 026@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 027public class SetVariantAvailabilityChangeBuilder implements Builder<SetVariantAvailabilityChange> { 028 029 private String change; 030 031 private com.commercetools.history.models.common.ProductVariantAvailability previousValue; 032 033 private com.commercetools.history.models.common.ProductVariantAvailability nextValue; 034 035 private String catalogData; 036 037 private String variant; 038 039 /** 040 * set the value to the change 041 * @param change value to be set 042 * @return Builder 043 */ 044 045 public SetVariantAvailabilityChangeBuilder change(final String change) { 046 this.change = change; 047 return this; 048 } 049 050 /** 051 * <p>Value before the change.</p> 052 * @param builder function to build the previousValue value 053 * @return Builder 054 */ 055 056 public SetVariantAvailabilityChangeBuilder previousValue( 057 Function<com.commercetools.history.models.common.ProductVariantAvailabilityBuilder, com.commercetools.history.models.common.ProductVariantAvailabilityBuilder> builder) { 058 this.previousValue = builder 059 .apply(com.commercetools.history.models.common.ProductVariantAvailabilityBuilder.of()) 060 .build(); 061 return this; 062 } 063 064 /** 065 * <p>Value before the change.</p> 066 * @param builder function to build the previousValue value 067 * @return Builder 068 */ 069 070 public SetVariantAvailabilityChangeBuilder withPreviousValue( 071 Function<com.commercetools.history.models.common.ProductVariantAvailabilityBuilder, com.commercetools.history.models.common.ProductVariantAvailability> builder) { 072 this.previousValue = builder 073 .apply(com.commercetools.history.models.common.ProductVariantAvailabilityBuilder.of()); 074 return this; 075 } 076 077 /** 078 * <p>Value before the change.</p> 079 * @param previousValue value to be set 080 * @return Builder 081 */ 082 083 public SetVariantAvailabilityChangeBuilder previousValue( 084 final com.commercetools.history.models.common.ProductVariantAvailability previousValue) { 085 this.previousValue = previousValue; 086 return this; 087 } 088 089 /** 090 * <p>Value after the change.</p> 091 * @param builder function to build the nextValue value 092 * @return Builder 093 */ 094 095 public SetVariantAvailabilityChangeBuilder nextValue( 096 Function<com.commercetools.history.models.common.ProductVariantAvailabilityBuilder, com.commercetools.history.models.common.ProductVariantAvailabilityBuilder> builder) { 097 this.nextValue = builder.apply(com.commercetools.history.models.common.ProductVariantAvailabilityBuilder.of()) 098 .build(); 099 return this; 100 } 101 102 /** 103 * <p>Value after the change.</p> 104 * @param builder function to build the nextValue value 105 * @return Builder 106 */ 107 108 public SetVariantAvailabilityChangeBuilder withNextValue( 109 Function<com.commercetools.history.models.common.ProductVariantAvailabilityBuilder, com.commercetools.history.models.common.ProductVariantAvailability> builder) { 110 this.nextValue = builder.apply(com.commercetools.history.models.common.ProductVariantAvailabilityBuilder.of()); 111 return this; 112 } 113 114 /** 115 * <p>Value after the change.</p> 116 * @param nextValue value to be set 117 * @return Builder 118 */ 119 120 public SetVariantAvailabilityChangeBuilder nextValue( 121 final com.commercetools.history.models.common.ProductVariantAvailability nextValue) { 122 this.nextValue = nextValue; 123 return this; 124 } 125 126 /** 127 * <ul> 128 * <li><code>staged</code>, if the staged ProductCatalogData was updated.</li> 129 * <li><code>current</code>, if the current ProductCatalogData was updated.</li> 130 * </ul> 131 * @param catalogData value to be set 132 * @return Builder 133 */ 134 135 public SetVariantAvailabilityChangeBuilder catalogData(final String catalogData) { 136 this.catalogData = catalogData; 137 return this; 138 } 139 140 /** 141 * <p><code>sku</code> or <code>key</code> of the ProductVariant.</p> 142 * @param variant value to be set 143 * @return Builder 144 */ 145 146 public SetVariantAvailabilityChangeBuilder variant(final String variant) { 147 this.variant = variant; 148 return this; 149 } 150 151 /** 152 * value of change} 153 * @return change 154 */ 155 156 public String getChange() { 157 return this.change; 158 } 159 160 /** 161 * <p>Value before the change.</p> 162 * @return previousValue 163 */ 164 165 public com.commercetools.history.models.common.ProductVariantAvailability getPreviousValue() { 166 return this.previousValue; 167 } 168 169 /** 170 * <p>Value after the change.</p> 171 * @return nextValue 172 */ 173 174 public com.commercetools.history.models.common.ProductVariantAvailability getNextValue() { 175 return this.nextValue; 176 } 177 178 /** 179 * <ul> 180 * <li><code>staged</code>, if the staged ProductCatalogData was updated.</li> 181 * <li><code>current</code>, if the current ProductCatalogData was updated.</li> 182 * </ul> 183 * @return catalogData 184 */ 185 186 public String getCatalogData() { 187 return this.catalogData; 188 } 189 190 /** 191 * <p><code>sku</code> or <code>key</code> of the ProductVariant.</p> 192 * @return variant 193 */ 194 195 public String getVariant() { 196 return this.variant; 197 } 198 199 /** 200 * builds SetVariantAvailabilityChange with checking for non-null required values 201 * @return SetVariantAvailabilityChange 202 */ 203 public SetVariantAvailabilityChange build() { 204 Objects.requireNonNull(change, SetVariantAvailabilityChange.class + ": change is missing"); 205 Objects.requireNonNull(previousValue, SetVariantAvailabilityChange.class + ": previousValue is missing"); 206 Objects.requireNonNull(nextValue, SetVariantAvailabilityChange.class + ": nextValue is missing"); 207 Objects.requireNonNull(catalogData, SetVariantAvailabilityChange.class + ": catalogData is missing"); 208 Objects.requireNonNull(variant, SetVariantAvailabilityChange.class + ": variant is missing"); 209 return new SetVariantAvailabilityChangeImpl(change, previousValue, nextValue, catalogData, variant); 210 } 211 212 /** 213 * builds SetVariantAvailabilityChange without checking for non-null required values 214 * @return SetVariantAvailabilityChange 215 */ 216 public SetVariantAvailabilityChange buildUnchecked() { 217 return new SetVariantAvailabilityChangeImpl(change, previousValue, nextValue, catalogData, variant); 218 } 219 220 /** 221 * factory method for an instance of SetVariantAvailabilityChangeBuilder 222 * @return builder 223 */ 224 public static SetVariantAvailabilityChangeBuilder of() { 225 return new SetVariantAvailabilityChangeBuilder(); 226 } 227 228 /** 229 * create builder for SetVariantAvailabilityChange instance 230 * @param template instance with prefilled values for the builder 231 * @return builder 232 */ 233 public static SetVariantAvailabilityChangeBuilder of(final SetVariantAvailabilityChange template) { 234 SetVariantAvailabilityChangeBuilder builder = new SetVariantAvailabilityChangeBuilder(); 235 builder.change = template.getChange(); 236 builder.previousValue = template.getPreviousValue(); 237 builder.nextValue = template.getNextValue(); 238 builder.catalogData = template.getCatalogData(); 239 builder.variant = template.getVariant(); 240 return builder; 241 } 242 243}