001 002package com.commercetools.history.models.change_value; 003 004import java.util.*; 005 006import io.vrap.rmf.base.client.Builder; 007import io.vrap.rmf.base.client.utils.Generated; 008 009/** 010 * ChangeTargetMultiBuyCustomLineItemsChangeValueBuilder 011 * <hr> 012 * Example to create an instance using the builder pattern 013 * <div class=code-example> 014 * <pre><code class='java'> 015 * ChangeTargetMultiBuyCustomLineItemsChangeValue changeTargetMultiBuyCustomLineItemsChangeValue = ChangeTargetMultiBuyCustomLineItemsChangeValue.builder() 016 * .predicate("{predicate}") 017 * .triggerQuantity(1) 018 * .discountedQuantity(1) 019 * .maxOccurrence(1) 020 * .selectionMode(SelectionMode.CHEAPEST) 021 * .build() 022 * </code></pre> 023 * </div> 024 */ 025@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 026public class ChangeTargetMultiBuyCustomLineItemsChangeValueBuilder 027 implements Builder<ChangeTargetMultiBuyCustomLineItemsChangeValue> { 028 029 private String predicate; 030 031 private Integer triggerQuantity; 032 033 private Integer discountedQuantity; 034 035 private Integer maxOccurrence; 036 037 private com.commercetools.history.models.common.SelectionMode selectionMode; 038 039 /** 040 * <p>Valid CustomLineItem target predicate.</p> 041 * @param predicate value to be set 042 * @return Builder 043 */ 044 045 public ChangeTargetMultiBuyCustomLineItemsChangeValueBuilder predicate(final String predicate) { 046 this.predicate = predicate; 047 return this; 048 } 049 050 /** 051 * <p>Quantity of Custom Line Items that triggered the application of the discount.</p> 052 * @param triggerQuantity value to be set 053 * @return Builder 054 */ 055 056 public ChangeTargetMultiBuyCustomLineItemsChangeValueBuilder triggerQuantity(final Integer triggerQuantity) { 057 this.triggerQuantity = triggerQuantity; 058 return this; 059 } 060 061 /** 062 * <p>Quantity of Custom Line Items discounted per application of this discount.</p> 063 * @param discountedQuantity value to be set 064 * @return Builder 065 */ 066 067 public ChangeTargetMultiBuyCustomLineItemsChangeValueBuilder discountedQuantity(final Integer discountedQuantity) { 068 this.discountedQuantity = discountedQuantity; 069 return this; 070 } 071 072 /** 073 * <p>Maximum number of times the discount is applicable.</p> 074 * @param maxOccurrence value to be set 075 * @return Builder 076 */ 077 078 public ChangeTargetMultiBuyCustomLineItemsChangeValueBuilder maxOccurrence(final Integer maxOccurrence) { 079 this.maxOccurrence = maxOccurrence; 080 return this; 081 } 082 083 /** 084 * <p>SelectionMode based on which particular Custom Line Items were discounted.</p> 085 * @param selectionMode value to be set 086 * @return Builder 087 */ 088 089 public ChangeTargetMultiBuyCustomLineItemsChangeValueBuilder selectionMode( 090 final com.commercetools.history.models.common.SelectionMode selectionMode) { 091 this.selectionMode = selectionMode; 092 return this; 093 } 094 095 /** 096 * <p>Valid CustomLineItem target predicate.</p> 097 * @return predicate 098 */ 099 100 public String getPredicate() { 101 return this.predicate; 102 } 103 104 /** 105 * <p>Quantity of Custom Line Items that triggered the application of the discount.</p> 106 * @return triggerQuantity 107 */ 108 109 public Integer getTriggerQuantity() { 110 return this.triggerQuantity; 111 } 112 113 /** 114 * <p>Quantity of Custom Line Items discounted per application of this discount.</p> 115 * @return discountedQuantity 116 */ 117 118 public Integer getDiscountedQuantity() { 119 return this.discountedQuantity; 120 } 121 122 /** 123 * <p>Maximum number of times the discount is applicable.</p> 124 * @return maxOccurrence 125 */ 126 127 public Integer getMaxOccurrence() { 128 return this.maxOccurrence; 129 } 130 131 /** 132 * <p>SelectionMode based on which particular Custom Line Items were discounted.</p> 133 * @return selectionMode 134 */ 135 136 public com.commercetools.history.models.common.SelectionMode getSelectionMode() { 137 return this.selectionMode; 138 } 139 140 /** 141 * builds ChangeTargetMultiBuyCustomLineItemsChangeValue with checking for non-null required values 142 * @return ChangeTargetMultiBuyCustomLineItemsChangeValue 143 */ 144 public ChangeTargetMultiBuyCustomLineItemsChangeValue build() { 145 Objects.requireNonNull(predicate, 146 ChangeTargetMultiBuyCustomLineItemsChangeValue.class + ": predicate is missing"); 147 Objects.requireNonNull(triggerQuantity, 148 ChangeTargetMultiBuyCustomLineItemsChangeValue.class + ": triggerQuantity is missing"); 149 Objects.requireNonNull(discountedQuantity, 150 ChangeTargetMultiBuyCustomLineItemsChangeValue.class + ": discountedQuantity is missing"); 151 Objects.requireNonNull(maxOccurrence, 152 ChangeTargetMultiBuyCustomLineItemsChangeValue.class + ": maxOccurrence is missing"); 153 Objects.requireNonNull(selectionMode, 154 ChangeTargetMultiBuyCustomLineItemsChangeValue.class + ": selectionMode is missing"); 155 return new ChangeTargetMultiBuyCustomLineItemsChangeValueImpl(predicate, triggerQuantity, discountedQuantity, 156 maxOccurrence, selectionMode); 157 } 158 159 /** 160 * builds ChangeTargetMultiBuyCustomLineItemsChangeValue without checking for non-null required values 161 * @return ChangeTargetMultiBuyCustomLineItemsChangeValue 162 */ 163 public ChangeTargetMultiBuyCustomLineItemsChangeValue buildUnchecked() { 164 return new ChangeTargetMultiBuyCustomLineItemsChangeValueImpl(predicate, triggerQuantity, discountedQuantity, 165 maxOccurrence, selectionMode); 166 } 167 168 /** 169 * factory method for an instance of ChangeTargetMultiBuyCustomLineItemsChangeValueBuilder 170 * @return builder 171 */ 172 public static ChangeTargetMultiBuyCustomLineItemsChangeValueBuilder of() { 173 return new ChangeTargetMultiBuyCustomLineItemsChangeValueBuilder(); 174 } 175 176 /** 177 * create builder for ChangeTargetMultiBuyCustomLineItemsChangeValue instance 178 * @param template instance with prefilled values for the builder 179 * @return builder 180 */ 181 public static ChangeTargetMultiBuyCustomLineItemsChangeValueBuilder of( 182 final ChangeTargetMultiBuyCustomLineItemsChangeValue template) { 183 ChangeTargetMultiBuyCustomLineItemsChangeValueBuilder builder = new ChangeTargetMultiBuyCustomLineItemsChangeValueBuilder(); 184 builder.predicate = template.getPredicate(); 185 builder.triggerQuantity = template.getTriggerQuantity(); 186 builder.discountedQuantity = template.getDiscountedQuantity(); 187 builder.maxOccurrence = template.getMaxOccurrence(); 188 builder.selectionMode = template.getSelectionMode(); 189 return builder; 190 } 191 192}