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 * ChangeLineItemQuantityChangeBuilder 012 * <hr> 013 * Example to create an instance using the builder pattern 014 * <div class=code-example> 015 * <pre><code class='java'> 016 * ChangeLineItemQuantityChange changeLineItemQuantityChange = ChangeLineItemQuantityChange.builder() 017 * .change("{change}") 018 * .previousValue(1) 019 * .nextValue(1) 020 * .lineItem(lineItemBuilder -> lineItemBuilder) 021 * .lineItemId("{lineItemId}") 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 ChangeLineItemQuantityChangeBuilder implements Builder<ChangeLineItemQuantityChange> { 028 029 private String change; 030 031 private Integer previousValue; 032 033 private Integer nextValue; 034 035 private com.commercetools.history.models.common.LocalizedString lineItem; 036 037 private String lineItemId; 038 039 /** 040 * set the value to the change 041 * @param change value to be set 042 * @return Builder 043 */ 044 045 public ChangeLineItemQuantityChangeBuilder change(final String change) { 046 this.change = change; 047 return this; 048 } 049 050 /** 051 * <p>Value before the change.</p> 052 * @param previousValue value to be set 053 * @return Builder 054 */ 055 056 public ChangeLineItemQuantityChangeBuilder previousValue(final Integer previousValue) { 057 this.previousValue = previousValue; 058 return this; 059 } 060 061 /** 062 * <p>Value after the change</p> 063 * @param nextValue value to be set 064 * @return Builder 065 */ 066 067 public ChangeLineItemQuantityChangeBuilder nextValue(final Integer nextValue) { 068 this.nextValue = nextValue; 069 return this; 070 } 071 072 /** 073 * <p>Name of the Product the updated Line Item is based on.</p> 074 * @param builder function to build the lineItem value 075 * @return Builder 076 */ 077 078 public ChangeLineItemQuantityChangeBuilder lineItem( 079 Function<com.commercetools.history.models.common.LocalizedStringBuilder, com.commercetools.history.models.common.LocalizedStringBuilder> builder) { 080 this.lineItem = builder.apply(com.commercetools.history.models.common.LocalizedStringBuilder.of()).build(); 081 return this; 082 } 083 084 /** 085 * <p>Name of the Product the updated Line Item is based on.</p> 086 * @param builder function to build the lineItem value 087 * @return Builder 088 */ 089 090 public ChangeLineItemQuantityChangeBuilder withLineItem( 091 Function<com.commercetools.history.models.common.LocalizedStringBuilder, com.commercetools.history.models.common.LocalizedString> builder) { 092 this.lineItem = builder.apply(com.commercetools.history.models.common.LocalizedStringBuilder.of()); 093 return this; 094 } 095 096 /** 097 * <p>Name of the Product the updated Line Item is based on.</p> 098 * @param lineItem value to be set 099 * @return Builder 100 */ 101 102 public ChangeLineItemQuantityChangeBuilder lineItem( 103 final com.commercetools.history.models.common.LocalizedString lineItem) { 104 this.lineItem = lineItem; 105 return this; 106 } 107 108 /** 109 * <p><code>id</code> of the updated LineItem.</p> 110 * @param lineItemId value to be set 111 * @return Builder 112 */ 113 114 public ChangeLineItemQuantityChangeBuilder lineItemId(final String lineItemId) { 115 this.lineItemId = lineItemId; 116 return this; 117 } 118 119 /** 120 * value of change} 121 * @return change 122 */ 123 124 public String getChange() { 125 return this.change; 126 } 127 128 /** 129 * <p>Value before the change.</p> 130 * @return previousValue 131 */ 132 133 public Integer getPreviousValue() { 134 return this.previousValue; 135 } 136 137 /** 138 * <p>Value after the change</p> 139 * @return nextValue 140 */ 141 142 public Integer getNextValue() { 143 return this.nextValue; 144 } 145 146 /** 147 * <p>Name of the Product the updated Line Item is based on.</p> 148 * @return lineItem 149 */ 150 151 public com.commercetools.history.models.common.LocalizedString getLineItem() { 152 return this.lineItem; 153 } 154 155 /** 156 * <p><code>id</code> of the updated LineItem.</p> 157 * @return lineItemId 158 */ 159 160 public String getLineItemId() { 161 return this.lineItemId; 162 } 163 164 /** 165 * builds ChangeLineItemQuantityChange with checking for non-null required values 166 * @return ChangeLineItemQuantityChange 167 */ 168 public ChangeLineItemQuantityChange build() { 169 Objects.requireNonNull(change, ChangeLineItemQuantityChange.class + ": change is missing"); 170 Objects.requireNonNull(previousValue, ChangeLineItemQuantityChange.class + ": previousValue is missing"); 171 Objects.requireNonNull(nextValue, ChangeLineItemQuantityChange.class + ": nextValue is missing"); 172 Objects.requireNonNull(lineItem, ChangeLineItemQuantityChange.class + ": lineItem is missing"); 173 Objects.requireNonNull(lineItemId, ChangeLineItemQuantityChange.class + ": lineItemId is missing"); 174 return new ChangeLineItemQuantityChangeImpl(change, previousValue, nextValue, lineItem, lineItemId); 175 } 176 177 /** 178 * builds ChangeLineItemQuantityChange without checking for non-null required values 179 * @return ChangeLineItemQuantityChange 180 */ 181 public ChangeLineItemQuantityChange buildUnchecked() { 182 return new ChangeLineItemQuantityChangeImpl(change, previousValue, nextValue, lineItem, lineItemId); 183 } 184 185 /** 186 * factory method for an instance of ChangeLineItemQuantityChangeBuilder 187 * @return builder 188 */ 189 public static ChangeLineItemQuantityChangeBuilder of() { 190 return new ChangeLineItemQuantityChangeBuilder(); 191 } 192 193 /** 194 * create builder for ChangeLineItemQuantityChange instance 195 * @param template instance with prefilled values for the builder 196 * @return builder 197 */ 198 public static ChangeLineItemQuantityChangeBuilder of(final ChangeLineItemQuantityChange template) { 199 ChangeLineItemQuantityChangeBuilder builder = new ChangeLineItemQuantityChangeBuilder(); 200 builder.change = template.getChange(); 201 builder.previousValue = template.getPreviousValue(); 202 builder.nextValue = template.getNextValue(); 203 builder.lineItem = template.getLineItem(); 204 builder.lineItemId = template.getLineItemId(); 205 return builder; 206 } 207 208}