001 002package com.commercetools.ml.models.similar_products; 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 * SimilarProductsTaskStatusBuilder 014 * <hr> 015 * Example to create an instance using the builder pattern 016 * <div class=code-example> 017 * <pre><code class='java'> 018 * SimilarProductsTaskStatus similarProductsTaskStatus = SimilarProductsTaskStatus.builder() 019 * .state(TaskStatusEnum.PENDING) 020 * .result(resultBuilder -> resultBuilder) 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 SimilarProductsTaskStatusBuilder implements Builder<SimilarProductsTaskStatus> { 027 028 private com.commercetools.ml.models.common.TaskStatusEnum state; 029 030 @Nullable 031 private java.time.ZonedDateTime expires; 032 033 private com.commercetools.ml.models.similar_products.SimilarProductsPagedQueryResult result; 034 035 /** 036 * set the value to the state 037 * @param state value to be set 038 * @return Builder 039 */ 040 041 public SimilarProductsTaskStatusBuilder state(final com.commercetools.ml.models.common.TaskStatusEnum state) { 042 this.state = state; 043 return this; 044 } 045 046 /** 047 * <p>The expiry date of the result. You cannot access the result after the expiry date. Default: 1 day after the result first becomes available. This is only available when the TaskStatus state is SUCCESS.</p> 048 * @param expires value to be set 049 * @return Builder 050 */ 051 052 public SimilarProductsTaskStatusBuilder expires(@Nullable final java.time.ZonedDateTime expires) { 053 this.expires = expires; 054 return this; 055 } 056 057 /** 058 * <p>The response to an asynchronous request. The type depends on the request initiated. Only populated when the status is <code>SUCCESS</code>.</p> 059 * @param builder function to build the result value 060 * @return Builder 061 */ 062 063 public SimilarProductsTaskStatusBuilder result( 064 Function<com.commercetools.ml.models.similar_products.SimilarProductsPagedQueryResultBuilder, com.commercetools.ml.models.similar_products.SimilarProductsPagedQueryResultBuilder> builder) { 065 this.result = builder 066 .apply(com.commercetools.ml.models.similar_products.SimilarProductsPagedQueryResultBuilder.of()) 067 .build(); 068 return this; 069 } 070 071 /** 072 * <p>The response to an asynchronous request. The type depends on the request initiated. Only populated when the status is <code>SUCCESS</code>.</p> 073 * @param builder function to build the result value 074 * @return Builder 075 */ 076 077 public SimilarProductsTaskStatusBuilder withResult( 078 Function<com.commercetools.ml.models.similar_products.SimilarProductsPagedQueryResultBuilder, com.commercetools.ml.models.similar_products.SimilarProductsPagedQueryResult> builder) { 079 this.result = builder 080 .apply(com.commercetools.ml.models.similar_products.SimilarProductsPagedQueryResultBuilder.of()); 081 return this; 082 } 083 084 /** 085 * <p>The response to an asynchronous request. The type depends on the request initiated. Only populated when the status is <code>SUCCESS</code>.</p> 086 * @param result value to be set 087 * @return Builder 088 */ 089 090 public SimilarProductsTaskStatusBuilder result( 091 final com.commercetools.ml.models.similar_products.SimilarProductsPagedQueryResult result) { 092 this.result = result; 093 return this; 094 } 095 096 /** 097 * value of state} 098 * @return state 099 */ 100 101 public com.commercetools.ml.models.common.TaskStatusEnum getState() { 102 return this.state; 103 } 104 105 /** 106 * <p>The expiry date of the result. You cannot access the result after the expiry date. Default: 1 day after the result first becomes available. This is only available when the TaskStatus state is SUCCESS.</p> 107 * @return expires 108 */ 109 110 @Nullable 111 public java.time.ZonedDateTime getExpires() { 112 return this.expires; 113 } 114 115 /** 116 * <p>The response to an asynchronous request. The type depends on the request initiated. Only populated when the status is <code>SUCCESS</code>.</p> 117 * @return result 118 */ 119 120 public com.commercetools.ml.models.similar_products.SimilarProductsPagedQueryResult getResult() { 121 return this.result; 122 } 123 124 /** 125 * builds SimilarProductsTaskStatus with checking for non-null required values 126 * @return SimilarProductsTaskStatus 127 */ 128 public SimilarProductsTaskStatus build() { 129 Objects.requireNonNull(state, SimilarProductsTaskStatus.class + ": state is missing"); 130 Objects.requireNonNull(result, SimilarProductsTaskStatus.class + ": result is missing"); 131 return new SimilarProductsTaskStatusImpl(state, expires, result); 132 } 133 134 /** 135 * builds SimilarProductsTaskStatus without checking for non-null required values 136 * @return SimilarProductsTaskStatus 137 */ 138 public SimilarProductsTaskStatus buildUnchecked() { 139 return new SimilarProductsTaskStatusImpl(state, expires, result); 140 } 141 142 /** 143 * factory method for an instance of SimilarProductsTaskStatusBuilder 144 * @return builder 145 */ 146 public static SimilarProductsTaskStatusBuilder of() { 147 return new SimilarProductsTaskStatusBuilder(); 148 } 149 150 /** 151 * create builder for SimilarProductsTaskStatus instance 152 * @param template instance with prefilled values for the builder 153 * @return builder 154 */ 155 public static SimilarProductsTaskStatusBuilder of(final SimilarProductsTaskStatus template) { 156 SimilarProductsTaskStatusBuilder builder = new SimilarProductsTaskStatusBuilder(); 157 builder.state = template.getState(); 158 builder.expires = template.getExpires(); 159 builder.result = template.getResult(); 160 return builder; 161 } 162 163}