001 002package com.commercetools.history.models.label; 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 * QuoteLabelBuilder 012 * <hr> 013 * Example to create an instance using the builder pattern 014 * <div class=code-example> 015 * <pre><code class='java'> 016 * QuoteLabel quoteLabel = QuoteLabel.builder() 017 * .key("{key}") 018 * .customer(customerBuilder -> customerBuilder) 019 * .stagedQuote(stagedQuoteBuilder -> stagedQuoteBuilder) 020 * .quoteRequest(quoteRequestBuilder -> quoteRequestBuilder) 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 QuoteLabelBuilder implements Builder<QuoteLabel> { 027 028 private String key; 029 030 private com.commercetools.history.models.common.Reference customer; 031 032 private com.commercetools.history.models.common.Reference stagedQuote; 033 034 private com.commercetools.history.models.common.Reference quoteRequest; 035 036 /** 037 * <p>User-defined unique identifier of the Quote.</p> 038 * @param key value to be set 039 * @return Builder 040 */ 041 042 public QuoteLabelBuilder key(final String key) { 043 this.key = key; 044 return this; 045 } 046 047 /** 048 * <p>The Buyer who requested the Quote.</p> 049 * @param builder function to build the customer value 050 * @return Builder 051 */ 052 053 public QuoteLabelBuilder customer( 054 Function<com.commercetools.history.models.common.ReferenceBuilder, com.commercetools.history.models.common.ReferenceBuilder> builder) { 055 this.customer = builder.apply(com.commercetools.history.models.common.ReferenceBuilder.of()).build(); 056 return this; 057 } 058 059 /** 060 * <p>The Buyer who requested the Quote.</p> 061 * @param builder function to build the customer value 062 * @return Builder 063 */ 064 065 public QuoteLabelBuilder withCustomer( 066 Function<com.commercetools.history.models.common.ReferenceBuilder, com.commercetools.history.models.common.Reference> builder) { 067 this.customer = builder.apply(com.commercetools.history.models.common.ReferenceBuilder.of()); 068 return this; 069 } 070 071 /** 072 * <p>The Buyer who requested the Quote.</p> 073 * @param customer value to be set 074 * @return Builder 075 */ 076 077 public QuoteLabelBuilder customer(final com.commercetools.history.models.common.Reference customer) { 078 this.customer = customer; 079 return this; 080 } 081 082 /** 083 * <p>Staged Quote related to the Quote.</p> 084 * @param builder function to build the stagedQuote value 085 * @return Builder 086 */ 087 088 public QuoteLabelBuilder stagedQuote( 089 Function<com.commercetools.history.models.common.ReferenceBuilder, com.commercetools.history.models.common.ReferenceBuilder> builder) { 090 this.stagedQuote = builder.apply(com.commercetools.history.models.common.ReferenceBuilder.of()).build(); 091 return this; 092 } 093 094 /** 095 * <p>Staged Quote related to the Quote.</p> 096 * @param builder function to build the stagedQuote value 097 * @return Builder 098 */ 099 100 public QuoteLabelBuilder withStagedQuote( 101 Function<com.commercetools.history.models.common.ReferenceBuilder, com.commercetools.history.models.common.Reference> builder) { 102 this.stagedQuote = builder.apply(com.commercetools.history.models.common.ReferenceBuilder.of()); 103 return this; 104 } 105 106 /** 107 * <p>Staged Quote related to the Quote.</p> 108 * @param stagedQuote value to be set 109 * @return Builder 110 */ 111 112 public QuoteLabelBuilder stagedQuote(final com.commercetools.history.models.common.Reference stagedQuote) { 113 this.stagedQuote = stagedQuote; 114 return this; 115 } 116 117 /** 118 * <p>Quote Request related to the Quote.</p> 119 * @param builder function to build the quoteRequest value 120 * @return Builder 121 */ 122 123 public QuoteLabelBuilder quoteRequest( 124 Function<com.commercetools.history.models.common.ReferenceBuilder, com.commercetools.history.models.common.ReferenceBuilder> builder) { 125 this.quoteRequest = builder.apply(com.commercetools.history.models.common.ReferenceBuilder.of()).build(); 126 return this; 127 } 128 129 /** 130 * <p>Quote Request related to the Quote.</p> 131 * @param builder function to build the quoteRequest value 132 * @return Builder 133 */ 134 135 public QuoteLabelBuilder withQuoteRequest( 136 Function<com.commercetools.history.models.common.ReferenceBuilder, com.commercetools.history.models.common.Reference> builder) { 137 this.quoteRequest = builder.apply(com.commercetools.history.models.common.ReferenceBuilder.of()); 138 return this; 139 } 140 141 /** 142 * <p>Quote Request related to the Quote.</p> 143 * @param quoteRequest value to be set 144 * @return Builder 145 */ 146 147 public QuoteLabelBuilder quoteRequest(final com.commercetools.history.models.common.Reference quoteRequest) { 148 this.quoteRequest = quoteRequest; 149 return this; 150 } 151 152 /** 153 * <p>User-defined unique identifier of the Quote.</p> 154 * @return key 155 */ 156 157 public String getKey() { 158 return this.key; 159 } 160 161 /** 162 * <p>The Buyer who requested the Quote.</p> 163 * @return customer 164 */ 165 166 public com.commercetools.history.models.common.Reference getCustomer() { 167 return this.customer; 168 } 169 170 /** 171 * <p>Staged Quote related to the Quote.</p> 172 * @return stagedQuote 173 */ 174 175 public com.commercetools.history.models.common.Reference getStagedQuote() { 176 return this.stagedQuote; 177 } 178 179 /** 180 * <p>Quote Request related to the Quote.</p> 181 * @return quoteRequest 182 */ 183 184 public com.commercetools.history.models.common.Reference getQuoteRequest() { 185 return this.quoteRequest; 186 } 187 188 /** 189 * builds QuoteLabel with checking for non-null required values 190 * @return QuoteLabel 191 */ 192 public QuoteLabel build() { 193 Objects.requireNonNull(key, QuoteLabel.class + ": key is missing"); 194 Objects.requireNonNull(customer, QuoteLabel.class + ": customer is missing"); 195 Objects.requireNonNull(stagedQuote, QuoteLabel.class + ": stagedQuote is missing"); 196 Objects.requireNonNull(quoteRequest, QuoteLabel.class + ": quoteRequest is missing"); 197 return new QuoteLabelImpl(key, customer, stagedQuote, quoteRequest); 198 } 199 200 /** 201 * builds QuoteLabel without checking for non-null required values 202 * @return QuoteLabel 203 */ 204 public QuoteLabel buildUnchecked() { 205 return new QuoteLabelImpl(key, customer, stagedQuote, quoteRequest); 206 } 207 208 /** 209 * factory method for an instance of QuoteLabelBuilder 210 * @return builder 211 */ 212 public static QuoteLabelBuilder of() { 213 return new QuoteLabelBuilder(); 214 } 215 216 /** 217 * create builder for QuoteLabel instance 218 * @param template instance with prefilled values for the builder 219 * @return builder 220 */ 221 public static QuoteLabelBuilder of(final QuoteLabel template) { 222 QuoteLabelBuilder builder = new QuoteLabelBuilder(); 223 builder.key = template.getKey(); 224 builder.customer = template.getCustomer(); 225 builder.stagedQuote = template.getStagedQuote(); 226 builder.quoteRequest = template.getQuoteRequest(); 227 return builder; 228 } 229 230}