001 002package com.commercetools.api.models.order_edit; 003 004import java.util.*; 005import java.util.function.Function; 006 007import javax.annotation.Nullable; 008 009import io.vrap.rmf.base.client.Builder; 010import io.vrap.rmf.base.client.utils.Generated; 011 012/** 013 * OrderEditReferenceBuilder 014 * <hr> 015 * Example to create an instance using the builder pattern 016 * <div class=code-example> 017 * <pre><code class='java'> 018 * OrderEditReference orderEditReference = OrderEditReference.builder() 019 * .id("{id}") 020 * .build() 021 * </code></pre> 022 * </div> 023 */ 024@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 025public class OrderEditReferenceBuilder implements Builder<OrderEditReference> { 026 027 private String id; 028 029 @Nullable 030 private com.commercetools.api.models.order_edit.OrderEdit obj; 031 032 /** 033 * <p>Unique identifier of the referenced OrderEdit.</p> 034 * @param id value to be set 035 * @return Builder 036 */ 037 038 public OrderEditReferenceBuilder id(final String id) { 039 this.id = id; 040 return this; 041 } 042 043 /** 044 * <p>Contains the representation of the expanded Order Edit. Only present in responses to requests with Reference Expansion for Order Edits.</p> 045 * @param builder function to build the obj value 046 * @return Builder 047 */ 048 049 public OrderEditReferenceBuilder obj( 050 Function<com.commercetools.api.models.order_edit.OrderEditBuilder, com.commercetools.api.models.order_edit.OrderEditBuilder> builder) { 051 this.obj = builder.apply(com.commercetools.api.models.order_edit.OrderEditBuilder.of()).build(); 052 return this; 053 } 054 055 /** 056 * <p>Contains the representation of the expanded Order Edit. Only present in responses to requests with Reference Expansion for Order Edits.</p> 057 * @param builder function to build the obj value 058 * @return Builder 059 */ 060 061 public OrderEditReferenceBuilder withObj( 062 Function<com.commercetools.api.models.order_edit.OrderEditBuilder, com.commercetools.api.models.order_edit.OrderEdit> builder) { 063 this.obj = builder.apply(com.commercetools.api.models.order_edit.OrderEditBuilder.of()); 064 return this; 065 } 066 067 /** 068 * <p>Contains the representation of the expanded Order Edit. Only present in responses to requests with Reference Expansion for Order Edits.</p> 069 * @param obj value to be set 070 * @return Builder 071 */ 072 073 public OrderEditReferenceBuilder obj(@Nullable final com.commercetools.api.models.order_edit.OrderEdit obj) { 074 this.obj = obj; 075 return this; 076 } 077 078 /** 079 * <p>Unique identifier of the referenced OrderEdit.</p> 080 * @return id 081 */ 082 083 public String getId() { 084 return this.id; 085 } 086 087 /** 088 * <p>Contains the representation of the expanded Order Edit. Only present in responses to requests with Reference Expansion for Order Edits.</p> 089 * @return obj 090 */ 091 092 @Nullable 093 public com.commercetools.api.models.order_edit.OrderEdit getObj() { 094 return this.obj; 095 } 096 097 /** 098 * builds OrderEditReference with checking for non-null required values 099 * @return OrderEditReference 100 */ 101 public OrderEditReference build() { 102 Objects.requireNonNull(id, OrderEditReference.class + ": id is missing"); 103 return new OrderEditReferenceImpl(id, obj); 104 } 105 106 /** 107 * builds OrderEditReference without checking for non-null required values 108 * @return OrderEditReference 109 */ 110 public OrderEditReference buildUnchecked() { 111 return new OrderEditReferenceImpl(id, obj); 112 } 113 114 /** 115 * factory method for an instance of OrderEditReferenceBuilder 116 * @return builder 117 */ 118 public static OrderEditReferenceBuilder of() { 119 return new OrderEditReferenceBuilder(); 120 } 121 122 /** 123 * create builder for OrderEditReference instance 124 * @param template instance with prefilled values for the builder 125 * @return builder 126 */ 127 public static OrderEditReferenceBuilder of(final OrderEditReference template) { 128 OrderEditReferenceBuilder builder = new OrderEditReferenceBuilder(); 129 builder.id = template.getId(); 130 builder.obj = template.getObj(); 131 return builder; 132 } 133 134}