001 002package com.commercetools.api.models.order_edit; 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 * OrderEditPreviewSuccessBuilder 012 * <hr> 013 * Example to create an instance using the builder pattern 014 * <div class=code-example> 015 * <pre><code class='java'> 016 * OrderEditPreviewSuccess orderEditPreviewSuccess = OrderEditPreviewSuccess.builder() 017 * .preview(previewBuilder -> previewBuilder) 018 * .plusMessagePayloads(messagePayloadsBuilder -> messagePayloadsBuilder) 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 OrderEditPreviewSuccessBuilder implements Builder<OrderEditPreviewSuccess> { 025 026 private com.commercetools.api.models.order_edit.StagedOrder preview; 027 028 private java.util.List<com.commercetools.api.models.message.MessagePayload> messagePayloads; 029 030 /** 031 * set the value to the preview using the builder function 032 * @param builder function to build the preview value 033 * @return Builder 034 */ 035 036 public OrderEditPreviewSuccessBuilder preview( 037 Function<com.commercetools.api.models.order_edit.StagedOrderBuilder, com.commercetools.api.models.order_edit.StagedOrderBuilder> builder) { 038 this.preview = builder.apply(com.commercetools.api.models.order_edit.StagedOrderBuilder.of()).build(); 039 return this; 040 } 041 042 /** 043 * set the value to the preview using the builder function 044 * @param builder function to build the preview value 045 * @return Builder 046 */ 047 048 public OrderEditPreviewSuccessBuilder withPreview( 049 Function<com.commercetools.api.models.order_edit.StagedOrderBuilder, com.commercetools.api.models.order_edit.StagedOrder> builder) { 050 this.preview = builder.apply(com.commercetools.api.models.order_edit.StagedOrderBuilder.of()); 051 return this; 052 } 053 054 /** 055 * set the value to the preview 056 * @param preview value to be set 057 * @return Builder 058 */ 059 060 public OrderEditPreviewSuccessBuilder preview(final com.commercetools.api.models.order_edit.StagedOrder preview) { 061 this.preview = preview; 062 return this; 063 } 064 065 /** 066 * set values to the messagePayloads 067 * @param messagePayloads value to be set 068 * @return Builder 069 */ 070 071 public OrderEditPreviewSuccessBuilder messagePayloads( 072 final com.commercetools.api.models.message.MessagePayload... messagePayloads) { 073 this.messagePayloads = new ArrayList<>(Arrays.asList(messagePayloads)); 074 return this; 075 } 076 077 /** 078 * set value to the messagePayloads 079 * @param messagePayloads value to be set 080 * @return Builder 081 */ 082 083 public OrderEditPreviewSuccessBuilder messagePayloads( 084 final java.util.List<com.commercetools.api.models.message.MessagePayload> messagePayloads) { 085 this.messagePayloads = messagePayloads; 086 return this; 087 } 088 089 /** 090 * add values to the messagePayloads 091 * @param messagePayloads value to be set 092 * @return Builder 093 */ 094 095 public OrderEditPreviewSuccessBuilder plusMessagePayloads( 096 final com.commercetools.api.models.message.MessagePayload... messagePayloads) { 097 if (this.messagePayloads == null) { 098 this.messagePayloads = new ArrayList<>(); 099 } 100 this.messagePayloads.addAll(Arrays.asList(messagePayloads)); 101 return this; 102 } 103 104 /** 105 * add a value to the messagePayloads using the builder function 106 * @param builder function to build the messagePayloads value 107 * @return Builder 108 */ 109 110 public OrderEditPreviewSuccessBuilder plusMessagePayloads( 111 Function<com.commercetools.api.models.message.MessagePayloadBuilder, Builder<? extends com.commercetools.api.models.message.MessagePayload>> builder) { 112 if (this.messagePayloads == null) { 113 this.messagePayloads = new ArrayList<>(); 114 } 115 this.messagePayloads 116 .add(builder.apply(com.commercetools.api.models.message.MessagePayloadBuilder.of()).build()); 117 return this; 118 } 119 120 /** 121 * set the value to the messagePayloads using the builder function 122 * @param builder function to build the messagePayloads value 123 * @return Builder 124 */ 125 126 public OrderEditPreviewSuccessBuilder withMessagePayloads( 127 Function<com.commercetools.api.models.message.MessagePayloadBuilder, Builder<? extends com.commercetools.api.models.message.MessagePayload>> builder) { 128 this.messagePayloads = new ArrayList<>(); 129 this.messagePayloads 130 .add(builder.apply(com.commercetools.api.models.message.MessagePayloadBuilder.of()).build()); 131 return this; 132 } 133 134 /** 135 * value of preview} 136 * @return preview 137 */ 138 139 public com.commercetools.api.models.order_edit.StagedOrder getPreview() { 140 return this.preview; 141 } 142 143 /** 144 * value of messagePayloads} 145 * @return messagePayloads 146 */ 147 148 public java.util.List<com.commercetools.api.models.message.MessagePayload> getMessagePayloads() { 149 return this.messagePayloads; 150 } 151 152 /** 153 * builds OrderEditPreviewSuccess with checking for non-null required values 154 * @return OrderEditPreviewSuccess 155 */ 156 public OrderEditPreviewSuccess build() { 157 Objects.requireNonNull(preview, OrderEditPreviewSuccess.class + ": preview is missing"); 158 Objects.requireNonNull(messagePayloads, OrderEditPreviewSuccess.class + ": messagePayloads is missing"); 159 return new OrderEditPreviewSuccessImpl(preview, messagePayloads); 160 } 161 162 /** 163 * builds OrderEditPreviewSuccess without checking for non-null required values 164 * @return OrderEditPreviewSuccess 165 */ 166 public OrderEditPreviewSuccess buildUnchecked() { 167 return new OrderEditPreviewSuccessImpl(preview, messagePayloads); 168 } 169 170 /** 171 * factory method for an instance of OrderEditPreviewSuccessBuilder 172 * @return builder 173 */ 174 public static OrderEditPreviewSuccessBuilder of() { 175 return new OrderEditPreviewSuccessBuilder(); 176 } 177 178 /** 179 * create builder for OrderEditPreviewSuccess instance 180 * @param template instance with prefilled values for the builder 181 * @return builder 182 */ 183 public static OrderEditPreviewSuccessBuilder of(final OrderEditPreviewSuccess template) { 184 OrderEditPreviewSuccessBuilder builder = new OrderEditPreviewSuccessBuilder(); 185 builder.preview = template.getPreview(); 186 builder.messagePayloads = template.getMessagePayloads(); 187 return builder; 188 } 189 190}