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 * StagedOrderSetParcelTrackingDataActionBuilder 014 * <hr> 015 * Example to create an instance using the builder pattern 016 * <div class=code-example> 017 * <pre><code class='java'> 018 * StagedOrderSetParcelTrackingDataAction stagedOrderSetParcelTrackingDataAction = StagedOrderSetParcelTrackingDataAction.builder() 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 StagedOrderSetParcelTrackingDataActionBuilder implements Builder<StagedOrderSetParcelTrackingDataAction> { 025 026 @Nullable 027 private String parcelId; 028 029 @Nullable 030 private String parcelKey; 031 032 @Nullable 033 private com.commercetools.api.models.order.TrackingData trackingData; 034 035 /** 036 * <p>Either <code>parcelId</code> or <code>parcelKey</code> is required for this update action.</p> 037 * @param parcelId value to be set 038 * @return Builder 039 */ 040 041 public StagedOrderSetParcelTrackingDataActionBuilder parcelId(@Nullable final String parcelId) { 042 this.parcelId = parcelId; 043 return this; 044 } 045 046 /** 047 * <p>Either <code>parcelId</code> or <code>parcelKey</code> is required for this update action.</p> 048 * @param parcelKey value to be set 049 * @return Builder 050 */ 051 052 public StagedOrderSetParcelTrackingDataActionBuilder parcelKey(@Nullable final String parcelKey) { 053 this.parcelKey = parcelKey; 054 return this; 055 } 056 057 /** 058 * set the value to the trackingData using the builder function 059 * @param builder function to build the trackingData value 060 * @return Builder 061 */ 062 063 public StagedOrderSetParcelTrackingDataActionBuilder trackingData( 064 Function<com.commercetools.api.models.order.TrackingDataBuilder, com.commercetools.api.models.order.TrackingDataBuilder> builder) { 065 this.trackingData = builder.apply(com.commercetools.api.models.order.TrackingDataBuilder.of()).build(); 066 return this; 067 } 068 069 /** 070 * set the value to the trackingData using the builder function 071 * @param builder function to build the trackingData value 072 * @return Builder 073 */ 074 075 public StagedOrderSetParcelTrackingDataActionBuilder withTrackingData( 076 Function<com.commercetools.api.models.order.TrackingDataBuilder, com.commercetools.api.models.order.TrackingData> builder) { 077 this.trackingData = builder.apply(com.commercetools.api.models.order.TrackingDataBuilder.of()); 078 return this; 079 } 080 081 /** 082 * set the value to the trackingData 083 * @param trackingData value to be set 084 * @return Builder 085 */ 086 087 public StagedOrderSetParcelTrackingDataActionBuilder trackingData( 088 @Nullable final com.commercetools.api.models.order.TrackingData trackingData) { 089 this.trackingData = trackingData; 090 return this; 091 } 092 093 /** 094 * <p>Either <code>parcelId</code> or <code>parcelKey</code> is required for this update action.</p> 095 * @return parcelId 096 */ 097 098 @Nullable 099 public String getParcelId() { 100 return this.parcelId; 101 } 102 103 /** 104 * <p>Either <code>parcelId</code> or <code>parcelKey</code> is required for this update action.</p> 105 * @return parcelKey 106 */ 107 108 @Nullable 109 public String getParcelKey() { 110 return this.parcelKey; 111 } 112 113 /** 114 * value of trackingData} 115 * @return trackingData 116 */ 117 118 @Nullable 119 public com.commercetools.api.models.order.TrackingData getTrackingData() { 120 return this.trackingData; 121 } 122 123 /** 124 * builds StagedOrderSetParcelTrackingDataAction with checking for non-null required values 125 * @return StagedOrderSetParcelTrackingDataAction 126 */ 127 public StagedOrderSetParcelTrackingDataAction build() { 128 return new StagedOrderSetParcelTrackingDataActionImpl(parcelId, parcelKey, trackingData); 129 } 130 131 /** 132 * builds StagedOrderSetParcelTrackingDataAction without checking for non-null required values 133 * @return StagedOrderSetParcelTrackingDataAction 134 */ 135 public StagedOrderSetParcelTrackingDataAction buildUnchecked() { 136 return new StagedOrderSetParcelTrackingDataActionImpl(parcelId, parcelKey, trackingData); 137 } 138 139 /** 140 * factory method for an instance of StagedOrderSetParcelTrackingDataActionBuilder 141 * @return builder 142 */ 143 public static StagedOrderSetParcelTrackingDataActionBuilder of() { 144 return new StagedOrderSetParcelTrackingDataActionBuilder(); 145 } 146 147 /** 148 * create builder for StagedOrderSetParcelTrackingDataAction instance 149 * @param template instance with prefilled values for the builder 150 * @return builder 151 */ 152 public static StagedOrderSetParcelTrackingDataActionBuilder of( 153 final StagedOrderSetParcelTrackingDataAction template) { 154 StagedOrderSetParcelTrackingDataActionBuilder builder = new StagedOrderSetParcelTrackingDataActionBuilder(); 155 builder.parcelId = template.getParcelId(); 156 builder.parcelKey = template.getParcelKey(); 157 builder.trackingData = template.getTrackingData(); 158 return builder; 159 } 160 161}