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 * ChangeTargetMultiBuyLineItemsChangeValueBuilder 011 * <hr> 012 * Example to create an instance using the builder pattern 013 * <div class=code-example> 014 * <pre><code class='java'> 015 * ChangeTargetMultiBuyLineItemsChangeValue changeTargetMultiBuyLineItemsChangeValue = ChangeTargetMultiBuyLineItemsChangeValue.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 ChangeTargetMultiBuyLineItemsChangeValueBuilder 027 implements Builder<ChangeTargetMultiBuyLineItemsChangeValue> { 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 LineItem target predicate.</p> 041 * @param predicate value to be set 042 * @return Builder 043 */ 044 045 public ChangeTargetMultiBuyLineItemsChangeValueBuilder predicate(final String predicate) { 046 this.predicate = predicate; 047 return this; 048 } 049 050 /** 051 * <p>Quantity of Line Items that triggered the application of the discount.</p> 052 * @param triggerQuantity value to be set 053 * @return Builder 054 */ 055 056 public ChangeTargetMultiBuyLineItemsChangeValueBuilder triggerQuantity(final Integer triggerQuantity) { 057 this.triggerQuantity = triggerQuantity; 058 return this; 059 } 060 061 /** 062 * <p>Quantity of Line Items discounted per application of this discount.</p> 063 * @param discountedQuantity value to be set 064 * @return Builder 065 */ 066 067 public ChangeTargetMultiBuyLineItemsChangeValueBuilder 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 ChangeTargetMultiBuyLineItemsChangeValueBuilder maxOccurrence(final Integer maxOccurrence) { 079 this.maxOccurrence = maxOccurrence; 080 return this; 081 } 082 083 /** 084 * <p>SelectionMode based on which particular Line Items were discounted.</p> 085 * @param selectionMode value to be set 086 * @return Builder 087 */ 088 089 public ChangeTargetMultiBuyLineItemsChangeValueBuilder selectionMode( 090 final com.commercetools.history.models.common.SelectionMode selectionMode) { 091 this.selectionMode = selectionMode; 092 return this; 093 } 094 095 /** 096 * <p>Valid LineItem target predicate.</p> 097 * @return predicate 098 */ 099 100 public String getPredicate() { 101 return this.predicate; 102 } 103 104 /** 105 * <p>Quantity of 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 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 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 ChangeTargetMultiBuyLineItemsChangeValue with checking for non-null required values 142 * @return ChangeTargetMultiBuyLineItemsChangeValue 143 */ 144 public ChangeTargetMultiBuyLineItemsChangeValue build() { 145 Objects.requireNonNull(predicate, ChangeTargetMultiBuyLineItemsChangeValue.class + ": predicate is missing"); 146 Objects.requireNonNull(triggerQuantity, 147 ChangeTargetMultiBuyLineItemsChangeValue.class + ": triggerQuantity is missing"); 148 Objects.requireNonNull(discountedQuantity, 149 ChangeTargetMultiBuyLineItemsChangeValue.class + ": discountedQuantity is missing"); 150 Objects.requireNonNull(maxOccurrence, 151 ChangeTargetMultiBuyLineItemsChangeValue.class + ": maxOccurrence is missing"); 152 Objects.requireNonNull(selectionMode, 153 ChangeTargetMultiBuyLineItemsChangeValue.class + ": selectionMode is missing"); 154 return new ChangeTargetMultiBuyLineItemsChangeValueImpl(predicate, triggerQuantity, discountedQuantity, 155 maxOccurrence, selectionMode); 156 } 157 158 /** 159 * builds ChangeTargetMultiBuyLineItemsChangeValue without checking for non-null required values 160 * @return ChangeTargetMultiBuyLineItemsChangeValue 161 */ 162 public ChangeTargetMultiBuyLineItemsChangeValue buildUnchecked() { 163 return new ChangeTargetMultiBuyLineItemsChangeValueImpl(predicate, triggerQuantity, discountedQuantity, 164 maxOccurrence, selectionMode); 165 } 166 167 /** 168 * factory method for an instance of ChangeTargetMultiBuyLineItemsChangeValueBuilder 169 * @return builder 170 */ 171 public static ChangeTargetMultiBuyLineItemsChangeValueBuilder of() { 172 return new ChangeTargetMultiBuyLineItemsChangeValueBuilder(); 173 } 174 175 /** 176 * create builder for ChangeTargetMultiBuyLineItemsChangeValue instance 177 * @param template instance with prefilled values for the builder 178 * @return builder 179 */ 180 public static ChangeTargetMultiBuyLineItemsChangeValueBuilder of( 181 final ChangeTargetMultiBuyLineItemsChangeValue template) { 182 ChangeTargetMultiBuyLineItemsChangeValueBuilder builder = new ChangeTargetMultiBuyLineItemsChangeValueBuilder(); 183 builder.predicate = template.getPredicate(); 184 builder.triggerQuantity = template.getTriggerQuantity(); 185 builder.discountedQuantity = template.getDiscountedQuantity(); 186 builder.maxOccurrence = template.getMaxOccurrence(); 187 builder.selectionMode = template.getSelectionMode(); 188 return builder; 189 } 190 191}