001 002package com.commercetools.history.models.common; 003 004import java.util.*; 005 006import io.vrap.rmf.base.client.Builder; 007import io.vrap.rmf.base.client.utils.Generated; 008 009/** 010 * ProductVariantChannelAvailabilityBuilder 011 * <hr> 012 * Example to create an instance using the builder pattern 013 * <div class=code-example> 014 * <pre><code class='java'> 015 * ProductVariantChannelAvailability productVariantChannelAvailability = ProductVariantChannelAvailability.builder() 016 * .isOnStock(true) 017 * .restockableInDays(1) 018 * .availableQuantity(1) 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 ProductVariantChannelAvailabilityBuilder implements Builder<ProductVariantChannelAvailability> { 025 026 private Boolean isOnStock; 027 028 private Integer restockableInDays; 029 030 private Integer availableQuantity; 031 032 /** 033 * set the value to the isOnStock 034 * @param isOnStock value to be set 035 * @return Builder 036 */ 037 038 public ProductVariantChannelAvailabilityBuilder isOnStock(final Boolean isOnStock) { 039 this.isOnStock = isOnStock; 040 return this; 041 } 042 043 /** 044 * set the value to the restockableInDays 045 * @param restockableInDays value to be set 046 * @return Builder 047 */ 048 049 public ProductVariantChannelAvailabilityBuilder restockableInDays(final Integer restockableInDays) { 050 this.restockableInDays = restockableInDays; 051 return this; 052 } 053 054 /** 055 * set the value to the availableQuantity 056 * @param availableQuantity value to be set 057 * @return Builder 058 */ 059 060 public ProductVariantChannelAvailabilityBuilder availableQuantity(final Integer availableQuantity) { 061 this.availableQuantity = availableQuantity; 062 return this; 063 } 064 065 /** 066 * value of isOnStock} 067 * @return isOnStock 068 */ 069 070 public Boolean getIsOnStock() { 071 return this.isOnStock; 072 } 073 074 /** 075 * value of restockableInDays} 076 * @return restockableInDays 077 */ 078 079 public Integer getRestockableInDays() { 080 return this.restockableInDays; 081 } 082 083 /** 084 * value of availableQuantity} 085 * @return availableQuantity 086 */ 087 088 public Integer getAvailableQuantity() { 089 return this.availableQuantity; 090 } 091 092 /** 093 * builds ProductVariantChannelAvailability with checking for non-null required values 094 * @return ProductVariantChannelAvailability 095 */ 096 public ProductVariantChannelAvailability build() { 097 Objects.requireNonNull(isOnStock, ProductVariantChannelAvailability.class + ": isOnStock is missing"); 098 Objects.requireNonNull(restockableInDays, 099 ProductVariantChannelAvailability.class + ": restockableInDays is missing"); 100 Objects.requireNonNull(availableQuantity, 101 ProductVariantChannelAvailability.class + ": availableQuantity is missing"); 102 return new ProductVariantChannelAvailabilityImpl(isOnStock, restockableInDays, availableQuantity); 103 } 104 105 /** 106 * builds ProductVariantChannelAvailability without checking for non-null required values 107 * @return ProductVariantChannelAvailability 108 */ 109 public ProductVariantChannelAvailability buildUnchecked() { 110 return new ProductVariantChannelAvailabilityImpl(isOnStock, restockableInDays, availableQuantity); 111 } 112 113 /** 114 * factory method for an instance of ProductVariantChannelAvailabilityBuilder 115 * @return builder 116 */ 117 public static ProductVariantChannelAvailabilityBuilder of() { 118 return new ProductVariantChannelAvailabilityBuilder(); 119 } 120 121 /** 122 * create builder for ProductVariantChannelAvailability instance 123 * @param template instance with prefilled values for the builder 124 * @return builder 125 */ 126 public static ProductVariantChannelAvailabilityBuilder of(final ProductVariantChannelAvailability template) { 127 ProductVariantChannelAvailabilityBuilder builder = new ProductVariantChannelAvailabilityBuilder(); 128 builder.isOnStock = template.getIsOnStock(); 129 builder.restockableInDays = template.getRestockableInDays(); 130 builder.availableQuantity = template.getAvailableQuantity(); 131 return builder; 132 } 133 134}