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 * 037 */ 038 039 public SimilarProductsTaskStatusBuilder state(final com.commercetools.ml.models.common.TaskStatusEnum state) { 040 this.state = state; 041 return this; 042 } 043 044 /** 045 * <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> 046 */ 047 048 public SimilarProductsTaskStatusBuilder expires(@Nullable final java.time.ZonedDateTime expires) { 049 this.expires = expires; 050 return this; 051 } 052 053 /** 054 * <p>The response to an asynchronous request. The type depends on the request initiated. Only populated when the status is <code>SUCCESS</code>.</p> 055 */ 056 057 public SimilarProductsTaskStatusBuilder result( 058 Function<com.commercetools.ml.models.similar_products.SimilarProductsPagedQueryResultBuilder, com.commercetools.ml.models.similar_products.SimilarProductsPagedQueryResultBuilder> builder) { 059 this.result = builder 060 .apply(com.commercetools.ml.models.similar_products.SimilarProductsPagedQueryResultBuilder.of()) 061 .build(); 062 return this; 063 } 064 065 /** 066 * <p>The response to an asynchronous request. The type depends on the request initiated. Only populated when the status is <code>SUCCESS</code>.</p> 067 */ 068 069 public SimilarProductsTaskStatusBuilder result( 070 final com.commercetools.ml.models.similar_products.SimilarProductsPagedQueryResult result) { 071 this.result = result; 072 return this; 073 } 074 075 public com.commercetools.ml.models.common.TaskStatusEnum getState() { 076 return this.state; 077 } 078 079 @Nullable 080 public java.time.ZonedDateTime getExpires() { 081 return this.expires; 082 } 083 084 public com.commercetools.ml.models.similar_products.SimilarProductsPagedQueryResult getResult() { 085 return this.result; 086 } 087 088 public SimilarProductsTaskStatus build() { 089 Objects.requireNonNull(state, SimilarProductsTaskStatus.class + ": state is missing"); 090 Objects.requireNonNull(result, SimilarProductsTaskStatus.class + ": result is missing"); 091 return new SimilarProductsTaskStatusImpl(state, expires, result); 092 } 093 094 /** 095 * builds SimilarProductsTaskStatus without checking for non null required values 096 */ 097 public SimilarProductsTaskStatus buildUnchecked() { 098 return new SimilarProductsTaskStatusImpl(state, expires, result); 099 } 100 101 public static SimilarProductsTaskStatusBuilder of() { 102 return new SimilarProductsTaskStatusBuilder(); 103 } 104 105 public static SimilarProductsTaskStatusBuilder of(final SimilarProductsTaskStatus template) { 106 SimilarProductsTaskStatusBuilder builder = new SimilarProductsTaskStatusBuilder(); 107 builder.state = template.getState(); 108 builder.expires = template.getExpires(); 109 builder.result = template.getResult(); 110 return builder; 111 } 112 113}