001 002package com.commercetools.api.models.cart; 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 * DiscountedLineItemPriceForQuantityBuilder 012 * <hr> 013 * Example to create an instance using the builder pattern 014 * <div class=code-example> 015 * <pre><code class='java'> 016 * DiscountedLineItemPriceForQuantity discountedLineItemPriceForQuantity = DiscountedLineItemPriceForQuantity.builder() 017 * .quantity(0.3) 018 * .discountedPrice(discountedPriceBuilder -> discountedPriceBuilder) 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 DiscountedLineItemPriceForQuantityBuilder implements Builder<DiscountedLineItemPriceForQuantity> { 025 026 private Long quantity; 027 028 private com.commercetools.api.models.cart.DiscountedLineItemPrice discountedPrice; 029 030 /** 031 * <p>Number of Line Items or Custom Line Items in the Cart.</p> 032 * @param quantity value to be set 033 * @return Builder 034 */ 035 036 public DiscountedLineItemPriceForQuantityBuilder quantity(final Long quantity) { 037 this.quantity = quantity; 038 return this; 039 } 040 041 /** 042 * <p>Discounted price of the Line Item or Custom Line Item.</p> 043 * @param builder function to build the discountedPrice value 044 * @return Builder 045 */ 046 047 public DiscountedLineItemPriceForQuantityBuilder discountedPrice( 048 Function<com.commercetools.api.models.cart.DiscountedLineItemPriceBuilder, com.commercetools.api.models.cart.DiscountedLineItemPriceBuilder> builder) { 049 this.discountedPrice = builder.apply(com.commercetools.api.models.cart.DiscountedLineItemPriceBuilder.of()) 050 .build(); 051 return this; 052 } 053 054 /** 055 * <p>Discounted price of the Line Item or Custom Line Item.</p> 056 * @param builder function to build the discountedPrice value 057 * @return Builder 058 */ 059 060 public DiscountedLineItemPriceForQuantityBuilder withDiscountedPrice( 061 Function<com.commercetools.api.models.cart.DiscountedLineItemPriceBuilder, com.commercetools.api.models.cart.DiscountedLineItemPrice> builder) { 062 this.discountedPrice = builder.apply(com.commercetools.api.models.cart.DiscountedLineItemPriceBuilder.of()); 063 return this; 064 } 065 066 /** 067 * <p>Discounted price of the Line Item or Custom Line Item.</p> 068 * @param discountedPrice value to be set 069 * @return Builder 070 */ 071 072 public DiscountedLineItemPriceForQuantityBuilder discountedPrice( 073 final com.commercetools.api.models.cart.DiscountedLineItemPrice discountedPrice) { 074 this.discountedPrice = discountedPrice; 075 return this; 076 } 077 078 /** 079 * <p>Number of Line Items or Custom Line Items in the Cart.</p> 080 * @return quantity 081 */ 082 083 public Long getQuantity() { 084 return this.quantity; 085 } 086 087 /** 088 * <p>Discounted price of the Line Item or Custom Line Item.</p> 089 * @return discountedPrice 090 */ 091 092 public com.commercetools.api.models.cart.DiscountedLineItemPrice getDiscountedPrice() { 093 return this.discountedPrice; 094 } 095 096 /** 097 * builds DiscountedLineItemPriceForQuantity with checking for non-null required values 098 * @return DiscountedLineItemPriceForQuantity 099 */ 100 public DiscountedLineItemPriceForQuantity build() { 101 Objects.requireNonNull(quantity, DiscountedLineItemPriceForQuantity.class + ": quantity is missing"); 102 Objects.requireNonNull(discountedPrice, 103 DiscountedLineItemPriceForQuantity.class + ": discountedPrice is missing"); 104 return new DiscountedLineItemPriceForQuantityImpl(quantity, discountedPrice); 105 } 106 107 /** 108 * builds DiscountedLineItemPriceForQuantity without checking for non-null required values 109 * @return DiscountedLineItemPriceForQuantity 110 */ 111 public DiscountedLineItemPriceForQuantity buildUnchecked() { 112 return new DiscountedLineItemPriceForQuantityImpl(quantity, discountedPrice); 113 } 114 115 /** 116 * factory method for an instance of DiscountedLineItemPriceForQuantityBuilder 117 * @return builder 118 */ 119 public static DiscountedLineItemPriceForQuantityBuilder of() { 120 return new DiscountedLineItemPriceForQuantityBuilder(); 121 } 122 123 /** 124 * create builder for DiscountedLineItemPriceForQuantity instance 125 * @param template instance with prefilled values for the builder 126 * @return builder 127 */ 128 public static DiscountedLineItemPriceForQuantityBuilder of(final DiscountedLineItemPriceForQuantity template) { 129 DiscountedLineItemPriceForQuantityBuilder builder = new DiscountedLineItemPriceForQuantityBuilder(); 130 builder.quantity = template.getQuantity(); 131 builder.discountedPrice = template.getDiscountedPrice(); 132 return builder; 133 } 134 135}