001 002package com.commercetools.importapi.models.order_patches; 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 * ParcelTrackingDataBuilder 014 * <hr> 015 * Example to create an instance using the builder pattern 016 * <div class=code-example> 017 * <pre><code class='java'> 018 * ParcelTrackingData parcelTrackingData = ParcelTrackingData.builder() 019 * .parcelId("{parcelId}") 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 ParcelTrackingDataBuilder implements Builder<ParcelTrackingData> { 026 027 private String parcelId; 028 029 @Nullable 030 private com.commercetools.importapi.models.orders.TrackingData trackingData; 031 032 /** 033 * set the value to the parcelId 034 * @param parcelId value to be set 035 * @return Builder 036 */ 037 038 public ParcelTrackingDataBuilder parcelId(final String parcelId) { 039 this.parcelId = parcelId; 040 return this; 041 } 042 043 /** 044 * set the value to the trackingData using the builder function 045 * @param builder function to build the trackingData value 046 * @return Builder 047 */ 048 049 public ParcelTrackingDataBuilder trackingData( 050 Function<com.commercetools.importapi.models.orders.TrackingDataBuilder, com.commercetools.importapi.models.orders.TrackingDataBuilder> builder) { 051 this.trackingData = builder.apply(com.commercetools.importapi.models.orders.TrackingDataBuilder.of()).build(); 052 return this; 053 } 054 055 /** 056 * set the value to the trackingData using the builder function 057 * @param builder function to build the trackingData value 058 * @return Builder 059 */ 060 061 public ParcelTrackingDataBuilder withTrackingData( 062 Function<com.commercetools.importapi.models.orders.TrackingDataBuilder, com.commercetools.importapi.models.orders.TrackingData> builder) { 063 this.trackingData = builder.apply(com.commercetools.importapi.models.orders.TrackingDataBuilder.of()); 064 return this; 065 } 066 067 /** 068 * set the value to the trackingData 069 * @param trackingData value to be set 070 * @return Builder 071 */ 072 073 public ParcelTrackingDataBuilder trackingData( 074 @Nullable final com.commercetools.importapi.models.orders.TrackingData trackingData) { 075 this.trackingData = trackingData; 076 return this; 077 } 078 079 /** 080 * value of parcelId} 081 * @return parcelId 082 */ 083 084 public String getParcelId() { 085 return this.parcelId; 086 } 087 088 /** 089 * value of trackingData} 090 * @return trackingData 091 */ 092 093 @Nullable 094 public com.commercetools.importapi.models.orders.TrackingData getTrackingData() { 095 return this.trackingData; 096 } 097 098 /** 099 * builds ParcelTrackingData with checking for non-null required values 100 * @return ParcelTrackingData 101 */ 102 public ParcelTrackingData build() { 103 Objects.requireNonNull(parcelId, ParcelTrackingData.class + ": parcelId is missing"); 104 return new ParcelTrackingDataImpl(parcelId, trackingData); 105 } 106 107 /** 108 * builds ParcelTrackingData without checking for non-null required values 109 * @return ParcelTrackingData 110 */ 111 public ParcelTrackingData buildUnchecked() { 112 return new ParcelTrackingDataImpl(parcelId, trackingData); 113 } 114 115 /** 116 * factory method for an instance of ParcelTrackingDataBuilder 117 * @return builder 118 */ 119 public static ParcelTrackingDataBuilder of() { 120 return new ParcelTrackingDataBuilder(); 121 } 122 123 /** 124 * create builder for ParcelTrackingData instance 125 * @param template instance with prefilled values for the builder 126 * @return builder 127 */ 128 public static ParcelTrackingDataBuilder of(final ParcelTrackingData template) { 129 ParcelTrackingDataBuilder builder = new ParcelTrackingDataBuilder(); 130 builder.parcelId = template.getParcelId(); 131 builder.trackingData = template.getTrackingData(); 132 return builder; 133 } 134 135}